forked from trent_larson/crowd-funder-for-time-pwa
feat(notifications): enable foreground notifications and rollover recovery
- iOS: set UNUserNotificationCenter delegate and implement willPresent so notifications show in foreground and DailyNotificationDelivered is posted for rollover; implement didReceive for tap handling; re-set delegate in applicationDidBecomeActive - Android: move DailyNotificationReceiver and BootReceiver inside <application>; add NotifyReceiver; extend BootReceiver with LOCKED_BOOT_COMPLETED, MY_PACKAGE_REPLACED, directBootAware - main.capacitor: import daily-notification-plugin at startup so plugin (and recovery) load on launch - doc: add daily-notification-alignment-outline.md Fixes foreground notifications not showing and rollover recovery; Android receivers were previously declared outside <application>.
This commit is contained in:
@@ -43,6 +43,36 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<!-- Daily Notification Plugin Receivers (must be inside application) -->
|
||||
<receiver
|
||||
android:name="com.timesafari.dailynotification.DailyNotificationReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="com.timesafari.daily.NOTIFICATION" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.timesafari.dailynotification.NotifyReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name="com.timesafari.dailynotification.BootReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="true"
|
||||
android:directBootAware="true">
|
||||
<intent-filter android:priority="1000">
|
||||
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
|
||||
<action android:name="android.intent.action.PACKAGE_REPLACED" />
|
||||
<data android:scheme="package" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.fileprovider"
|
||||
@@ -52,25 +82,6 @@
|
||||
</provider>
|
||||
</application>
|
||||
|
||||
<!-- Daily Notification Plugin Receivers -->
|
||||
<!-- ⚠️ CRITICAL: NotifyReceiver is required for alarm-based notifications -->
|
||||
<receiver
|
||||
android:name="com.timesafari.dailynotification.DailyNotificationReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
</receiver>
|
||||
|
||||
<!-- Boot receiver to restore notification schedules after device restart -->
|
||||
<receiver
|
||||
android:name="com.timesafari.dailynotification.BootReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
</application>
|
||||
|
||||
<!-- Permissions -->
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
Reference in New Issue
Block a user