@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,109 @@
|
|
|
1
|
+
// Copyright 2018-present 650 Industries. All rights reserved.
|
|
2
|
+
|
|
3
|
+
#import <EXNotifications/EXNotificationsHandlerModule.h>
|
|
4
|
+
#import <EXNotifications/EXNotificationSerializer.h>
|
|
5
|
+
#import <EXNotifications/EXNotificationCenterDelegate.h>
|
|
6
|
+
|
|
7
|
+
#import <ExpoModulesCore/EXEventEmitterService.h>
|
|
8
|
+
|
|
9
|
+
@interface EXNotificationsHandlerModule ()
|
|
10
|
+
|
|
11
|
+
@property (nonatomic, weak) id<EXNotificationCenterDelegate> notificationCenterDelegate;
|
|
12
|
+
|
|
13
|
+
@property (nonatomic, assign) BOOL isListening;
|
|
14
|
+
@property (nonatomic, assign) BOOL isBeingObserved;
|
|
15
|
+
|
|
16
|
+
@property (nonatomic, weak) id<EXEventEmitterService> eventEmitter;
|
|
17
|
+
|
|
18
|
+
@property (nonatomic, strong) NSMutableDictionary<NSString *, EXSingleNotificationHandlerTask *> *tasksMap;
|
|
19
|
+
|
|
20
|
+
@end
|
|
21
|
+
|
|
22
|
+
@implementation EXNotificationsHandlerModule
|
|
23
|
+
|
|
24
|
+
EX_EXPORT_MODULE(ExpoNotificationsHandlerModule);
|
|
25
|
+
|
|
26
|
+
- (instancetype)init
|
|
27
|
+
{
|
|
28
|
+
if (self = [super init]) {
|
|
29
|
+
_tasksMap = [NSMutableDictionary dictionary];
|
|
30
|
+
}
|
|
31
|
+
return self;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
# pragma mark - Exported methods
|
|
35
|
+
|
|
36
|
+
EX_EXPORT_METHOD_AS(handleNotificationAsync,
|
|
37
|
+
handleNotificationAsync:(NSString *)identifier withBehavior:(NSDictionary *)behavior resolver:(EXPromiseResolveBlock)resolve rejecter:(EXPromiseRejectBlock)reject)
|
|
38
|
+
{
|
|
39
|
+
EXSingleNotificationHandlerTask *task = _tasksMap[identifier];
|
|
40
|
+
if (!task) {
|
|
41
|
+
NSString *message = [NSString stringWithFormat:@"Failed to handle notification %@, it has already been handled.", identifier];
|
|
42
|
+
return reject(@"ERR_NOTIFICATION_HANDLED", message, nil);
|
|
43
|
+
}
|
|
44
|
+
NSError *error = [task handleResponse:behavior];
|
|
45
|
+
if (error) {
|
|
46
|
+
return reject(error.userInfo[@"code"], error.userInfo[@"message"], error);
|
|
47
|
+
} else {
|
|
48
|
+
resolve(nil);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
# pragma mark - EXModuleRegistryConsumer
|
|
53
|
+
|
|
54
|
+
- (void)setModuleRegistry:(EXModuleRegistry *)moduleRegistry
|
|
55
|
+
{
|
|
56
|
+
_eventEmitter = [moduleRegistry getModuleImplementingProtocol:@protocol(EXEventEmitterService)];
|
|
57
|
+
_notificationCenterDelegate = [moduleRegistry getSingletonModuleForName:@"NotificationCenterDelegate"];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
# pragma mark - EXEventEmitter
|
|
61
|
+
|
|
62
|
+
- (NSArray<NSString *> *)supportedEvents
|
|
63
|
+
{
|
|
64
|
+
return [EXSingleNotificationHandlerTask eventNames];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
- (void)startObserving
|
|
68
|
+
{
|
|
69
|
+
[self setIsBeingObserved:YES];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
- (void)stopObserving
|
|
73
|
+
{
|
|
74
|
+
[self setIsBeingObserved:NO];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
- (void)setIsBeingObserved:(BOOL)isBeingObserved
|
|
78
|
+
{
|
|
79
|
+
_isBeingObserved = isBeingObserved;
|
|
80
|
+
BOOL shouldListen = _isBeingObserved;
|
|
81
|
+
if (shouldListen && !_isListening) {
|
|
82
|
+
[_notificationCenterDelegate addDelegate:self];
|
|
83
|
+
_isListening = YES;
|
|
84
|
+
} else if (!shouldListen && _isListening) {
|
|
85
|
+
[_notificationCenterDelegate removeDelegate:self];
|
|
86
|
+
_isListening = NO;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
# pragma mark - EXNotificationsDelegate
|
|
91
|
+
|
|
92
|
+
- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler
|
|
93
|
+
{
|
|
94
|
+
EXSingleNotificationHandlerTask *task = [[EXSingleNotificationHandlerTask alloc] initWithEventEmitter:_eventEmitter
|
|
95
|
+
notification:notification
|
|
96
|
+
completionHandler:completionHandler
|
|
97
|
+
delegate:self];
|
|
98
|
+
[_tasksMap setObject:task forKey:task.identifier];
|
|
99
|
+
[task start];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
# pragma mark - EXSingleNotificationHandlerTaskDelegate
|
|
103
|
+
|
|
104
|
+
- (void)taskDidFinish:(EXSingleNotificationHandlerTask *)task
|
|
105
|
+
{
|
|
106
|
+
[_tasksMap removeObjectForKey:task.identifier];
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Copyright 2018-present 650 Industries. All rights reserved.
|
|
2
|
+
|
|
3
|
+
#import <Foundation/Foundation.h>
|
|
4
|
+
#import <ExpoModulesCore/EXEventEmitterService.h>
|
|
5
|
+
#import <UserNotifications/UserNotifications.h>
|
|
6
|
+
|
|
7
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
8
|
+
|
|
9
|
+
@class EXSingleNotificationHandlerTask;
|
|
10
|
+
|
|
11
|
+
@protocol EXSingleNotificationHandlerTaskDelegate
|
|
12
|
+
|
|
13
|
+
- (void)taskDidFinish:(EXSingleNotificationHandlerTask *)task;
|
|
14
|
+
|
|
15
|
+
@end
|
|
16
|
+
|
|
17
|
+
@interface EXSingleNotificationHandlerTask : NSObject
|
|
18
|
+
|
|
19
|
+
+ (NSArray<NSString *> *)eventNames;
|
|
20
|
+
|
|
21
|
+
- (instancetype)initWithEventEmitter:(id<EXEventEmitterService>)eventEmitter
|
|
22
|
+
notification:(UNNotification *)notification
|
|
23
|
+
completionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler
|
|
24
|
+
delegate:(id<EXSingleNotificationHandlerTaskDelegate>)delegate;
|
|
25
|
+
|
|
26
|
+
- (NSString *)identifier;
|
|
27
|
+
|
|
28
|
+
- (void)start;
|
|
29
|
+
- (nullable NSError *)handleResponse:(NSDictionary *)response;
|
|
30
|
+
|
|
31
|
+
@end
|
|
32
|
+
|
|
33
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// Copyright 2018-present 650 Industries. All rights reserved.
|
|
2
|
+
|
|
3
|
+
#import <EXNotifications/EXSingleNotificationHandlerTask.h>
|
|
4
|
+
#import <EXNotifications/EXNotificationSerializer.h>
|
|
5
|
+
|
|
6
|
+
static NSString * const onHandleNotification = @"onHandleNotification";
|
|
7
|
+
static NSString * const onHandleNotificationTimeout = @"onHandleNotificationTimeout";
|
|
8
|
+
|
|
9
|
+
static NSString * const shouldShowAlertKey = @"shouldShowAlert";
|
|
10
|
+
static NSString * const shouldPlaySoundKey = @"shouldPlaySound";
|
|
11
|
+
static NSString * const shouldSetBadgeKey = @"shouldSetBadge";
|
|
12
|
+
|
|
13
|
+
static NSTimeInterval const secondsToTimeout = 3;
|
|
14
|
+
|
|
15
|
+
static NSString * const EXNotificationHandlerErrorDomain = @"expo.notifications.handler";
|
|
16
|
+
|
|
17
|
+
@interface EXSingleNotificationHandlerTask ()
|
|
18
|
+
|
|
19
|
+
@property (nonatomic, weak) id<EXEventEmitterService> eventEmitter;
|
|
20
|
+
@property (nonatomic, strong) UNNotification *notification;
|
|
21
|
+
@property (nonatomic, copy) void (^completionHandler)(UNNotificationPresentationOptions);
|
|
22
|
+
|
|
23
|
+
@property (nonatomic, weak) id<EXSingleNotificationHandlerTaskDelegate> delegate;
|
|
24
|
+
|
|
25
|
+
@property (nonatomic, strong) NSTimer *timer;
|
|
26
|
+
|
|
27
|
+
@end
|
|
28
|
+
|
|
29
|
+
@implementation EXSingleNotificationHandlerTask
|
|
30
|
+
|
|
31
|
+
+ (NSArray<NSString *> *)eventNames
|
|
32
|
+
{
|
|
33
|
+
return @[onHandleNotification, onHandleNotificationTimeout];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
- (instancetype)initWithEventEmitter:(id<EXEventEmitterService>)eventEmitter
|
|
37
|
+
notification:(UNNotification *)notification
|
|
38
|
+
completionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler
|
|
39
|
+
delegate:(nonnull id<EXSingleNotificationHandlerTaskDelegate>)delegate
|
|
40
|
+
{
|
|
41
|
+
if (self = [super init]) {
|
|
42
|
+
_eventEmitter = eventEmitter;
|
|
43
|
+
_notification = notification;
|
|
44
|
+
_completionHandler = completionHandler;
|
|
45
|
+
_delegate = delegate;
|
|
46
|
+
}
|
|
47
|
+
return self;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
- (NSString *)identifier
|
|
51
|
+
{
|
|
52
|
+
return _notification.request.identifier;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
- (void)start
|
|
56
|
+
{
|
|
57
|
+
[_eventEmitter sendEventWithName:onHandleNotification body:@{
|
|
58
|
+
@"id": _notification.request.identifier,
|
|
59
|
+
@"notification": [EXNotificationSerializer serializedNotification:_notification]
|
|
60
|
+
}];
|
|
61
|
+
_timer = [NSTimer scheduledTimerWithTimeInterval:secondsToTimeout target:self selector:@selector(handleTimeout) userInfo:nil repeats:NO];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
- (nullable NSError *)handleResponse:(NSDictionary *)response
|
|
65
|
+
{
|
|
66
|
+
@synchronized (self) {
|
|
67
|
+
NSError *maybeError = [self callCompletionHandlerWithOptions:[self presentationOptionsFromResponse:response]];
|
|
68
|
+
[self finish];
|
|
69
|
+
return maybeError;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
- (void)handleTimeout
|
|
74
|
+
{
|
|
75
|
+
@synchronized (self) {
|
|
76
|
+
[_eventEmitter sendEventWithName:onHandleNotificationTimeout body:@{
|
|
77
|
+
@"id": _notification.request.identifier,
|
|
78
|
+
@"notification": [EXNotificationSerializer serializedNotification:_notification]
|
|
79
|
+
}];
|
|
80
|
+
[self callCompletionHandlerWithOptions:UNNotificationPresentationOptionNone];
|
|
81
|
+
[self finish];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
- (nullable NSError *)callCompletionHandlerWithOptions:(UNNotificationPresentationOptions)options
|
|
86
|
+
{
|
|
87
|
+
if (_completionHandler) {
|
|
88
|
+
_completionHandler(options);
|
|
89
|
+
_completionHandler = nil;
|
|
90
|
+
return nil;
|
|
91
|
+
} else {
|
|
92
|
+
return [NSError errorWithDomain:EXNotificationHandlerErrorDomain code:-1 userInfo:@{
|
|
93
|
+
@"code": @"ERR_NOTIFICATION_RESPONSE_TIMEOUT",
|
|
94
|
+
@"message": @"Notification has already been handled. Most probably the request has timed out."
|
|
95
|
+
}];
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
- (void)finish
|
|
100
|
+
{
|
|
101
|
+
[_timer invalidate];
|
|
102
|
+
_timer = nil;
|
|
103
|
+
[_delegate taskDidFinish:self];
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
- (UNNotificationPresentationOptions)presentationOptionsFromResponse:(NSDictionary *)response
|
|
107
|
+
{
|
|
108
|
+
UNNotificationPresentationOptions options = UNNotificationPresentationOptionNone;
|
|
109
|
+
|
|
110
|
+
// TODO(iOS 14): use UNNotificationPresentationOptionList and UNNotificationPresentationOptionBanner
|
|
111
|
+
if ([response[shouldShowAlertKey] boolValue]) {
|
|
112
|
+
options |= UNNotificationPresentationOptionAlert;
|
|
113
|
+
}
|
|
114
|
+
if ([response[shouldPlaySoundKey] boolValue]) {
|
|
115
|
+
options |= UNNotificationPresentationOptionSound;
|
|
116
|
+
}
|
|
117
|
+
if ([response[shouldSetBadgeKey] boolValue]) {
|
|
118
|
+
options |= UNNotificationPresentationOptionBadge;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return options;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#import <EXNotifications/NSDictionary+EXNotificationsVerifyingClass.h>
|
|
2
|
+
|
|
3
|
+
static NSString * const invalidValueExceptionName = @"Value of invalid class encountered";
|
|
4
|
+
static NSString * const invalidValueClassReasonFormat = @"Value under key `%@` is of class %@, while %@ was expected.";
|
|
5
|
+
|
|
6
|
+
@implementation NSDictionary (EXNotificationsVerifyingClass)
|
|
7
|
+
|
|
8
|
+
- (id)objectForKey:(id)aKey verifyingClass:(__unsafe_unretained Class)klass
|
|
9
|
+
{
|
|
10
|
+
id obj = [self objectForKey:aKey];
|
|
11
|
+
if (!obj || [obj isKindOfClass:klass]) {
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
NSString *reason = [NSString stringWithFormat:invalidValueClassReasonFormat, aKey, NSStringFromClass([obj class]), NSStringFromClass(klass)];
|
|
16
|
+
@throw [NSException exceptionWithName:invalidValueExceptionName reason:reason userInfo:nil];
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Copyright 2018-present 650 Industries. All rights reserved.
|
|
2
|
+
|
|
3
|
+
#import <ExpoModulesCore/EXExportedModule.h>
|
|
4
|
+
#import <ExpoModulesCore/EXModuleRegistryConsumer.h>
|
|
5
|
+
#import <EXNotifications/EXNotificationsDelegate.h>
|
|
6
|
+
|
|
7
|
+
@interface EXNotificationPresentationModule : EXExportedModule <EXModuleRegistryConsumer, EXNotificationsDelegate>
|
|
8
|
+
|
|
9
|
+
- (NSArray * _Nonnull)serializeNotifications:(NSArray<UNNotification *> * _Nonnull)notifications;
|
|
10
|
+
|
|
11
|
+
- (void)dismissNotificationWithIdentifier:(NSString *)identifier resolve:(EXPromiseResolveBlock)resolve reject:(EXPromiseRejectBlock)reject;
|
|
12
|
+
|
|
13
|
+
@end
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// Copyright 2018-present 650 Industries. All rights reserved.
|
|
2
|
+
|
|
3
|
+
#import <EXNotifications/EXNotificationPresentationModule.h>
|
|
4
|
+
|
|
5
|
+
#import <EXNotifications/EXNotificationBuilder.h>
|
|
6
|
+
#import <EXNotifications/EXNotificationSerializer.h>
|
|
7
|
+
#import <EXNotifications/EXNotificationCenterDelegate.h>
|
|
8
|
+
|
|
9
|
+
@interface EXNotificationPresentationModule ()
|
|
10
|
+
|
|
11
|
+
@property (nonatomic, weak) id<EXNotificationBuilder> notificationBuilder;
|
|
12
|
+
|
|
13
|
+
// Remove once presentNotificationAsync is removed
|
|
14
|
+
@property (nonatomic, strong) NSCountedSet<NSString *> *presentedNotifications;
|
|
15
|
+
@property (nonatomic, weak) id<EXNotificationCenterDelegate> notificationCenterDelegate;
|
|
16
|
+
|
|
17
|
+
@end
|
|
18
|
+
|
|
19
|
+
@implementation EXNotificationPresentationModule
|
|
20
|
+
|
|
21
|
+
EX_EXPORT_MODULE(ExpoNotificationPresenter);
|
|
22
|
+
|
|
23
|
+
// Remove once presentNotificationAsync is removed
|
|
24
|
+
- (instancetype)init
|
|
25
|
+
{
|
|
26
|
+
if (self = [super init]) {
|
|
27
|
+
_presentedNotifications = [NSCountedSet set];
|
|
28
|
+
}
|
|
29
|
+
return self;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# pragma mark - Exported methods
|
|
33
|
+
|
|
34
|
+
// Remove once presentNotificationAsync is removed
|
|
35
|
+
EX_EXPORT_METHOD_AS(presentNotificationAsync,
|
|
36
|
+
presentNotificationWithIdentifier:(NSString *)identifier
|
|
37
|
+
notification:(NSDictionary *)notificationSpec
|
|
38
|
+
resolve:(EXPromiseResolveBlock)resolve
|
|
39
|
+
reject:(EXPromiseRejectBlock)reject)
|
|
40
|
+
{
|
|
41
|
+
UNNotificationContent *content = [_notificationBuilder notificationContentFromRequest:notificationSpec];
|
|
42
|
+
UNNotificationTrigger *trigger = nil;
|
|
43
|
+
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier content:content trigger:trigger];
|
|
44
|
+
[_presentedNotifications addObject:identifier];
|
|
45
|
+
__weak EXNotificationPresentationModule *weakSelf = self;
|
|
46
|
+
[[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
|
|
47
|
+
if (error) {
|
|
48
|
+
// If there was no error, willPresentNotification: callback will remove the identifier from the set
|
|
49
|
+
[weakSelf.presentedNotifications removeObject:identifier];
|
|
50
|
+
NSString *message = [NSString stringWithFormat:@"Notification could not have been presented: %@", error.description];
|
|
51
|
+
reject(@"ERR_NOTIF_PRESENT", message, error);
|
|
52
|
+
} else {
|
|
53
|
+
resolve(identifier);
|
|
54
|
+
}
|
|
55
|
+
}];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
EX_EXPORT_METHOD_AS(getPresentedNotificationsAsync,
|
|
59
|
+
getPresentedNotificationsAsyncWithResolve:(EXPromiseResolveBlock)resolve
|
|
60
|
+
reject:(EXPromiseRejectBlock)reject)
|
|
61
|
+
{
|
|
62
|
+
[[UNUserNotificationCenter currentNotificationCenter] getDeliveredNotificationsWithCompletionHandler:^(NSArray<UNNotification *> * _Nonnull notifications) {
|
|
63
|
+
resolve([self serializeNotifications:notifications]);
|
|
64
|
+
}];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
EX_EXPORT_METHOD_AS(dismissNotificationAsync,
|
|
69
|
+
dismissNotificationWithIdentifier:(NSString *)identifier
|
|
70
|
+
resolve:(EXPromiseResolveBlock)resolve
|
|
71
|
+
reject:(EXPromiseRejectBlock)reject)
|
|
72
|
+
{
|
|
73
|
+
[[UNUserNotificationCenter currentNotificationCenter] removeDeliveredNotificationsWithIdentifiers:@[identifier]];
|
|
74
|
+
resolve(nil);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
EX_EXPORT_METHOD_AS(dismissAllNotificationsAsync,
|
|
78
|
+
dismissAllNotificationsWithResolver:(EXPromiseResolveBlock)resolve
|
|
79
|
+
reject:(EXPromiseRejectBlock)reject)
|
|
80
|
+
{
|
|
81
|
+
[[UNUserNotificationCenter currentNotificationCenter] removeAllDeliveredNotifications];
|
|
82
|
+
resolve(nil);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
# pragma mark - EXModuleRegistryConsumer
|
|
86
|
+
|
|
87
|
+
- (void)setModuleRegistry:(EXModuleRegistry *)moduleRegistry
|
|
88
|
+
{
|
|
89
|
+
_notificationBuilder = [moduleRegistry getModuleImplementingProtocol:@protocol(EXNotificationBuilder)];
|
|
90
|
+
|
|
91
|
+
// Remove once presentNotificationAsync is removed
|
|
92
|
+
id<EXNotificationCenterDelegate> notificationCenterDelegate = (id<EXNotificationCenterDelegate>)[moduleRegistry getSingletonModuleForName:@"NotificationCenterDelegate"];
|
|
93
|
+
[notificationCenterDelegate addDelegate:self];
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Remove once presentNotificationAsync is removed
|
|
97
|
+
# pragma mark - EXNotificationsDelegate
|
|
98
|
+
|
|
99
|
+
- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler
|
|
100
|
+
{
|
|
101
|
+
UNNotificationPresentationOptions presentationOptions = UNNotificationPresentationOptionNone;
|
|
102
|
+
|
|
103
|
+
NSString *identifier = notification.request.identifier;
|
|
104
|
+
if ([_presentedNotifications containsObject:identifier]) {
|
|
105
|
+
[_presentedNotifications removeObject:identifier];
|
|
106
|
+
// TODO(iOS 14): use UNNotificationPresentationOptionList and UNNotificationPresentationOptionBanner
|
|
107
|
+
presentationOptions = UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert | UNNotificationPresentationOptionBadge;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
completionHandler(presentationOptions);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
# pragma mark - Helpers
|
|
114
|
+
|
|
115
|
+
- (NSArray * _Nonnull)serializeNotifications:(NSArray<UNNotification *> * _Nonnull)notifications
|
|
116
|
+
{
|
|
117
|
+
NSMutableArray *serializedNotifications = [NSMutableArray new];
|
|
118
|
+
for (UNNotification *notification in notifications) {
|
|
119
|
+
[serializedNotifications addObject:[EXNotificationSerializer serializedNotification:notification]];
|
|
120
|
+
}
|
|
121
|
+
return serializedNotifications;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright 2018-present 650 Industries. All rights reserved.
|
|
2
|
+
|
|
3
|
+
#import <ExpoModulesCore/EXExportedModule.h>
|
|
4
|
+
#import <ExpoModulesCore/EXModuleRegistryConsumer.h>
|
|
5
|
+
#import <UserNotifications/UserNotifications.h>
|
|
6
|
+
|
|
7
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
8
|
+
|
|
9
|
+
@interface EXNotificationSchedulerModule : EXExportedModule <EXModuleRegistryConsumer>
|
|
10
|
+
|
|
11
|
+
- (NSArray * _Nonnull)serializeNotificationRequests:(NSArray<UNNotificationRequest *> * _Nonnull) requests;
|
|
12
|
+
|
|
13
|
+
- (void)cancelNotification:(NSString *)identifier resolve:(EXPromiseResolveBlock)resolve rejecting:(EXPromiseRejectBlock)reject;
|
|
14
|
+
|
|
15
|
+
- (void)cancelAllNotificationsWithResolver:(EXPromiseResolveBlock)resolve rejecting:(EXPromiseRejectBlock)reject;
|
|
16
|
+
|
|
17
|
+
- (UNNotificationRequest *)buildNotificationRequestWithIdentifier:(NSString *)identifier content:(NSDictionary *)contentInput trigger:(NSDictionary *)triggerInput;
|
|
18
|
+
|
|
19
|
+
@end
|
|
20
|
+
|
|
21
|
+
NS_ASSUME_NONNULL_END
|