@amazon-devices/expo-notifications 2.0.9000000000-rn-83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +2 -0
- package/CHANGELOG.md +478 -0
- package/LICENSE +7 -0
- package/README.kepler.md +3 -0
- package/README.md +2003 -0
- package/THIRD_PARTY_NOTICES.txt +4 -0
- package/android/build.gradle +125 -0
- package/android/src/main/AndroidManifest.xml +39 -0
- package/android/src/main/java/expo/modules/notifications/Exceptions.kt +22 -0
- package/android/src/main/java/expo/modules/notifications/NotificationsPackage.java +34 -0
- package/android/src/main/java/expo/modules/notifications/Utils.kt +19 -0
- package/android/src/main/java/expo/modules/notifications/badge/BadgeHelper.kt +24 -0
- package/android/src/main/java/expo/modules/notifications/badge/BadgeModule.kt +22 -0
- package/android/src/main/java/expo/modules/notifications/notifications/ArgumentsNotificationContentBuilder.java +149 -0
- package/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java +203 -0
- package/android/src/main/java/expo/modules/notifications/notifications/NotificationManager.java +119 -0
- package/android/src/main/java/expo/modules/notifications/notifications/NotificationSerializer.java +202 -0
- package/android/src/main/java/expo/modules/notifications/notifications/RemoteMessageSerializer.java +104 -0
- package/android/src/main/java/expo/modules/notifications/notifications/SoundResolver.java +58 -0
- package/android/src/main/java/expo/modules/notifications/notifications/background/BackgroundRemoteNotificationTaskConsumer.java +123 -0
- package/android/src/main/java/expo/modules/notifications/notifications/background/ExpoBackgroundNotificationTasksModule.kt +33 -0
- package/android/src/main/java/expo/modules/notifications/notifications/categories/ExpoNotificationCategoriesModule.kt +149 -0
- package/android/src/main/java/expo/modules/notifications/notifications/categories/serializers/ExpoNotificationsCategoriesSerializer.java +67 -0
- package/android/src/main/java/expo/modules/notifications/notifications/categories/serializers/NotificationsCategoriesSerializer.java +11 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/AbstractNotificationsChannelsProvider.java +81 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/AndroidXNotificationsChannelsProvider.java +38 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/InvalidVibrationPatternException.java +14 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/NotificationChannelGroupManagerModule.kt +70 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/NotificationChannelManagerModule.kt +83 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/NotificationsChannelsProvider.java +13 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/managers/AndroidXNotificationsChannelGroupManager.java +67 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/managers/AndroidXNotificationsChannelManager.java +196 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/managers/NotificationsChannelGroupManager.java +28 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/managers/NotificationsChannelManager.java +28 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/serializers/ExpoNotificationsChannelGroupSerializer.java +55 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/serializers/ExpoNotificationsChannelSerializer.java +101 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/serializers/NotificationsChannelGroupSerializer.java +20 -0
- package/android/src/main/java/expo/modules/notifications/notifications/channels/serializers/NotificationsChannelSerializer.java +35 -0
- package/android/src/main/java/expo/modules/notifications/notifications/emitting/NotificationsEmitter.kt +78 -0
- package/android/src/main/java/expo/modules/notifications/notifications/enums/AudioContentType.java +45 -0
- package/android/src/main/java/expo/modules/notifications/notifications/enums/AudioUsage.java +55 -0
- package/android/src/main/java/expo/modules/notifications/notifications/enums/NotificationImportance.java +48 -0
- package/android/src/main/java/expo/modules/notifications/notifications/enums/NotificationPriority.java +51 -0
- package/android/src/main/java/expo/modules/notifications/notifications/enums/NotificationVisibility.java +44 -0
- package/android/src/main/java/expo/modules/notifications/notifications/handling/NotificationsHandler.kt +127 -0
- package/android/src/main/java/expo/modules/notifications/notifications/handling/SingleNotificationHandlerTask.java +131 -0
- package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationBuilder.java +35 -0
- package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationListener.java +37 -0
- package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationManager.java +22 -0
- package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationPresentationEffect.java +11 -0
- package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationPresentationEffectsManager.java +7 -0
- package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationTrigger.java +19 -0
- package/android/src/main/java/expo/modules/notifications/notifications/interfaces/SchedulableNotificationTrigger.java +20 -0
- package/android/src/main/java/expo/modules/notifications/notifications/model/Notification.java +59 -0
- package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationAction.java +63 -0
- package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationBehavior.java +84 -0
- package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationCategory.java +61 -0
- package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java +356 -0
- package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationRequest.java +66 -0
- package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationResponse.java +60 -0
- package/android/src/main/java/expo/modules/notifications/notifications/model/TextInputNotificationAction.java +42 -0
- package/android/src/main/java/expo/modules/notifications/notifications/model/TextInputNotificationResponse.java +42 -0
- package/android/src/main/java/expo/modules/notifications/notifications/model/triggers/FirebaseNotificationTrigger.java +61 -0
- package/android/src/main/java/expo/modules/notifications/notifications/presentation/ExpoNotificationPresentationEffectsManager.java +63 -0
- package/android/src/main/java/expo/modules/notifications/notifications/presentation/ExpoNotificationPresentationModule.kt +113 -0
- package/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/BaseNotificationBuilder.java +50 -0
- package/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/CategoryAwareNotificationBuilder.java +80 -0
- package/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ChannelAwareNotificationBuilder.java +135 -0
- package/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java +295 -0
- package/android/src/main/java/expo/modules/notifications/notifications/presentation/effects/BaseNotificationEffect.java +53 -0
- package/android/src/main/java/expo/modules/notifications/notifications/scheduling/NotificationScheduler.kt +235 -0
- package/android/src/main/java/expo/modules/notifications/notifications/triggers/ChannelAwareTrigger.java +49 -0
- package/android/src/main/java/expo/modules/notifications/notifications/triggers/DailyTrigger.java +76 -0
- package/android/src/main/java/expo/modules/notifications/notifications/triggers/DateTrigger.java +64 -0
- package/android/src/main/java/expo/modules/notifications/notifications/triggers/TimeIntervalTrigger.java +87 -0
- package/android/src/main/java/expo/modules/notifications/notifications/triggers/WeeklyTrigger.java +85 -0
- package/android/src/main/java/expo/modules/notifications/notifications/triggers/YearlyTrigger.java +94 -0
- package/android/src/main/java/expo/modules/notifications/permissions/NotificationPermissionsModule.kt +124 -0
- package/android/src/main/java/expo/modules/notifications/serverregistration/InstallationId.java +134 -0
- package/android/src/main/java/expo/modules/notifications/serverregistration/RegistrationInfo.kt +24 -0
- package/android/src/main/java/expo/modules/notifications/serverregistration/ServerRegistrationModule.kt +32 -0
- package/android/src/main/java/expo/modules/notifications/service/ExpoFirebaseMessagingService.kt +15 -0
- package/android/src/main/java/expo/modules/notifications/service/NotificationForwarderActivity.kt +33 -0
- package/android/src/main/java/expo/modules/notifications/service/NotificationsService.kt +780 -0
- package/android/src/main/java/expo/modules/notifications/service/delegates/Base64Serialization.kt +33 -0
- package/android/src/main/java/expo/modules/notifications/service/delegates/ExpoCategoriesDelegate.kt +21 -0
- package/android/src/main/java/expo/modules/notifications/service/delegates/ExpoHandlingDelegate.kt +146 -0
- package/android/src/main/java/expo/modules/notifications/service/delegates/ExpoPresentationDelegate.kt +193 -0
- package/android/src/main/java/expo/modules/notifications/service/delegates/ExpoSchedulingDelegate.kt +117 -0
- package/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt +126 -0
- package/android/src/main/java/expo/modules/notifications/service/delegates/SharedPreferencesNotificationCategoriesStore.kt +106 -0
- package/android/src/main/java/expo/modules/notifications/service/delegates/SharedPreferencesNotificationsStore.kt +119 -0
- package/android/src/main/java/expo/modules/notifications/service/interfaces/CategoriesDelegate.kt +14 -0
- package/android/src/main/java/expo/modules/notifications/service/interfaces/FirebaseMessagingDelegate.kt +20 -0
- package/android/src/main/java/expo/modules/notifications/service/interfaces/HandlingDelegate.kt +10 -0
- package/android/src/main/java/expo/modules/notifications/service/interfaces/PresentationDelegate.kt +11 -0
- package/android/src/main/java/expo/modules/notifications/service/interfaces/SchedulingDelegate.kt +13 -0
- package/android/src/main/java/expo/modules/notifications/tokens/PushTokenManager.java +88 -0
- package/android/src/main/java/expo/modules/notifications/tokens/PushTokenModule.kt +91 -0
- package/android/src/main/java/expo/modules/notifications/tokens/interfaces/FirebaseTokenListener.java +16 -0
- package/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenListener.java +14 -0
- package/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenManager.java +22 -0
- package/android/src/main/res/values/strings.xml +4 -0
- package/app.plugin.js +1 -0
- package/build/BackgroundNotificationTasksModule.d.ts +4 -0
- package/build/BackgroundNotificationTasksModule.d.ts.map +1 -0
- package/build/BackgroundNotificationTasksModule.js +7 -0
- package/build/BackgroundNotificationTasksModule.js.map +1 -0
- package/build/BackgroundNotificationTasksModule.kepler.d.ts +3 -0
- package/build/BackgroundNotificationTasksModule.kepler.d.ts.map +1 -0
- package/build/BackgroundNotificationTasksModule.kepler.js +9 -0
- package/build/BackgroundNotificationTasksModule.kepler.js.map +1 -0
- package/build/BackgroundNotificationTasksModule.native.d.ts +4 -0
- package/build/BackgroundNotificationTasksModule.native.d.ts.map +1 -0
- package/build/BackgroundNotificationTasksModule.native.js +3 -0
- package/build/BackgroundNotificationTasksModule.native.js.map +1 -0
- package/build/BackgroundNotificationTasksModule.types.d.ts +11 -0
- package/build/BackgroundNotificationTasksModule.types.d.ts.map +1 -0
- package/build/BackgroundNotificationTasksModule.types.js +7 -0
- package/build/BackgroundNotificationTasksModule.types.js.map +1 -0
- package/build/BackgroundNotificationTasksModule.web.d.ts +6 -0
- package/build/BackgroundNotificationTasksModule.web.d.ts.map +1 -0
- package/build/BackgroundNotificationTasksModule.web.js +9 -0
- package/build/BackgroundNotificationTasksModule.web.js.map +1 -0
- package/build/BadgeModule.d.ts +4 -0
- package/build/BadgeModule.d.ts.map +1 -0
- package/build/BadgeModule.js +5 -0
- package/build/BadgeModule.js.map +1 -0
- package/build/BadgeModule.kepler.d.ts +3 -0
- package/build/BadgeModule.kepler.d.ts.map +1 -0
- package/build/BadgeModule.kepler.js +9 -0
- package/build/BadgeModule.kepler.js.map +1 -0
- package/build/BadgeModule.native.d.ts +4 -0
- package/build/BadgeModule.native.d.ts.map +1 -0
- package/build/BadgeModule.native.js +12 -0
- package/build/BadgeModule.native.js.map +1 -0
- package/build/BadgeModule.types.d.ts +10 -0
- package/build/BadgeModule.types.d.ts.map +1 -0
- package/build/BadgeModule.types.js +2 -0
- package/build/BadgeModule.types.js.map +1 -0
- package/build/BadgeModule.web.d.ts +4 -0
- package/build/BadgeModule.web.d.ts.map +1 -0
- package/build/BadgeModule.web.js +26 -0
- package/build/BadgeModule.web.js.map +1 -0
- package/build/DevicePushTokenAutoRegistration.fx.d.ts +15 -0
- package/build/DevicePushTokenAutoRegistration.fx.d.ts.map +1 -0
- package/build/DevicePushTokenAutoRegistration.fx.js +87 -0
- package/build/DevicePushTokenAutoRegistration.fx.js.map +1 -0
- package/build/NotificationCategoriesModule.d.ts +4 -0
- package/build/NotificationCategoriesModule.d.ts.map +1 -0
- package/build/NotificationCategoriesModule.js +13 -0
- package/build/NotificationCategoriesModule.js.map +1 -0
- package/build/NotificationCategoriesModule.kepler.d.ts +3 -0
- package/build/NotificationCategoriesModule.kepler.d.ts.map +1 -0
- package/build/NotificationCategoriesModule.kepler.js +10 -0
- package/build/NotificationCategoriesModule.kepler.js.map +1 -0
- package/build/NotificationCategoriesModule.native.d.ts +4 -0
- package/build/NotificationCategoriesModule.native.d.ts.map +1 -0
- package/build/NotificationCategoriesModule.native.js +3 -0
- package/build/NotificationCategoriesModule.native.js.map +1 -0
- package/build/NotificationCategoriesModule.types.d.ts +17 -0
- package/build/NotificationCategoriesModule.types.d.ts.map +1 -0
- package/build/NotificationCategoriesModule.types.js +2 -0
- package/build/NotificationCategoriesModule.types.js.map +1 -0
- package/build/NotificationCategoriesModule.web.d.ts +8 -0
- package/build/NotificationCategoriesModule.web.d.ts.map +1 -0
- package/build/NotificationCategoriesModule.web.js +12 -0
- package/build/NotificationCategoriesModule.web.js.map +1 -0
- package/build/NotificationChannelGroupManager.d.ts +4 -0
- package/build/NotificationChannelGroupManager.d.ts.map +1 -0
- package/build/NotificationChannelGroupManager.js +5 -0
- package/build/NotificationChannelGroupManager.js.map +1 -0
- package/build/NotificationChannelGroupManager.kepler.d.ts +3 -0
- package/build/NotificationChannelGroupManager.kepler.d.ts.map +1 -0
- package/build/NotificationChannelGroupManager.kepler.js +9 -0
- package/build/NotificationChannelGroupManager.kepler.js.map +1 -0
- package/build/NotificationChannelGroupManager.native.d.ts +4 -0
- package/build/NotificationChannelGroupManager.native.d.ts.map +1 -0
- package/build/NotificationChannelGroupManager.native.js +3 -0
- package/build/NotificationChannelGroupManager.native.js.map +1 -0
- package/build/NotificationChannelGroupManager.types.d.ts +28 -0
- package/build/NotificationChannelGroupManager.types.d.ts.map +1 -0
- package/build/NotificationChannelGroupManager.types.js +2 -0
- package/build/NotificationChannelGroupManager.types.js.map +1 -0
- package/build/NotificationChannelManager.d.ts +4 -0
- package/build/NotificationChannelManager.d.ts.map +1 -0
- package/build/NotificationChannelManager.js +5 -0
- package/build/NotificationChannelManager.js.map +1 -0
- package/build/NotificationChannelManager.kepler.d.ts +3 -0
- package/build/NotificationChannelManager.kepler.d.ts.map +1 -0
- package/build/NotificationChannelManager.kepler.js +9 -0
- package/build/NotificationChannelManager.kepler.js.map +1 -0
- package/build/NotificationChannelManager.native.d.ts +4 -0
- package/build/NotificationChannelManager.native.d.ts.map +1 -0
- package/build/NotificationChannelManager.native.js +3 -0
- package/build/NotificationChannelManager.native.js.map +1 -0
- package/build/NotificationChannelManager.types.d.ts +91 -0
- package/build/NotificationChannelManager.types.d.ts.map +1 -0
- package/build/NotificationChannelManager.types.js +53 -0
- package/build/NotificationChannelManager.types.js.map +1 -0
- package/build/NotificationPermissions.d.ts +56 -0
- package/build/NotificationPermissions.d.ts.map +1 -0
- package/build/NotificationPermissions.js +79 -0
- package/build/NotificationPermissions.js.map +1 -0
- package/build/NotificationPermissions.types.d.ts +94 -0
- package/build/NotificationPermissions.types.d.ts.map +1 -0
- package/build/NotificationPermissions.types.js +21 -0
- package/build/NotificationPermissions.types.js.map +1 -0
- package/build/NotificationPermissionsModule.d.ts +4 -0
- package/build/NotificationPermissionsModule.d.ts.map +1 -0
- package/build/NotificationPermissionsModule.js +67 -0
- package/build/NotificationPermissionsModule.js.map +1 -0
- package/build/NotificationPermissionsModule.kepler.d.ts +3 -0
- package/build/NotificationPermissionsModule.kepler.d.ts.map +1 -0
- package/build/NotificationPermissionsModule.kepler.js +9 -0
- package/build/NotificationPermissionsModule.kepler.js.map +1 -0
- package/build/NotificationPermissionsModule.native.d.ts +4 -0
- package/build/NotificationPermissionsModule.native.d.ts.map +1 -0
- package/build/NotificationPermissionsModule.native.js +3 -0
- package/build/NotificationPermissionsModule.native.js.map +1 -0
- package/build/NotificationPermissionsModule.types.d.ts +7 -0
- package/build/NotificationPermissionsModule.types.d.ts.map +1 -0
- package/build/NotificationPermissionsModule.types.js +2 -0
- package/build/NotificationPermissionsModule.types.js.map +1 -0
- package/build/NotificationPresenterModule.d.ts +4 -0
- package/build/NotificationPresenterModule.d.ts.map +1 -0
- package/build/NotificationPresenterModule.js +5 -0
- package/build/NotificationPresenterModule.js.map +1 -0
- package/build/NotificationPresenterModule.kepler.d.ts +4 -0
- package/build/NotificationPresenterModule.kepler.d.ts.map +1 -0
- package/build/NotificationPresenterModule.kepler.js +55 -0
- package/build/NotificationPresenterModule.kepler.js.map +1 -0
- package/build/NotificationPresenterModule.native.d.ts +4 -0
- package/build/NotificationPresenterModule.native.d.ts.map +1 -0
- package/build/NotificationPresenterModule.native.js +3 -0
- package/build/NotificationPresenterModule.native.js.map +1 -0
- package/build/NotificationPresenterModule.types.d.ts +9 -0
- package/build/NotificationPresenterModule.types.d.ts.map +1 -0
- package/build/NotificationPresenterModule.types.js +2 -0
- package/build/NotificationPresenterModule.types.js.map +1 -0
- package/build/NotificationScheduler.d.ts +4 -0
- package/build/NotificationScheduler.d.ts.map +1 -0
- package/build/NotificationScheduler.js +5 -0
- package/build/NotificationScheduler.js.map +1 -0
- package/build/NotificationScheduler.kepler.d.ts +4 -0
- package/build/NotificationScheduler.kepler.d.ts.map +1 -0
- package/build/NotificationScheduler.kepler.js +50 -0
- package/build/NotificationScheduler.kepler.js.map +1 -0
- package/build/NotificationScheduler.native.d.ts +4 -0
- package/build/NotificationScheduler.native.d.ts.map +1 -0
- package/build/NotificationScheduler.native.js +3 -0
- package/build/NotificationScheduler.native.js.map +1 -0
- package/build/NotificationScheduler.types.d.ts +65 -0
- package/build/NotificationScheduler.types.d.ts.map +1 -0
- package/build/NotificationScheduler.types.js +2 -0
- package/build/NotificationScheduler.types.js.map +1 -0
- package/build/Notifications.types.d.ts +666 -0
- package/build/Notifications.types.d.ts.map +1 -0
- package/build/Notifications.types.js +12 -0
- package/build/Notifications.types.js.map +1 -0
- package/build/NotificationsEmitter.d.ts +75 -0
- package/build/NotificationsEmitter.d.ts.map +1 -0
- package/build/NotificationsEmitter.js +95 -0
- package/build/NotificationsEmitter.js.map +1 -0
- package/build/NotificationsEmitterModule.d.ts +4 -0
- package/build/NotificationsEmitterModule.d.ts.map +1 -0
- package/build/NotificationsEmitterModule.js +12 -0
- package/build/NotificationsEmitterModule.js.map +1 -0
- package/build/NotificationsEmitterModule.kepler.d.ts +3 -0
- package/build/NotificationsEmitterModule.kepler.d.ts.map +1 -0
- package/build/NotificationsEmitterModule.kepler.js +9 -0
- package/build/NotificationsEmitterModule.kepler.js.map +1 -0
- package/build/NotificationsEmitterModule.native.d.ts +4 -0
- package/build/NotificationsEmitterModule.native.d.ts.map +1 -0
- package/build/NotificationsEmitterModule.native.js +3 -0
- package/build/NotificationsEmitterModule.native.js.map +1 -0
- package/build/NotificationsEmitterModule.types.d.ts +6 -0
- package/build/NotificationsEmitterModule.types.d.ts.map +1 -0
- package/build/NotificationsEmitterModule.types.js +2 -0
- package/build/NotificationsEmitterModule.types.js.map +1 -0
- package/build/NotificationsHandler.d.ts +60 -0
- package/build/NotificationsHandler.d.ts.map +1 -0
- package/build/NotificationsHandler.js +72 -0
- package/build/NotificationsHandler.js.map +1 -0
- package/build/NotificationsHandlerModule.d.ts +4 -0
- package/build/NotificationsHandlerModule.d.ts.map +1 -0
- package/build/NotificationsHandlerModule.js +12 -0
- package/build/NotificationsHandlerModule.js.map +1 -0
- package/build/NotificationsHandlerModule.kepler.d.ts +3 -0
- package/build/NotificationsHandlerModule.kepler.d.ts.map +1 -0
- package/build/NotificationsHandlerModule.kepler.js +9 -0
- package/build/NotificationsHandlerModule.kepler.js.map +1 -0
- package/build/NotificationsHandlerModule.native.d.ts +4 -0
- package/build/NotificationsHandlerModule.native.d.ts.map +1 -0
- package/build/NotificationsHandlerModule.native.js +3 -0
- package/build/NotificationsHandlerModule.native.js.map +1 -0
- package/build/NotificationsHandlerModule.types.d.ts +6 -0
- package/build/NotificationsHandlerModule.types.d.ts.map +1 -0
- package/build/NotificationsHandlerModule.types.js +2 -0
- package/build/NotificationsHandlerModule.types.js.map +1 -0
- package/build/PushTokenManager.d.ts +4 -0
- package/build/PushTokenManager.d.ts.map +1 -0
- package/build/PushTokenManager.js +12 -0
- package/build/PushTokenManager.js.map +1 -0
- package/build/PushTokenManager.kepler.d.ts +3 -0
- package/build/PushTokenManager.kepler.d.ts.map +1 -0
- package/build/PushTokenManager.kepler.js +9 -0
- package/build/PushTokenManager.kepler.js.map +1 -0
- package/build/PushTokenManager.native.d.ts +4 -0
- package/build/PushTokenManager.native.d.ts.map +1 -0
- package/build/PushTokenManager.native.js +3 -0
- package/build/PushTokenManager.native.js.map +1 -0
- package/build/PushTokenManager.types.d.ts +6 -0
- package/build/PushTokenManager.types.d.ts.map +1 -0
- package/build/PushTokenManager.types.js +2 -0
- package/build/PushTokenManager.types.js.map +1 -0
- package/build/ServerRegistrationModule.d.ts +4 -0
- package/build/ServerRegistrationModule.d.ts.map +1 -0
- package/build/ServerRegistrationModule.js +5 -0
- package/build/ServerRegistrationModule.js.map +1 -0
- package/build/ServerRegistrationModule.kepler.d.ts +3 -0
- package/build/ServerRegistrationModule.kepler.d.ts.map +1 -0
- package/build/ServerRegistrationModule.kepler.js +9 -0
- package/build/ServerRegistrationModule.kepler.js.map +1 -0
- package/build/ServerRegistrationModule.native.d.ts +4 -0
- package/build/ServerRegistrationModule.native.d.ts.map +1 -0
- package/build/ServerRegistrationModule.native.js +3 -0
- package/build/ServerRegistrationModule.native.js.map +1 -0
- package/build/ServerRegistrationModule.types.d.ts +7 -0
- package/build/ServerRegistrationModule.types.d.ts.map +1 -0
- package/build/ServerRegistrationModule.types.js +2 -0
- package/build/ServerRegistrationModule.types.js.map +1 -0
- package/build/ServerRegistrationModule.web.d.ts +4 -0
- package/build/ServerRegistrationModule.web.d.ts.map +1 -0
- package/build/ServerRegistrationModule.web.js +50 -0
- package/build/ServerRegistrationModule.web.js.map +1 -0
- package/build/TokenEmitter.d.ts +42 -0
- package/build/TokenEmitter.d.ts.map +1 -0
- package/build/TokenEmitter.js +44 -0
- package/build/TokenEmitter.js.map +1 -0
- package/build/Tokens.types.d.ts +99 -0
- package/build/Tokens.types.d.ts.map +1 -0
- package/build/Tokens.types.js +2 -0
- package/build/Tokens.types.js.map +1 -0
- package/build/cancelAllScheduledNotificationsAsync.d.ts +7 -0
- package/build/cancelAllScheduledNotificationsAsync.d.ts.map +1 -0
- package/build/cancelAllScheduledNotificationsAsync.js +14 -0
- package/build/cancelAllScheduledNotificationsAsync.js.map +1 -0
- package/build/cancelScheduledNotificationAsync.d.ts +22 -0
- package/build/cancelScheduledNotificationAsync.d.ts.map +1 -0
- package/build/cancelScheduledNotificationAsync.js +29 -0
- package/build/cancelScheduledNotificationAsync.js.map +1 -0
- package/build/deleteNotificationCategoryAsync.d.ts +11 -0
- package/build/deleteNotificationCategoryAsync.d.ts.map +1 -0
- package/build/deleteNotificationCategoryAsync.js +19 -0
- package/build/deleteNotificationCategoryAsync.js.map +1 -0
- package/build/deleteNotificationChannelAsync.android.d.ts +2 -0
- package/build/deleteNotificationChannelAsync.android.d.ts.map +1 -0
- package/build/deleteNotificationChannelAsync.android.js +9 -0
- package/build/deleteNotificationChannelAsync.android.js.map +1 -0
- package/build/deleteNotificationChannelAsync.d.ts +9 -0
- package/build/deleteNotificationChannelAsync.d.ts.map +1 -0
- package/build/deleteNotificationChannelAsync.js +11 -0
- package/build/deleteNotificationChannelAsync.js.map +1 -0
- package/build/deleteNotificationChannelGroupAsync.android.d.ts +2 -0
- package/build/deleteNotificationChannelGroupAsync.android.d.ts.map +1 -0
- package/build/deleteNotificationChannelGroupAsync.android.js +9 -0
- package/build/deleteNotificationChannelGroupAsync.android.js.map +1 -0
- package/build/deleteNotificationChannelGroupAsync.d.ts +9 -0
- package/build/deleteNotificationChannelGroupAsync.d.ts.map +1 -0
- package/build/deleteNotificationChannelGroupAsync.js +11 -0
- package/build/deleteNotificationChannelGroupAsync.js.map +1 -0
- package/build/dismissAllNotificationsAsync.d.ts +7 -0
- package/build/dismissAllNotificationsAsync.d.ts.map +1 -0
- package/build/dismissAllNotificationsAsync.js +14 -0
- package/build/dismissAllNotificationsAsync.js.map +1 -0
- package/build/dismissNotificationAsync.d.ts +8 -0
- package/build/dismissNotificationAsync.d.ts.map +1 -0
- package/build/dismissNotificationAsync.js +15 -0
- package/build/dismissNotificationAsync.js.map +1 -0
- package/build/getAllScheduledNotificationsAsync.d.ts +8 -0
- package/build/getAllScheduledNotificationsAsync.d.ts.map +1 -0
- package/build/getAllScheduledNotificationsAsync.js +14 -0
- package/build/getAllScheduledNotificationsAsync.js.map +1 -0
- package/build/getBadgeCountAsync.d.ts +8 -0
- package/build/getBadgeCountAsync.d.ts.map +1 -0
- package/build/getBadgeCountAsync.js +15 -0
- package/build/getBadgeCountAsync.js.map +1 -0
- package/build/getDevicePushTokenAsync.d.ts +8 -0
- package/build/getDevicePushTokenAsync.d.ts.map +1 -0
- package/build/getDevicePushTokenAsync.js +27 -0
- package/build/getDevicePushTokenAsync.js.map +1 -0
- package/build/getDevicePushTokenAsync.web.d.ts +3 -0
- package/build/getDevicePushTokenAsync.web.d.ts.map +1 -0
- package/build/getDevicePushTokenAsync.web.js +84 -0
- package/build/getDevicePushTokenAsync.web.js.map +1 -0
- package/build/getExpoPushTokenAsync.d.ts +40 -0
- package/build/getExpoPushTokenAsync.d.ts.map +1 -0
- package/build/getExpoPushTokenAsync.js +177 -0
- package/build/getExpoPushTokenAsync.js.map +1 -0
- package/build/getNextTriggerDateAsync.d.ts +26 -0
- package/build/getNextTriggerDateAsync.d.ts.map +1 -0
- package/build/getNextTriggerDateAsync.js +33 -0
- package/build/getNextTriggerDateAsync.js.map +1 -0
- package/build/getNotificationCategoriesAsync.d.ts +11 -0
- package/build/getNotificationCategoriesAsync.d.ts.map +1 -0
- package/build/getNotificationCategoriesAsync.js +18 -0
- package/build/getNotificationCategoriesAsync.js.map +1 -0
- package/build/getNotificationChannelAsync.android.d.ts +3 -0
- package/build/getNotificationChannelAsync.android.d.ts.map +1 -0
- package/build/getNotificationChannelAsync.android.js +9 -0
- package/build/getNotificationChannelAsync.android.js.map +1 -0
- package/build/getNotificationChannelAsync.d.ts +11 -0
- package/build/getNotificationChannelAsync.d.ts.map +1 -0
- package/build/getNotificationChannelAsync.js +13 -0
- package/build/getNotificationChannelAsync.js.map +1 -0
- package/build/getNotificationChannelGroupAsync.android.d.ts +3 -0
- package/build/getNotificationChannelGroupAsync.android.d.ts.map +1 -0
- package/build/getNotificationChannelGroupAsync.android.js +9 -0
- package/build/getNotificationChannelGroupAsync.android.js.map +1 -0
- package/build/getNotificationChannelGroupAsync.d.ts +12 -0
- package/build/getNotificationChannelGroupAsync.d.ts.map +1 -0
- package/build/getNotificationChannelGroupAsync.js +14 -0
- package/build/getNotificationChannelGroupAsync.js.map +1 -0
- package/build/getNotificationChannelGroupsAsync.android.d.ts +3 -0
- package/build/getNotificationChannelGroupsAsync.android.d.ts.map +1 -0
- package/build/getNotificationChannelGroupsAsync.android.js +9 -0
- package/build/getNotificationChannelGroupsAsync.android.js.map +1 -0
- package/build/getNotificationChannelGroupsAsync.d.ts +10 -0
- package/build/getNotificationChannelGroupsAsync.d.ts.map +1 -0
- package/build/getNotificationChannelGroupsAsync.js +12 -0
- package/build/getNotificationChannelGroupsAsync.js.map +1 -0
- package/build/getNotificationChannelsAsync.android.d.ts +3 -0
- package/build/getNotificationChannelsAsync.android.d.ts.map +1 -0
- package/build/getNotificationChannelsAsync.android.js +9 -0
- package/build/getNotificationChannelsAsync.android.js.map +1 -0
- package/build/getNotificationChannelsAsync.d.ts +10 -0
- package/build/getNotificationChannelsAsync.d.ts.map +1 -0
- package/build/getNotificationChannelsAsync.js +12 -0
- package/build/getNotificationChannelsAsync.js.map +1 -0
- package/build/getPresentedNotificationsAsync.d.ts +9 -0
- package/build/getPresentedNotificationsAsync.d.ts.map +1 -0
- package/build/getPresentedNotificationsAsync.js +15 -0
- package/build/getPresentedNotificationsAsync.js.map +1 -0
- package/build/index.d.ts +39 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +39 -0
- package/build/index.js.map +1 -0
- package/build/kepler/NotificationContent.d.ts +43 -0
- package/build/kepler/NotificationContent.d.ts.map +1 -0
- package/build/kepler/NotificationContent.js +96 -0
- package/build/kepler/NotificationContent.js.map +1 -0
- package/build/kepler/index.d.ts +3 -0
- package/build/kepler/index.d.ts.map +1 -0
- package/build/kepler/index.js +15 -0
- package/build/kepler/index.js.map +1 -0
- package/build/kepler/native-notification-manager.d.ts +3 -0
- package/build/kepler/native-notification-manager.d.ts.map +1 -0
- package/build/kepler/native-notification-manager.js +10 -0
- package/build/kepler/native-notification-manager.js.map +1 -0
- package/build/kepler/types/NotificationManagerTypes.d.ts +373 -0
- package/build/kepler/types/NotificationManagerTypes.d.ts.map +1 -0
- package/build/kepler/types/NotificationManagerTypes.js +279 -0
- package/build/kepler/types/NotificationManagerTypes.js.map +1 -0
- package/build/kepler/types/index.d.ts +3 -0
- package/build/kepler/types/index.d.ts.map +1 -0
- package/build/kepler/types/index.js +15 -0
- package/build/kepler/types/index.js.map +1 -0
- package/build/presentNotificationAsync.d.ts +11 -0
- package/build/presentNotificationAsync.d.ts.map +1 -0
- package/build/presentNotificationAsync.js +22 -0
- package/build/presentNotificationAsync.js.map +1 -0
- package/build/registerTaskAsync.d.ts +29 -0
- package/build/registerTaskAsync.d.ts.map +1 -0
- package/build/registerTaskAsync.js +37 -0
- package/build/registerTaskAsync.js.map +1 -0
- package/build/scheduleNotificationAsync.d.ts +60 -0
- package/build/scheduleNotificationAsync.d.ts.map +1 -0
- package/build/scheduleNotificationAsync.js +261 -0
- package/build/scheduleNotificationAsync.js.map +1 -0
- package/build/setBadgeCountAsync.d.ts +19 -0
- package/build/setBadgeCountAsync.d.ts.map +1 -0
- package/build/setBadgeCountAsync.js +19 -0
- package/build/setBadgeCountAsync.js.map +1 -0
- package/build/setNotificationCategoryAsync.d.ts +15 -0
- package/build/setNotificationCategoryAsync.d.ts.map +1 -0
- package/build/setNotificationCategoryAsync.js +22 -0
- package/build/setNotificationCategoryAsync.js.map +1 -0
- package/build/setNotificationChannelAsync.android.d.ts +3 -0
- package/build/setNotificationChannelAsync.android.d.ts.map +1 -0
- package/build/setNotificationChannelAsync.android.js +9 -0
- package/build/setNotificationChannelAsync.android.js.map +1 -0
- package/build/setNotificationChannelAsync.d.ts +22 -0
- package/build/setNotificationChannelAsync.d.ts.map +1 -0
- package/build/setNotificationChannelAsync.js +24 -0
- package/build/setNotificationChannelAsync.js.map +1 -0
- package/build/setNotificationChannelGroupAsync.android.d.ts +3 -0
- package/build/setNotificationChannelGroupAsync.android.d.ts.map +1 -0
- package/build/setNotificationChannelGroupAsync.android.js +9 -0
- package/build/setNotificationChannelGroupAsync.android.js.map +1 -0
- package/build/setNotificationChannelGroupAsync.d.ts +12 -0
- package/build/setNotificationChannelGroupAsync.d.ts.map +1 -0
- package/build/setNotificationChannelGroupAsync.js +14 -0
- package/build/setNotificationChannelGroupAsync.js.map +1 -0
- package/build/unregisterForNotificationsAsync.d.ts +2 -0
- package/build/unregisterForNotificationsAsync.d.ts.map +1 -0
- package/build/unregisterForNotificationsAsync.js +10 -0
- package/build/unregisterForNotificationsAsync.js.map +1 -0
- package/build/unregisterTaskAsync.d.ts +7 -0
- package/build/unregisterTaskAsync.d.ts.map +1 -0
- package/build/unregisterTaskAsync.js +15 -0
- package/build/unregisterTaskAsync.js.map +1 -0
- package/build/useLastNotificationResponse.d.ts +38 -0
- package/build/useLastNotificationResponse.d.ts.map +1 -0
- package/build/useLastNotificationResponse.js +63 -0
- package/build/useLastNotificationResponse.js.map +1 -0
- package/build/utils/keplerUuidUtils.d.ts +5 -0
- package/build/utils/keplerUuidUtils.d.ts.map +1 -0
- package/build/utils/keplerUuidUtils.js +15 -0
- package/build/utils/keplerUuidUtils.js.map +1 -0
- package/build/utils/updateDevicePushTokenAsync.d.ts +3 -0
- package/build/utils/updateDevicePushTokenAsync.d.ts.map +1 -0
- package/build/utils/updateDevicePushTokenAsync.js +115 -0
- package/build/utils/updateDevicePushTokenAsync.js.map +1 -0
- package/expo-module.config.json +20 -0
- package/ios/EXNotifications/Building/EXNotificationBuilder.h +19 -0
- package/ios/EXNotifications/Building/EXNotificationBuilder.m +91 -0
- package/ios/EXNotifications/EXBadgeModule.h +11 -0
- package/ios/EXNotifications/EXBadgeModule.m +36 -0
- package/ios/EXNotifications/EXServerRegistrationModule.h +19 -0
- package/ios/EXNotifications/EXServerRegistrationModule.m +194 -0
- package/ios/EXNotifications/Notifications/Background/EXBackgroundNotificationTasksModule.h +16 -0
- package/ios/EXNotifications/Notifications/Background/EXBackgroundNotificationTasksModule.m +62 -0
- package/ios/EXNotifications/Notifications/Background/EXBackgroundRemoteNotificationConsumer.h +14 -0
- package/ios/EXNotifications/Notifications/Background/EXBackgroundRemoteNotificationConsumer.m +51 -0
- package/ios/EXNotifications/Notifications/Categories/EXNotificationCategoriesModule.h +25 -0
- package/ios/EXNotifications/Notifications/Categories/EXNotificationCategoriesModule.m +217 -0
- package/ios/EXNotifications/Notifications/EXNotificationCenterDelegate.h +29 -0
- package/ios/EXNotifications/Notifications/EXNotificationCenterDelegate.m +209 -0
- package/ios/EXNotifications/Notifications/EXNotificationSerializer.h +16 -0
- package/ios/EXNotifications/Notifications/EXNotificationSerializer.m +232 -0
- package/ios/EXNotifications/Notifications/EXNotificationsDelegate.h +27 -0
- package/ios/EXNotifications/Notifications/Emitter/EXNotificationsEmitter.h +17 -0
- package/ios/EXNotifications/Notifications/Emitter/EXNotificationsEmitter.m +114 -0
- package/ios/EXNotifications/Notifications/Handler/EXNotificationsHandlerModule.h +12 -0
- package/ios/EXNotifications/Notifications/Handler/EXNotificationsHandlerModule.m +109 -0
- package/ios/EXNotifications/Notifications/Handler/EXSingleNotificationHandlerTask.h +33 -0
- package/ios/EXNotifications/Notifications/Handler/EXSingleNotificationHandlerTask.m +124 -0
- package/ios/EXNotifications/Notifications/NSDictionary+EXNotificationsVerifyingClass.h +7 -0
- package/ios/EXNotifications/Notifications/NSDictionary+EXNotificationsVerifyingClass.m +19 -0
- package/ios/EXNotifications/Notifications/Presenting/EXNotificationPresentationModule.h +13 -0
- package/ios/EXNotifications/Notifications/Presenting/EXNotificationPresentationModule.m +124 -0
- package/ios/EXNotifications/Notifications/Scheduling/EXNotificationSchedulerModule.h +21 -0
- package/ios/EXNotifications/Notifications/Scheduling/EXNotificationSchedulerModule.m +263 -0
- package/ios/EXNotifications/Permissions/EXLegacyRemoteNotificationPermissionRequester.h +13 -0
- package/ios/EXNotifications/Permissions/EXLegacyRemoteNotificationPermissionRequester.m +135 -0
- package/ios/EXNotifications/Permissions/EXNotificationPermissionsModule.h +8 -0
- package/ios/EXNotifications/Permissions/EXNotificationPermissionsModule.m +67 -0
- package/ios/EXNotifications/Permissions/EXRemoteNotificationPermissionSingletonModule.h +29 -0
- package/ios/EXNotifications/Permissions/EXRemoteNotificationPermissionSingletonModule.m +68 -0
- package/ios/EXNotifications/Permissions/EXUserFacingNotificationsPermissionsRequester.h +15 -0
- package/ios/EXNotifications/Permissions/EXUserFacingNotificationsPermissionsRequester.m +202 -0
- package/ios/EXNotifications/PushToken/EXPushTokenListener.h +14 -0
- package/ios/EXNotifications/PushToken/EXPushTokenManager.h +24 -0
- package/ios/EXNotifications/PushToken/EXPushTokenManager.m +63 -0
- package/ios/EXNotifications/PushToken/EXPushTokenModule.h +9 -0
- package/ios/EXNotifications/PushToken/EXPushTokenModule.m +154 -0
- package/ios/EXNotifications.podspec +25 -0
- package/package.json +67 -0
- package/plugin/build/withNotifications.d.ts +28 -0
- package/plugin/build/withNotifications.js +12 -0
- package/plugin/build/withNotificationsAndroid.d.ts +42 -0
- package/plugin/build/withNotificationsAndroid.js +184 -0
- package/plugin/build/withNotificationsIOS.d.ts +14 -0
- package/plugin/build/withNotificationsIOS.js +58 -0
- package/plugin/jest.config.js +1 -0
- package/plugin/src/withNotifications.ts +40 -0
- package/plugin/src/withNotificationsAndroid.ts +239 -0
- package/plugin/src/withNotificationsIOS.ts +78 -0
- package/plugin/tsconfig.json +9 -0
- package/src/BackgroundNotificationTasksModule.kepler.ts +8 -0
- package/src/BackgroundNotificationTasksModule.native.ts +7 -0
- package/src/BackgroundNotificationTasksModule.ts +8 -0
- package/src/BackgroundNotificationTasksModule.types.ts +12 -0
- package/src/BackgroundNotificationTasksModule.web.ts +8 -0
- package/src/BadgeModule.kepler.ts +8 -0
- package/src/BadgeModule.native.ts +15 -0
- package/src/BadgeModule.ts +6 -0
- package/src/BadgeModule.types.ts +11 -0
- package/src/BadgeModule.web.ts +28 -0
- package/src/DevicePushTokenAutoRegistration.fx.ts +119 -0
- package/src/NotificationCategoriesModule.kepler.ts +10 -0
- package/src/NotificationCategoriesModule.native.ts +7 -0
- package/src/NotificationCategoriesModule.ts +15 -0
- package/src/NotificationCategoriesModule.types.ts +22 -0
- package/src/NotificationCategoriesModule.web.ts +17 -0
- package/src/NotificationChannelGroupManager.kepler.ts +8 -0
- package/src/NotificationChannelGroupManager.native.ts +7 -0
- package/src/NotificationChannelGroupManager.ts +6 -0
- package/src/NotificationChannelGroupManager.types.ts +34 -0
- package/src/NotificationChannelManager.kepler.ts +8 -0
- package/src/NotificationChannelManager.native.ts +5 -0
- package/src/NotificationChannelManager.ts +6 -0
- package/src/NotificationChannelManager.types.ts +115 -0
- package/src/NotificationPermissions.ts +91 -0
- package/src/NotificationPermissions.types.ts +102 -0
- package/src/NotificationPermissionsModule.kepler.ts +8 -0
- package/src/NotificationPermissionsModule.native.ts +7 -0
- package/src/NotificationPermissionsModule.ts +83 -0
- package/src/NotificationPermissionsModule.types.ts +13 -0
- package/src/NotificationPresenterModule.kepler.ts +67 -0
- package/src/NotificationPresenterModule.native.ts +5 -0
- package/src/NotificationPresenterModule.ts +6 -0
- package/src/NotificationPresenterModule.types.ts +13 -0
- package/src/NotificationScheduler.kepler.ts +63 -0
- package/src/NotificationScheduler.native.ts +5 -0
- package/src/NotificationScheduler.ts +6 -0
- package/src/NotificationScheduler.types.ts +89 -0
- package/src/Notifications.types.ts +722 -0
- package/src/NotificationsEmitter.ts +111 -0
- package/src/NotificationsEmitterModule.kepler.ts +8 -0
- package/src/NotificationsEmitterModule.native.ts +5 -0
- package/src/NotificationsEmitterModule.ts +17 -0
- package/src/NotificationsEmitterModule.types.ts +7 -0
- package/src/NotificationsHandler.ts +120 -0
- package/src/NotificationsHandlerModule.kepler.ts +8 -0
- package/src/NotificationsHandlerModule.native.ts +5 -0
- package/src/NotificationsHandlerModule.ts +17 -0
- package/src/NotificationsHandlerModule.types.ts +10 -0
- package/src/PushTokenManager.kepler.ts +8 -0
- package/src/PushTokenManager.native.ts +5 -0
- package/src/PushTokenManager.ts +17 -0
- package/src/PushTokenManager.types.ts +6 -0
- package/src/ServerRegistrationModule.kepler.ts +8 -0
- package/src/ServerRegistrationModule.native.ts +7 -0
- package/src/ServerRegistrationModule.ts +6 -0
- package/src/ServerRegistrationModule.types.ts +7 -0
- package/src/ServerRegistrationModule.web.ts +56 -0
- package/src/TokenEmitter.ts +56 -0
- package/src/Tokens.types.ts +110 -0
- package/src/cancelAllScheduledNotificationsAsync.ts +16 -0
- package/src/cancelScheduledNotificationAsync.ts +31 -0
- package/src/deleteNotificationCategoryAsync.ts +23 -0
- package/src/deleteNotificationChannelAsync.android.ts +11 -0
- package/src/deleteNotificationChannelAsync.ts +10 -0
- package/src/deleteNotificationChannelGroupAsync.android.ts +11 -0
- package/src/deleteNotificationChannelGroupAsync.ts +10 -0
- package/src/dismissAllNotificationsAsync.ts +16 -0
- package/src/dismissNotificationAsync.ts +19 -0
- package/src/getAllScheduledNotificationsAsync.ts +17 -0
- package/src/getBadgeCountAsync.ts +17 -0
- package/src/getDevicePushTokenAsync.ts +31 -0
- package/src/getDevicePushTokenAsync.web.ts +122 -0
- package/src/getExpoPushTokenAsync.ts +238 -0
- package/src/getNextTriggerDateAsync.ts +38 -0
- package/src/getNotificationCategoriesAsync.ts +21 -0
- package/src/getNotificationChannelAsync.android.ts +13 -0
- package/src/getNotificationChannelAsync.ts +16 -0
- package/src/getNotificationChannelGroupAsync.android.ts +14 -0
- package/src/getNotificationChannelGroupAsync.ts +17 -0
- package/src/getNotificationChannelGroupsAsync.android.ts +13 -0
- package/src/getNotificationChannelGroupsAsync.ts +15 -0
- package/src/getNotificationChannelsAsync.android.ts +11 -0
- package/src/getNotificationChannelsAsync.ts +13 -0
- package/src/getPresentedNotificationsAsync.ts +18 -0
- package/src/index.ts +38 -0
- package/src/kepler/NotificationContent.ts +119 -0
- package/src/kepler/index.ts +16 -0
- package/src/kepler/native-notification-manager.ts +10 -0
- package/src/kepler/types/NotificationManagerTypes.ts +508 -0
- package/src/kepler/types/index.ts +16 -0
- package/src/presentNotificationAsync.ts +32 -0
- package/src/registerTaskAsync.ts +39 -0
- package/src/scheduleNotificationAsync.ts +335 -0
- package/src/setBadgeCountAsync.ts +32 -0
- package/src/setNotificationCategoryAsync.ts +37 -0
- package/src/setNotificationChannelAsync.android.ts +15 -0
- package/src/setNotificationChannelAsync.ts +28 -0
- package/src/setNotificationChannelGroupAsync.android.ts +18 -0
- package/src/setNotificationChannelGroupAsync.ts +21 -0
- package/src/unregisterForNotificationsAsync.ts +11 -0
- package/src/unregisterTaskAsync.ts +17 -0
- package/src/useLastNotificationResponse.ts +70 -0
- package/src/utils/keplerUuidUtils.ts +29 -0
- package/src/utils/updateDevicePushTokenAsync.ts +147 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.enums;
|
|
2
|
+
|
|
3
|
+
import androidx.core.app.NotificationManagerCompat;
|
|
4
|
+
|
|
5
|
+
public enum NotificationImportance {
|
|
6
|
+
UNSPECIFIED(NotificationManagerCompat.IMPORTANCE_UNSPECIFIED, 1),
|
|
7
|
+
NONE(NotificationManagerCompat.IMPORTANCE_NONE, 2),
|
|
8
|
+
MIN(NotificationManagerCompat.IMPORTANCE_MIN, 3),
|
|
9
|
+
LOW(NotificationManagerCompat.IMPORTANCE_LOW, 4),
|
|
10
|
+
DEFAULT(NotificationManagerCompat.IMPORTANCE_DEFAULT, 5),
|
|
11
|
+
HIGH(NotificationManagerCompat.IMPORTANCE_HIGH, 6),
|
|
12
|
+
MAX(NotificationManagerCompat.IMPORTANCE_MAX, 7),
|
|
13
|
+
UNKNOWN(NotificationManagerCompat.IMPORTANCE_DEFAULT, 0);
|
|
14
|
+
|
|
15
|
+
private final int mNativeImportance;
|
|
16
|
+
private final int mEnumValue;
|
|
17
|
+
|
|
18
|
+
NotificationImportance(int nativeImportance, int enumValue) {
|
|
19
|
+
mNativeImportance = nativeImportance;
|
|
20
|
+
mEnumValue = enumValue;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public int getNativeValue() {
|
|
24
|
+
return mNativeImportance;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public int getEnumValue() {
|
|
28
|
+
return mEnumValue;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public static NotificationImportance fromEnumValue(int value) {
|
|
32
|
+
for (NotificationImportance importance : NotificationImportance.values()) {
|
|
33
|
+
if (importance.getEnumValue() == value) {
|
|
34
|
+
return importance;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return NotificationImportance.UNKNOWN;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public static NotificationImportance fromNativeValue(int value) {
|
|
41
|
+
for (NotificationImportance importance : NotificationImportance.values()) {
|
|
42
|
+
if (importance.getNativeValue() == value) {
|
|
43
|
+
return importance;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return NotificationImportance.UNKNOWN;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.enums;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.Nullable;
|
|
4
|
+
import androidx.core.app.NotificationCompat;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* An enum allowing easy conversion between platform enum and native priority.
|
|
8
|
+
*/
|
|
9
|
+
public enum NotificationPriority {
|
|
10
|
+
MIN(NotificationCompat.PRIORITY_MIN, "min"),
|
|
11
|
+
LOW(NotificationCompat.PRIORITY_LOW, "low"),
|
|
12
|
+
DEFAULT(NotificationCompat.PRIORITY_DEFAULT, "default"),
|
|
13
|
+
HIGH(NotificationCompat.PRIORITY_HIGH, "high"),
|
|
14
|
+
MAX(NotificationCompat.PRIORITY_MAX, "max");
|
|
15
|
+
|
|
16
|
+
private final int mNativePriority;
|
|
17
|
+
private final String mEnumValue;
|
|
18
|
+
|
|
19
|
+
NotificationPriority(int nativePriority, String enumValue) {
|
|
20
|
+
mNativePriority = nativePriority;
|
|
21
|
+
mEnumValue = enumValue;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public int getNativeValue() {
|
|
25
|
+
return mNativePriority;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public String getEnumValue() {
|
|
29
|
+
return mEnumValue;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@Nullable
|
|
33
|
+
public static NotificationPriority fromEnumValue(String value) {
|
|
34
|
+
for (NotificationPriority priority : NotificationPriority.values()) {
|
|
35
|
+
if (priority.getEnumValue().equalsIgnoreCase(value)) {
|
|
36
|
+
return priority;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@Nullable
|
|
43
|
+
public static NotificationPriority fromNativeValue(int value) {
|
|
44
|
+
for (NotificationPriority priority : NotificationPriority.values()) {
|
|
45
|
+
if (priority.getNativeValue() == value) {
|
|
46
|
+
return priority;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.enums;
|
|
2
|
+
|
|
3
|
+
import android.app.Notification;
|
|
4
|
+
|
|
5
|
+
public enum NotificationVisibility {
|
|
6
|
+
PUBLIC(Notification.VISIBILITY_PUBLIC, 1),
|
|
7
|
+
PRIVATE(Notification.VISIBILITY_PRIVATE, 2),
|
|
8
|
+
SECRET(Notification.VISIBILITY_SECRET, 3),
|
|
9
|
+
UNKNOWN(Notification.VISIBILITY_PUBLIC, 0);
|
|
10
|
+
|
|
11
|
+
private final int mNativeVisibility;
|
|
12
|
+
private final int mEnumValue;
|
|
13
|
+
|
|
14
|
+
NotificationVisibility(int nativeVisibility, int enumValue) {
|
|
15
|
+
mNativeVisibility = nativeVisibility;
|
|
16
|
+
mEnumValue = enumValue;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public int getNativeValue() {
|
|
20
|
+
return mNativeVisibility;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public int getEnumValue() {
|
|
24
|
+
return mEnumValue;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public static NotificationVisibility fromEnumValue(int value) {
|
|
28
|
+
for (NotificationVisibility visibility : NotificationVisibility.values()) {
|
|
29
|
+
if (visibility.getEnumValue() == value) {
|
|
30
|
+
return visibility;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return NotificationVisibility.UNKNOWN;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public static NotificationVisibility fromNativeValue(int value) {
|
|
37
|
+
for (NotificationVisibility visibility : NotificationVisibility.values()) {
|
|
38
|
+
if (visibility.getNativeValue() == value) {
|
|
39
|
+
return visibility;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return NotificationVisibility.UNKNOWN;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.handling
|
|
2
|
+
|
|
3
|
+
import android.os.Handler
|
|
4
|
+
import android.os.HandlerThread
|
|
5
|
+
import expo.modules.core.ModuleRegistry
|
|
6
|
+
import expo.modules.kotlin.Promise
|
|
7
|
+
import expo.modules.kotlin.modules.Module
|
|
8
|
+
import expo.modules.kotlin.modules.ModuleDefinition
|
|
9
|
+
import expo.modules.kotlin.records.Field
|
|
10
|
+
import expo.modules.kotlin.records.Record
|
|
11
|
+
import expo.modules.notifications.NotificationWasAlreadyHandledException
|
|
12
|
+
import expo.modules.notifications.notifications.interfaces.NotificationListener
|
|
13
|
+
import expo.modules.notifications.notifications.interfaces.NotificationManager
|
|
14
|
+
import expo.modules.notifications.notifications.model.Notification
|
|
15
|
+
import expo.modules.notifications.notifications.model.NotificationBehavior
|
|
16
|
+
import expo.modules.notifications.toLegacyPromise
|
|
17
|
+
|
|
18
|
+
class NotificationBehaviourRecord : Record {
|
|
19
|
+
@Field
|
|
20
|
+
val shouldShowAlert: Boolean = false
|
|
21
|
+
|
|
22
|
+
@Field
|
|
23
|
+
val shouldPlaySound: Boolean = false
|
|
24
|
+
|
|
25
|
+
@Field
|
|
26
|
+
val shouldSetBadge: Boolean = false
|
|
27
|
+
|
|
28
|
+
@Field
|
|
29
|
+
val priority: String? = null
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* [NotificationListener] responsible for managing app's reaction to incoming
|
|
34
|
+
* notification.
|
|
35
|
+
*
|
|
36
|
+
*
|
|
37
|
+
* It is responsible for managing lifecycles of [SingleNotificationHandlerTask]s
|
|
38
|
+
* which are responsible: one for each notification. This module serves as holder
|
|
39
|
+
* for all of them and a proxy through which app responds with the behavior.
|
|
40
|
+
*/
|
|
41
|
+
open class NotificationsHandler : Module(), NotificationListener {
|
|
42
|
+
private lateinit var notificationManager: NotificationManager
|
|
43
|
+
private lateinit var moduleRegistry: ModuleRegistry
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* [HandlerThread] which is the host to the notifications handler.
|
|
47
|
+
*/
|
|
48
|
+
private lateinit var notificationsHandlerThread: HandlerThread
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* [Handler] on which lifecycle events are executed.
|
|
52
|
+
*/
|
|
53
|
+
private lateinit var handler: Handler
|
|
54
|
+
|
|
55
|
+
private val tasksMap = mutableMapOf<String, SingleNotificationHandlerTask>()
|
|
56
|
+
|
|
57
|
+
override fun definition() = ModuleDefinition {
|
|
58
|
+
Name("ExpoNotificationsHandlerModule")
|
|
59
|
+
|
|
60
|
+
OnCreate {
|
|
61
|
+
moduleRegistry = appContext.legacyModuleRegistry
|
|
62
|
+
|
|
63
|
+
// Register the module as a listener in NotificationManager singleton module.
|
|
64
|
+
// Deregistration happens in onDestroy callback.
|
|
65
|
+
notificationManager = requireNotNull(moduleRegistry.getSingletonModule("NotificationManager", NotificationManager::class.java))
|
|
66
|
+
notificationManager.addListener(this@NotificationsHandler)
|
|
67
|
+
notificationsHandlerThread = HandlerThread("NotificationsHandlerThread - " + this.javaClass.toString())
|
|
68
|
+
notificationsHandlerThread.start()
|
|
69
|
+
handler = Handler(notificationsHandlerThread.looper)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
OnDestroy {
|
|
73
|
+
notificationManager.removeListener(this@NotificationsHandler)
|
|
74
|
+
|
|
75
|
+
tasksMap.values.forEach(SingleNotificationHandlerTask::stop)
|
|
76
|
+
|
|
77
|
+
// We don't have to use `quitSafely` here, cause all tasks were stopped
|
|
78
|
+
notificationsHandlerThread.quit()
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
AsyncFunction("handleNotificationAsync", this@NotificationsHandler::handleNotificationAsync)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Called by the app with [NotificationBehaviourRecord] representing requested behavior
|
|
86
|
+
* that should be applied to the notification.
|
|
87
|
+
*
|
|
88
|
+
* @param identifier Identifier of the task which asked for behavior.
|
|
89
|
+
* @param behavior Behavior to apply to the notification.
|
|
90
|
+
* @param promise Promise to resolve once the notification is successfully presented
|
|
91
|
+
* or fails to be presented.
|
|
92
|
+
*/
|
|
93
|
+
private fun handleNotificationAsync(identifier: String, behavior: NotificationBehaviourRecord, promise: Promise) {
|
|
94
|
+
val task = tasksMap[identifier]
|
|
95
|
+
?: throw NotificationWasAlreadyHandledException(identifier)
|
|
96
|
+
|
|
97
|
+
with(behavior) {
|
|
98
|
+
task.handleResponse(
|
|
99
|
+
NotificationBehavior(shouldShowAlert, shouldPlaySound, shouldSetBadge, priority),
|
|
100
|
+
promise.toLegacyPromise()
|
|
101
|
+
)
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Callback called by [NotificationManager] to inform its listeners of new messages.
|
|
107
|
+
* Starts up a new [SingleNotificationHandlerTask] which will take it on from here.
|
|
108
|
+
*
|
|
109
|
+
* @param notification Notification received
|
|
110
|
+
*/
|
|
111
|
+
override fun onNotificationReceived(notification: Notification) {
|
|
112
|
+
val context = appContext.reactContext ?: return
|
|
113
|
+
val task = SingleNotificationHandlerTask(context, handler, moduleRegistry, notification, this)
|
|
114
|
+
tasksMap[task.identifier] = task
|
|
115
|
+
task.start()
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Callback called once [SingleNotificationHandlerTask] finishes.
|
|
120
|
+
* A cue for removal of the task.
|
|
121
|
+
*
|
|
122
|
+
* @param task Task that just fulfilled its responsibility.
|
|
123
|
+
*/
|
|
124
|
+
fun onTaskFinished(task: SingleNotificationHandlerTask) {
|
|
125
|
+
tasksMap.remove(task.identifier)
|
|
126
|
+
}
|
|
127
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.handling;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.os.Bundle;
|
|
5
|
+
import android.os.Handler;
|
|
6
|
+
import android.os.ResultReceiver;
|
|
7
|
+
|
|
8
|
+
import expo.modules.core.ModuleRegistry;
|
|
9
|
+
import expo.modules.core.Promise;
|
|
10
|
+
import expo.modules.core.interfaces.services.EventEmitter;
|
|
11
|
+
|
|
12
|
+
import expo.modules.notifications.notifications.NotificationSerializer;
|
|
13
|
+
import expo.modules.notifications.notifications.model.Notification;
|
|
14
|
+
import expo.modules.notifications.notifications.model.NotificationBehavior;
|
|
15
|
+
import expo.modules.notifications.service.NotificationsService;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* A "task" responsible for managing response to a single notification.
|
|
19
|
+
*/
|
|
20
|
+
public class SingleNotificationHandlerTask {
|
|
21
|
+
/**
|
|
22
|
+
* Name of the event asking the delegate for behavior.
|
|
23
|
+
*/
|
|
24
|
+
private final static String HANDLE_NOTIFICATION_EVENT_NAME = "onHandleNotification";
|
|
25
|
+
/**
|
|
26
|
+
* Name of the event emitted if the delegate doesn't respond in time.
|
|
27
|
+
*/
|
|
28
|
+
private final static String HANDLE_NOTIFICATION_TIMEOUT_EVENT_NAME = "onHandleNotificationTimeout";
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Seconds since sending the {@link #HANDLE_NOTIFICATION_EVENT_NAME} until the task
|
|
32
|
+
* is considered timed out.
|
|
33
|
+
*/
|
|
34
|
+
private final static int SECONDS_TO_TIMEOUT = 3;
|
|
35
|
+
|
|
36
|
+
private Handler mHandler;
|
|
37
|
+
private EventEmitter mEventEmitter;
|
|
38
|
+
private Notification mNotification;
|
|
39
|
+
private NotificationBehavior mBehavior;
|
|
40
|
+
private Context mContext;
|
|
41
|
+
private NotificationsHandler mDelegate;
|
|
42
|
+
|
|
43
|
+
private Runnable mTimeoutRunnable = SingleNotificationHandlerTask.this::handleTimeout;
|
|
44
|
+
|
|
45
|
+
/* package */ SingleNotificationHandlerTask(Context context, Handler handler, ModuleRegistry moduleRegistry, Notification notification, NotificationsHandler delegate) {
|
|
46
|
+
mContext = context;
|
|
47
|
+
mHandler = handler;
|
|
48
|
+
mEventEmitter = moduleRegistry.getModule(EventEmitter.class);
|
|
49
|
+
mNotification = notification;
|
|
50
|
+
mDelegate = delegate;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @return Identifier of the task.
|
|
55
|
+
*/
|
|
56
|
+
/* package */ String getIdentifier() {
|
|
57
|
+
return mNotification.getNotificationRequest().getIdentifier();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Starts the task, i.e. sends an event to the app's delegate and starts a timeout
|
|
62
|
+
* after which the task finishes itself.
|
|
63
|
+
*/
|
|
64
|
+
/* package */ void start() {
|
|
65
|
+
Bundle eventBody = new Bundle();
|
|
66
|
+
eventBody.putString("id", getIdentifier());
|
|
67
|
+
eventBody.putBundle("notification", NotificationSerializer.toBundle(mNotification));
|
|
68
|
+
mEventEmitter.emit(HANDLE_NOTIFICATION_EVENT_NAME, eventBody);
|
|
69
|
+
|
|
70
|
+
mHandler.postDelayed(mTimeoutRunnable, SECONDS_TO_TIMEOUT * 1000);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Stops the task abruptly (in case the app is being destroyed and there is no reason
|
|
75
|
+
* to wait for the response anymore).
|
|
76
|
+
*/
|
|
77
|
+
/* package */ void stop() {
|
|
78
|
+
finish();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Informs the task of a response - behavior requested by the app.
|
|
83
|
+
*
|
|
84
|
+
* @param behavior Behavior requested by the app
|
|
85
|
+
* @param promise Promise to fulfill once the behavior is applied to the notification.
|
|
86
|
+
*/
|
|
87
|
+
/* package */ void handleResponse(NotificationBehavior behavior, final Promise promise) {
|
|
88
|
+
mBehavior = behavior;
|
|
89
|
+
mHandler.post(new Runnable() {
|
|
90
|
+
@Override
|
|
91
|
+
public void run() {
|
|
92
|
+
NotificationsService.Companion.present(mContext, mNotification, mBehavior, new ResultReceiver(mHandler) {
|
|
93
|
+
@Override
|
|
94
|
+
protected void onReceiveResult(int resultCode, Bundle resultData) {
|
|
95
|
+
super.onReceiveResult(resultCode, resultData);
|
|
96
|
+
if (resultCode == NotificationsService.SUCCESS_CODE) {
|
|
97
|
+
promise.resolve(null);
|
|
98
|
+
} else {
|
|
99
|
+
Exception e = (Exception) resultData.getSerializable(NotificationsService.EXCEPTION_KEY);
|
|
100
|
+
promise.reject("ERR_NOTIFICATION_PRESENTATION_FAILED", "Notification presentation failed.", e);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
finish();
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Callback called by {@link #mTimeoutRunnable} after timeout time elapses.
|
|
111
|
+
* <p>
|
|
112
|
+
* Sends a timeout event to the app.
|
|
113
|
+
*/
|
|
114
|
+
private void handleTimeout() {
|
|
115
|
+
Bundle eventBody = new Bundle();
|
|
116
|
+
eventBody.putString("id", getIdentifier());
|
|
117
|
+
eventBody.putBundle("notification", NotificationSerializer.toBundle(mNotification));
|
|
118
|
+
mEventEmitter.emit(HANDLE_NOTIFICATION_TIMEOUT_EVENT_NAME, eventBody);
|
|
119
|
+
|
|
120
|
+
finish();
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Callback called when the task fulfills its responsibility. Clears up {@link #mHandler}
|
|
125
|
+
* and informs {@link #mDelegate} of the task's state.
|
|
126
|
+
*/
|
|
127
|
+
private void finish() {
|
|
128
|
+
mHandler.removeCallbacks(mTimeoutRunnable);
|
|
129
|
+
mDelegate.onTaskFinished(this);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.interfaces;
|
|
2
|
+
|
|
3
|
+
import expo.modules.notifications.notifications.model.Notification;
|
|
4
|
+
import expo.modules.notifications.notifications.model.NotificationBehavior;
|
|
5
|
+
import expo.modules.notifications.notifications.model.NotificationContent;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* An object capable of building a {@link Notification} based
|
|
9
|
+
* on a {@link NotificationContent} spec.
|
|
10
|
+
*/
|
|
11
|
+
public interface NotificationBuilder {
|
|
12
|
+
/**
|
|
13
|
+
* Pass in a {@link Notification} based on which the Android notification should be based.
|
|
14
|
+
*
|
|
15
|
+
* @param notification {@link Notification} on which the notification should be based.
|
|
16
|
+
* @return The same instance of {@link NotificationBuilder} updated with the notification.
|
|
17
|
+
*/
|
|
18
|
+
NotificationBuilder setNotification(Notification notification);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Pass in a {@link NotificationBehavior} if you want to override the behavior
|
|
22
|
+
* of the notification, i.e. whether it should show a heads-up alert, set badge, etc.
|
|
23
|
+
*
|
|
24
|
+
* @param behavior {@link NotificationBehavior} to which the presentation effect should conform.
|
|
25
|
+
* @return The same instance of {@link NotificationBuilder} updated with the remote message.
|
|
26
|
+
*/
|
|
27
|
+
NotificationBuilder setAllowedBehavior(NotificationBehavior behavior);
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Builds the Android notification based on passed in data.
|
|
31
|
+
*
|
|
32
|
+
* @return Built notification.
|
|
33
|
+
*/
|
|
34
|
+
android.app.Notification build();
|
|
35
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.interfaces;
|
|
2
|
+
|
|
3
|
+
import com.google.firebase.messaging.FirebaseMessagingService;
|
|
4
|
+
|
|
5
|
+
import expo.modules.notifications.notifications.model.Notification;
|
|
6
|
+
import expo.modules.notifications.notifications.model.NotificationResponse;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Interface used to register in {@link NotificationManager}
|
|
10
|
+
* and be notified of new message events.
|
|
11
|
+
*/
|
|
12
|
+
public interface NotificationListener {
|
|
13
|
+
/**
|
|
14
|
+
* Callback called when new notification is received.
|
|
15
|
+
*
|
|
16
|
+
* @param notification Notification received
|
|
17
|
+
*/
|
|
18
|
+
default void onNotificationReceived(Notification notification) {
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Callback called when new notification response is received.
|
|
23
|
+
*
|
|
24
|
+
* @param response Notification response received
|
|
25
|
+
* @return Whether the notification response has been handled
|
|
26
|
+
*/
|
|
27
|
+
default boolean onNotificationResponseReceived(NotificationResponse response) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Callback called when some notifications are dropped.
|
|
33
|
+
* See {@link FirebaseMessagingService#onDeletedMessages()}
|
|
34
|
+
*/
|
|
35
|
+
default void onNotificationsDropped() {
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.interfaces;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Interface of a singleton module responsible
|
|
5
|
+
* for dispatching new remote message events to {@link NotificationListener}s.
|
|
6
|
+
*/
|
|
7
|
+
public interface NotificationManager {
|
|
8
|
+
/**
|
|
9
|
+
* Registers a {@link NotificationListener}.
|
|
10
|
+
*
|
|
11
|
+
* @param listener Listener to be notified of new message events.
|
|
12
|
+
*/
|
|
13
|
+
void addListener(NotificationListener listener);
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Unregisters a {@link NotificationListener}.
|
|
17
|
+
*
|
|
18
|
+
* @param listener Listener previously registered
|
|
19
|
+
* with {@link NotificationManager#addListener(NotificationListener)}.
|
|
20
|
+
*/
|
|
21
|
+
void removeListener(NotificationListener listener);
|
|
22
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.interfaces;
|
|
2
|
+
|
|
3
|
+
import android.app.Notification;
|
|
4
|
+
|
|
5
|
+
import androidx.annotation.Nullable;
|
|
6
|
+
|
|
7
|
+
public interface NotificationPresentationEffect {
|
|
8
|
+
boolean onNotificationPresented(@Nullable String tag, int id, Notification notification);
|
|
9
|
+
|
|
10
|
+
boolean onNotificationPresentationFailed(@Nullable String tag, int id, Notification notification);
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.interfaces;
|
|
2
|
+
|
|
3
|
+
public interface NotificationPresentationEffectsManager extends NotificationPresentationEffect {
|
|
4
|
+
void addEffect(NotificationPresentationEffect effector);
|
|
5
|
+
|
|
6
|
+
void removeEffect(NotificationPresentationEffect effector);
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.interfaces;
|
|
2
|
+
|
|
3
|
+
import android.os.Build;
|
|
4
|
+
import android.os.Parcelable;
|
|
5
|
+
|
|
6
|
+
import androidx.annotation.Nullable;
|
|
7
|
+
import androidx.annotation.RequiresApi;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* An interface specifying source of the notification, to be implemented
|
|
11
|
+
* by concrete classes.
|
|
12
|
+
*/
|
|
13
|
+
public interface NotificationTrigger extends Parcelable {
|
|
14
|
+
@Nullable
|
|
15
|
+
@RequiresApi(api = Build.VERSION_CODES.O)
|
|
16
|
+
default String getNotificationChannel() {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.interfaces;
|
|
2
|
+
|
|
3
|
+
import java.io.Serializable;
|
|
4
|
+
import java.util.Date;
|
|
5
|
+
|
|
6
|
+
import androidx.annotation.Nullable;
|
|
7
|
+
import expo.modules.notifications.service.delegates.SharedPreferencesNotificationsStore;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A notification trigger that is serializable - this ensures {@link SharedPreferencesNotificationsStore}
|
|
11
|
+
* is capable of storing it in the device's memory.
|
|
12
|
+
*/
|
|
13
|
+
public interface SchedulableNotificationTrigger extends NotificationTrigger, Serializable {
|
|
14
|
+
/**
|
|
15
|
+
* @return Next date at which the notification should be triggered. Returns `null`
|
|
16
|
+
* if the notification will not trigger in the future (it can be removed then).
|
|
17
|
+
*/
|
|
18
|
+
@Nullable
|
|
19
|
+
Date nextTriggerDate();
|
|
20
|
+
}
|
package/android/src/main/java/expo/modules/notifications/notifications/model/Notification.java
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.model;
|
|
2
|
+
|
|
3
|
+
import android.os.Parcel;
|
|
4
|
+
import android.os.Parcelable;
|
|
5
|
+
|
|
6
|
+
import java.util.Date;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A class representing a single notification received at a particular moment ({@link #mDate}).
|
|
10
|
+
*/
|
|
11
|
+
public class Notification implements Parcelable {
|
|
12
|
+
private NotificationRequest mRequest;
|
|
13
|
+
private Date mDate;
|
|
14
|
+
|
|
15
|
+
public Notification(NotificationRequest request) {
|
|
16
|
+
this(request, new Date());
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public Notification(NotificationRequest request, Date date) {
|
|
20
|
+
mRequest = request;
|
|
21
|
+
mDate = date;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
protected Notification(Parcel in) {
|
|
25
|
+
mRequest = in.readParcelable(getClass().getClassLoader());
|
|
26
|
+
mDate = new Date(in.readLong());
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public Date getDate() {
|
|
30
|
+
return mDate;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public NotificationRequest getNotificationRequest() {
|
|
34
|
+
return mRequest;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public static final Creator<Notification> CREATOR = new Creator<Notification>() {
|
|
38
|
+
@Override
|
|
39
|
+
public Notification createFromParcel(Parcel in) {
|
|
40
|
+
return new Notification(in);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@Override
|
|
44
|
+
public Notification[] newArray(int size) {
|
|
45
|
+
return new Notification[size];
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
@Override
|
|
50
|
+
public int describeContents() {
|
|
51
|
+
return 0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@Override
|
|
55
|
+
public void writeToParcel(Parcel dest, int flags) {
|
|
56
|
+
dest.writeParcelable(mRequest, 0);
|
|
57
|
+
dest.writeLong(mDate.getTime());
|
|
58
|
+
}
|
|
59
|
+
}
|
package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationAction.java
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
package expo.modules.notifications.notifications.model;
|
|
2
|
+
|
|
3
|
+
import android.os.Parcel;
|
|
4
|
+
import android.os.Parcelable;
|
|
5
|
+
|
|
6
|
+
import java.io.Serializable;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A class representing a single notification action button.
|
|
10
|
+
*/
|
|
11
|
+
public class NotificationAction implements Parcelable, Serializable {
|
|
12
|
+
private final String mIdentifier;
|
|
13
|
+
private final String mTitle;
|
|
14
|
+
private final boolean mOpensAppToForeground;
|
|
15
|
+
|
|
16
|
+
public NotificationAction(String identifier, String title, boolean opensAppToForeground) {
|
|
17
|
+
mIdentifier = identifier;
|
|
18
|
+
mTitle = title;
|
|
19
|
+
mOpensAppToForeground = opensAppToForeground;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
protected NotificationAction(Parcel in) {
|
|
23
|
+
mIdentifier = in.readString();
|
|
24
|
+
mTitle = in.readString();
|
|
25
|
+
mOpensAppToForeground = in.readByte() != 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@Override
|
|
29
|
+
public void writeToParcel(Parcel dest, int flags) {
|
|
30
|
+
dest.writeString(mIdentifier);
|
|
31
|
+
dest.writeString(mTitle);
|
|
32
|
+
dest.writeByte((byte) (mOpensAppToForeground ? 1 : 0));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@Override
|
|
36
|
+
public int describeContents() {
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public static final Creator<NotificationAction> CREATOR = new Creator<NotificationAction>() {
|
|
41
|
+
@Override
|
|
42
|
+
public NotificationAction createFromParcel(Parcel in) {
|
|
43
|
+
return new NotificationAction(in);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@Override
|
|
47
|
+
public NotificationAction[] newArray(int size) {
|
|
48
|
+
return new NotificationAction[size];
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
public String getIdentifier() {
|
|
53
|
+
return mIdentifier;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public String getTitle() {
|
|
57
|
+
return mTitle;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public boolean opensAppToForeground() {
|
|
61
|
+
return mOpensAppToForeground;
|
|
62
|
+
}
|
|
63
|
+
}
|