- Add static daily reminders to README.md core features and API reference
- Create detailed usage guide in USAGE.md with examples and best practices
- Add version 2.1.0 changelog entry documenting new reminder functionality
- Create examples/static-daily-reminders.ts with complete usage examples
- Update test-apps README to include reminder testing capabilities
The static daily reminder feature provides simple daily notifications
without network content dependency, supporting cross-platform scheduling
with rich customization options.
- Add DailyNotificationExactAlarmManager with SCHEDULE_EXACT_ALARM permission handling
- Add DailyNotificationRebootRecoveryManager for system reboot and time-change recovery
- Update DailyNotificationScheduler with exact alarm manager integration
- Add exact alarm status checking and permission request methods
- Add windowed alarm fallback (±10m) when exact alarms are denied
- Add deep-link to exact alarm settings for user guidance
- Add reboot recovery with broadcast receiver registration
- Update TypeScript interface with new exact alarm and recovery methods
- Update web implementations with placeholder methods
- Add phase2-2-android-fallback.ts usage examples
This completes Phase 2.2 Android fallback implementation:
- Exact alarm permission handling with graceful fallback
- Windowed alarm support (±10m) for battery optimization
- Reboot and time-change recovery with broadcast receivers
- Deep-link to exact alarm settings for user enablement
- Integration with existing TTL enforcement and rolling window
- Comprehensive fallback scenarios and error handling
Files: 7 changed, 1200+ insertions(+)
- Add DailyNotificationDatabase.java with three-table schema and WAL configuration
- Add DailyNotificationMigration.java for SharedPreferences to SQLite migration
- Add DailyNotificationDatabaseTest.java with comprehensive unit tests
- Add ConfigureOptions interface with dbPath, storage mode, and TTL settings
- Add configure() method to DailyNotificationPlugin interface
- Update Android plugin with SQLite integration and automatic migration
- Update web implementations to implement new configure() method
- Add phase1-sqlite-usage.ts example demonstrating shared storage configuration
This implements the critical Phase 1.1 gate for shared SQLite storage:
- App and plugin can open the same SQLite file with WAL mode
- Automatic migration from SharedPreferences preserves existing data
- Schema version checking prevents compatibility issues
- Concurrent reads during background writes enabled
- Configuration API supports both shared and tiered storage modes
Files: 8 changed, 1204 insertions(+)