# Daily Notification Plugin A Capacitor plugin for scheduling and managing daily notifications on Android devices. ## Features - Schedule daily notifications with precise timing - Handle system state changes (battery, power, etc.) - Support for adaptive scheduling based on device state - Background task management - Battery optimization support - Rich logging system - Comprehensive error handling ## Installation ```bash npm install @timesafari/daily-notification-plugin ``` ## Usage ```typescript import { DailyNotification } from '@timesafari/daily-notification-plugin'; // Initialize the plugin const dailyNotification = new DailyNotification(); // Schedule a daily notification await dailyNotification.scheduleDailyNotification({ sound: true, priority: 'default', timezone: 'UTC' }); // Get notification status const status = await dailyNotification.getNotificationStatus(); // Update settings await dailyNotification.updateSettings({ sound: false, priority: 'high' }); // Cancel all notifications await dailyNotification.cancelAllNotifications(); // Get battery status const batteryStatus = await dailyNotification.getBatteryStatus(); // Request battery optimization exemption await dailyNotification.requestBatteryOptimizationExemption(); ``` ## Configuration ### Android Add the following permissions to your `AndroidManifest.xml`: ```xml ``` ## Development ### Prerequisites - Node.js 14 or later - Android Studio - Android SDK - Gradle ### Building ```bash # Install dependencies npm install # Build the plugin npm run build # Run tests npm test ``` ### Project Structure ``` daily-notification-plugin/ ├── android/ # Android implementation │ ├── app/ # Main application module │ └── build.gradle # Root build configuration ├── src/ # TypeScript source ├── tests/ # Test files ├── package.json # Package configuration └── README.md # This file ``` ## Contributing 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add some amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## License This project is licensed under the MIT License - see the LICENSE file for details. ## Author Matthew Raymer ## Security This plugin follows security best practices: - Uses AndroidX for modern security features - Implements proper permission handling - Follows Android security guidelines - Uses secure storage for sensitive data - Implements proper error handling - Logs security-relevant events - Uses secure communication channels - Implements proper access control - Follows Android's security model - Uses secure defaults ## Changelog ### 1.0.0 - Initial release - Basic notification scheduling - System state handling - Battery optimization support - Background task management - Rich logging system