You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
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.
|
7 hours ago |
| .. |
|
.settings
|
feat(android): consolidate databases and add prefetch scheduling
|
7 hours ago |
|
gradle/wrapper
|
refactor(android)!: restructure to standard Capacitor plugin layout
|
1 day ago |
|
src/main
|
feat(android): consolidate databases and add prefetch scheduling
|
7 hours ago |
|
.gitignore
|
refactor(android)!: restructure to standard Capacitor plugin layout
|
1 day ago |
|
BUILDING.md
|
refactor(android)!: restructure to standard Capacitor plugin layout
|
1 day ago |
|
DATABASE_CONSOLIDATION_PLAN.md
|
feat(android): consolidate databases and add prefetch scheduling
|
7 hours ago |
|
build.gradle
|
feat(android): consolidate databases and add prefetch scheduling
|
7 hours ago |
|
consumer-rules.pro
|
refactor(android)!: restructure to standard Capacitor plugin layout
|
1 day ago |
|
gradle.properties
|
refactor(android)!: restructure to standard Capacitor plugin layout
|
1 day ago |
|
gradlew
|
refactor(android)!: restructure to standard Capacitor plugin layout
|
1 day ago |
|
gradlew.bat
|
refactor(android)!: restructure to standard Capacitor plugin layout
|
1 day ago |
|
settings.gradle
|
feat(android): consolidate databases and add prefetch scheduling
|
7 hours ago |