Cancel-then-schedule was skipped because the idempotence check still found the cancelled PendingIntent in Android's cache. Skip PendingIntent idempotence on the cancel-then-schedule path so the new schedule is always set. - NotifyReceiver.scheduleExactNotification: add skipPendingIntentIdempotence (used only from scheduleDailyNotification) - ScheduleHelper: pass skipPendingIntentIdempotence=true after cancelNotification(scheduleId) - Version 1.1.2: package.json, CHANGELOG, README, TS/Android refs - docs/CONSUMING_APP_OPTIONAL_ANDROID_ID_CLEANUP.md: optional app cleanup to use one stable id on both platforms
199 lines
5.3 KiB
Markdown
199 lines
5.3 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to the Daily Notification Plugin will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [1.1.2] - 2026-02-13
|
|
|
|
### Fixed
|
|
|
|
- **Android**: Second daily notification not firing after reschedule. After cancel-then-schedule, the idempotence check could still see the cancelled PendingIntent in Android's cache and skip the new schedule. The cancel-then-schedule path now skips PendingIntent-based idempotence so the new alarm is always registered.
|
|
|
|
## [1.1.1] - 2026-02-05
|
|
|
|
### Fixed
|
|
|
|
- **Android**: Target alarm broadcast to app package so receiver is triggered correctly
|
|
|
|
### Documentation
|
|
|
|
- EMULATOR_GUIDE: prerequisites, API 35, Apple Silicon; build.sh Android-only sync
|
|
|
|
## [2.1.0] - 2025-01-02
|
|
|
|
### Added
|
|
|
|
- **Static Daily Reminders**: New functionality for simple daily notifications without network content
|
|
- **Cross-Platform Reminder API**: Consistent reminder management across Android, iOS, and Web
|
|
- **Reminder Management**: Full CRUD operations for reminder scheduling and management
|
|
- **Offline Reminder Support**: Reminders work completely offline without content caching
|
|
- **Rich Reminder Customization**: Support for custom titles, bodies, sounds, vibration, and priorities
|
|
- **Persistent Reminder Storage**: Reminders survive app restarts and device reboots
|
|
|
|
### New Methods
|
|
|
|
- `scheduleDailyReminder(options)`: Schedule a simple daily reminder
|
|
- `cancelDailyReminder(reminderId)`: Cancel a specific reminder
|
|
- `getScheduledReminders()`: Get all scheduled reminders
|
|
- `updateDailyReminder(reminderId, options)`: Update an existing reminder
|
|
|
|
### Features
|
|
|
|
- **No Network Dependency**: Static reminders work completely offline
|
|
- **Simple Time Format**: Easy HH:mm time format (e.g., "09:00")
|
|
- **Priority Levels**: Support for low, normal, and high priority notifications
|
|
- **Repeat Options**: Configurable daily repetition
|
|
- **Platform Integration**: Native notification channels and categories
|
|
- **Test App Integration**: Complete test app support for reminder functionality
|
|
|
|
### Documentation
|
|
|
|
- Updated README.md with static reminder examples and API reference
|
|
- Added comprehensive usage examples in USAGE.md
|
|
- Created detailed example file: `examples/static-daily-reminders.ts`
|
|
- Enhanced test apps with reminder management UI
|
|
|
|
## [1.0.0] - 2024-03-20
|
|
|
|
### Added
|
|
|
|
- Initial release of the Daily Notification Plugin
|
|
- Basic notification scheduling functionality
|
|
- Support for multiple notification schedules
|
|
- Timezone-aware scheduling
|
|
- Offline support with content caching
|
|
- Retry logic with exponential backoff
|
|
- Custom notification content handlers
|
|
- Event-based notification handling
|
|
- Comprehensive settings management
|
|
- TypeScript support with full type definitions
|
|
|
|
### Features
|
|
|
|
- Schedule daily notifications at specific times
|
|
- Support for multiple notification schedules
|
|
- Timezone-aware scheduling
|
|
- Offline support with content caching
|
|
- Retry logic with exponential backoff
|
|
- Custom notification content handlers
|
|
- Event-based notification handling
|
|
- Comprehensive settings management
|
|
|
|
### Security
|
|
|
|
- HTTPS-only network requests
|
|
- Content validation before display
|
|
- Secure storage of sensitive data
|
|
- Permission-based access control
|
|
- No sensitive data in logs
|
|
|
|
### Documentation
|
|
|
|
- Comprehensive API documentation
|
|
- Usage examples for basic and advanced scenarios
|
|
- Enterprise-level implementation examples
|
|
- Security best practices
|
|
- Platform-specific implementation details
|
|
|
|
### Testing
|
|
|
|
- Unit tests for core functionality
|
|
- Integration tests for platform features
|
|
- Advanced scenario tests
|
|
- Enterprise feature tests
|
|
- Security validation tests
|
|
|
|
## [0.9.0] - 2024-03-15
|
|
|
|
### Added
|
|
|
|
- Beta release with core functionality
|
|
- Basic notification scheduling
|
|
- Simple content handling
|
|
- Basic event system
|
|
|
|
### Changed
|
|
|
|
- Improved error handling
|
|
- Enhanced type definitions
|
|
- Better documentation
|
|
|
|
### Fixed
|
|
|
|
- Initial bug fixes and improvements
|
|
- TypeScript type issues
|
|
- Documentation clarity
|
|
|
|
## [0.8.0] - 2024-03-10
|
|
|
|
### Added
|
|
|
|
- Alpha release with basic features
|
|
- Initial plugin structure
|
|
- Basic TypeScript interfaces
|
|
- Simple notification scheduling
|
|
|
|
### Changed
|
|
|
|
- Early development improvements
|
|
- Initial documentation
|
|
- Basic test setup
|
|
|
|
### Fixed
|
|
|
|
- Early bug fixes
|
|
- Initial type issues
|
|
- Basic documentation
|
|
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
|
|
- Enterprise features
|
|
- Notification queue system
|
|
- A/B testing support
|
|
- Advanced analytics tracking
|
|
- User preferences management
|
|
- Content personalization
|
|
- Rate limiting
|
|
- Additional test scenarios
|
|
- More example implementations
|
|
- Enhanced documentation
|
|
|
|
### Changed
|
|
|
|
- Improved error handling
|
|
- Enhanced type definitions
|
|
- Better documentation structure
|
|
- More comprehensive examples
|
|
|
|
### Fixed
|
|
|
|
- TypeScript type issues
|
|
- Documentation clarity
|
|
- Test coverage gaps
|
|
- Example code improvements
|
|
|
|
### Security
|
|
|
|
- Enhanced security measures
|
|
- Additional validation
|
|
- Improved error handling
|
|
- Better logging practices
|
|
|
|
### Documentation
|
|
|
|
- Added enterprise usage examples
|
|
- Enhanced API documentation
|
|
- Improved security guidelines
|
|
- Better troubleshooting guides
|
|
|
|
### Testing
|
|
|
|
- Added enterprise scenario tests
|
|
- Enhanced test coverage
|
|
- Improved test organization
|
|
- Better test documentation
|