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 a336b39754 refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
.github refactor: improve build configuration and code organization 1 week ago
.gradle refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
android refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
examples refactor: improve build configuration and code organization 1 week ago
gradle feat(android): Enhance battery optimization and notification management 5 days ago
ios feat(ios): Enhance battery optimization and notification management 5 days ago
lib feat(ios): Enhance battery optimization and notification management 5 days ago
scripts refactor: improve build configuration and code organization 1 week ago
src refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
tests refactor: improve build configuration and code organization 1 week ago
www refactor: improve build configuration and code organization 1 week ago
.eslintrc.json refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
.gitattributes feat(android): Enhance battery optimization and notification management 5 days ago
.gitignore refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
.prettierrc refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
CHANGELOG.md refactor: improve build configuration and code organization 1 week ago
CONTRIBUTING.md refactor: improve build configuration and code organization 1 week ago
CapacitorDailyNotification.podspec refactor: improve build configuration and code organization 1 week ago
LICENSE refactor: improve build configuration and code organization 1 week ago
README.md refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
SECURITY.md refactor: improve build configuration and code organization 1 week ago
build.gradle.kts feat(android): Enhance battery optimization and notification management 5 days ago
capacitor.config.ts refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
gradle.properties feat(android): Enhance battery optimization and notification management 5 days ago
gradlew feat(android): Enhance battery optimization and notification management 5 days ago
gradlew.bat feat(android): Enhance battery optimization and notification management 5 days ago
jest.config.js refactor: improve build configuration and code organization 1 week ago
package-lock.json refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
package.json refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
rollup.config.js refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago
settings.gradle.kts feat(android): Enhance battery optimization and notification management 5 days ago
tsconfig.json refactor(plugin): modernize plugin architecture and improve type definitions 5 days ago

README.md

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

npm install @timesafari/daily-notification-plugin

Usage

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:

<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Development

Prerequisites

  • Node.js 14 or later
  • Android Studio
  • Android SDK
  • Gradle

Building

# 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