Matthew Raymer
18106e5ba8
feat(android): consolidate databases and add prefetch scheduling
Consolidate Java and Kotlin database implementations into unified
schema, add delayed prefetch scheduling, and fix notification
delivery issues.
Database Consolidation:
- Merge Java DailyNotificationDatabase into Kotlin DatabaseSchema
- Add migration path from v1 to v2 unified schema
- Include all entities: ContentCache, Schedule, Callback, History,
NotificationContentEntity, NotificationDeliveryEntity,
NotificationConfigEntity
- Add @JvmStatic getInstance() for Java interoperability
- Update DailyNotificationWorker and DailyNotificationStorageRoom
to use unified database
Prefetch Functionality:
- Add scheduleDelayedFetch() to FetchWorker for 5-minute prefetch
before notifications
- Support delayed WorkManager scheduling with initialDelay
- Update scheduleDailyNotification() to optionally schedule prefetch
when URL is provided
Notification Delivery Fixes:
- Register NotifyReceiver in AndroidManifest.xml (was missing,
causing notifications not to fire)
- Add safe database initialization with lazy getDatabase() helper
- Prevent PluginLoadException on database init failure
Build Configuration:
- Add kotlin-android and kotlin-kapt plugins
- Configure Room annotation processor (kapt) for Kotlin
- Add Room KTX dependency for coroutines support
- Fix Gradle settings with pluginManagement blocks
Plugin Methods Added:
- checkPermissionStatus() - detailed permission status
- requestNotificationPermissions() - request POST_NOTIFICATIONS
- scheduleDailyNotification() - schedule with AlarmManager
- configureNativeFetcher() - configure native content fetcher
- Various status and configuration methods
Code Cleanup:
- Remove duplicate BootReceiver.java (keep Kotlin version)
- Remove duplicate DailyNotificationPlugin.java (keep Kotlin version)
- Remove old Java database implementation
- Add native fetcher SPI registry (@JvmStatic methods)
The unified database ensures schedule persistence across reboots
and provides a single source of truth for all plugin data.
Prefetch scheduling enables content caching before notifications
fire, improving offline-first reliability.
2025-11-06 06:28:00 +00:00
..
2025-10-23 10:29:13 +00:00
2025-10-08 06:19:14 +00:00
2025-10-24 11:13:48 +00:00
2025-10-27 10:14:00 +00:00
2025-10-14 06:17:03 +00:00
2025-10-14 06:17:03 +00:00
2025-10-08 08:58:32 +00:00
2025-10-24 09:42:10 +00:00
2025-10-14 08:02:16 +00:00
2025-10-31 13:02:30 +00:00
2025-11-06 06:28:00 +00:00
2025-11-06 06:28:00 +00:00
2025-10-08 06:26:38 +00:00
2025-10-08 09:02:03 +00:00
2025-10-29 12:46:41 +00:00
2025-10-08 06:32:17 +00:00
2025-10-29 12:46:41 +00:00
2025-10-30 07:04:40 +00:00
2025-10-29 13:04:49 +00:00
2025-10-29 13:04:49 +00:00
2025-10-08 06:19:14 +00:00
2025-10-29 12:46:41 +00:00
2025-10-08 06:19:14 +00:00
2025-10-30 10:03:47 +00:00
2025-10-14 06:31:07 +00:00
2025-10-08 06:19:14 +00:00
2025-10-28 09:35:33 +00:00
2025-10-27 12:40:04 +00:00
2025-10-14 06:17:03 +00:00
2025-10-14 06:17:03 +00:00
2025-10-13 03:10:26 +00:00
2025-10-14 08:02:16 +00:00
2025-10-14 06:31:07 +00:00
2025-10-24 13:01:50 +00:00