@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,15 @@
|
|
|
1
|
+
import { requireNativeModule } from 'expo-modules-core';
|
|
2
|
+
|
|
3
|
+
import { BadgeModule } from './BadgeModule.types';
|
|
4
|
+
|
|
5
|
+
const nativeModule = requireNativeModule('ExpoBadgeModule');
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
...nativeModule,
|
|
9
|
+
// We overwrite setBadgeCountAsync to omit
|
|
10
|
+
// an obsolete options argument when calling
|
|
11
|
+
// the native function.
|
|
12
|
+
setBadgeCountAsync: async (badgeCount, options) => {
|
|
13
|
+
return await nativeModule.setBadgeCountAsync(badgeCount);
|
|
14
|
+
},
|
|
15
|
+
} as BadgeModule;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Options as BadginOptions } from 'badgin';
|
|
2
|
+
import { ProxyNativeModule } from 'expo-modules-core';
|
|
3
|
+
|
|
4
|
+
export type WebSetBadgeCountOptions = BadginOptions;
|
|
5
|
+
type SetBadgeCountOptions = WebSetBadgeCountOptions | undefined;
|
|
6
|
+
|
|
7
|
+
export interface BadgeModule extends ProxyNativeModule {
|
|
8
|
+
getBadgeCountAsync?: () => Promise<number>;
|
|
9
|
+
// @amznmod_react - Made options optional
|
|
10
|
+
setBadgeCountAsync?: (badgeCount: number, options?: SetBadgeCountOptions) => Promise<boolean>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BadgeModule } from './BadgeModule.types';
|
|
2
|
+
|
|
3
|
+
let lastSetBadgeCount = 0;
|
|
4
|
+
|
|
5
|
+
const badgeModule: BadgeModule = {
|
|
6
|
+
addListener: () => {},
|
|
7
|
+
removeListeners: () => {},
|
|
8
|
+
getBadgeCountAsync: async () => {
|
|
9
|
+
return lastSetBadgeCount;
|
|
10
|
+
},
|
|
11
|
+
setBadgeCountAsync: async (badgeCount, options) => {
|
|
12
|
+
// If this module is loaded in SSR (NextJS), we can't modify the badge.
|
|
13
|
+
// It also can't load the badgin module, that instantly invokes methods on window.
|
|
14
|
+
if (typeof window === 'undefined') {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const badgin = require('badgin');
|
|
18
|
+
if (badgeCount > 0) {
|
|
19
|
+
badgin.set(badgeCount, options);
|
|
20
|
+
} else {
|
|
21
|
+
badgin.clear();
|
|
22
|
+
}
|
|
23
|
+
lastSetBadgeCount = badgeCount;
|
|
24
|
+
return true;
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export default badgeModule;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import 'abort-controller/polyfill';
|
|
2
|
+
import { UnavailabilityError } from 'expo-modules-core';
|
|
3
|
+
|
|
4
|
+
import ServerRegistrationModule from './ServerRegistrationModule';
|
|
5
|
+
import { addPushTokenListener } from './TokenEmitter';
|
|
6
|
+
import { DevicePushToken } from './Tokens.types';
|
|
7
|
+
import getDevicePushTokenAsync from './getDevicePushTokenAsync';
|
|
8
|
+
import { updateDevicePushTokenAsync as updateDevicePushTokenAsyncWithSignal } from './utils/updateDevicePushTokenAsync';
|
|
9
|
+
|
|
10
|
+
let lastAbortController: AbortController | null = null;
|
|
11
|
+
async function updatePushTokenAsync(token: DevicePushToken) {
|
|
12
|
+
// Abort current update process
|
|
13
|
+
lastAbortController?.abort();
|
|
14
|
+
lastAbortController = new AbortController();
|
|
15
|
+
return await updateDevicePushTokenAsyncWithSignal(lastAbortController.signal, token);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Encapsulates device server registration data
|
|
20
|
+
*/
|
|
21
|
+
export type DevicePushTokenRegistration = {
|
|
22
|
+
isEnabled: boolean;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Sets the registration information so that the device push token gets pushed
|
|
27
|
+
* to the given registration endpoint
|
|
28
|
+
* @param enabled
|
|
29
|
+
*/
|
|
30
|
+
export async function setAutoServerRegistrationEnabledAsync(enabled: boolean) {
|
|
31
|
+
// We are overwriting registration, so we shouldn't let
|
|
32
|
+
// any pending request complete.
|
|
33
|
+
lastAbortController?.abort();
|
|
34
|
+
|
|
35
|
+
if (!ServerRegistrationModule.setRegistrationInfoAsync) {
|
|
36
|
+
throw new UnavailabilityError('ServerRegistrationModule', 'setRegistrationInfoAsync');
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
await ServerRegistrationModule.setRegistrationInfoAsync(
|
|
40
|
+
enabled ? JSON.stringify({ isEnabled: enabled }) : null
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// note(Chmiela): This function is exported only for testing purposes.
|
|
45
|
+
export async function __handlePersistedRegistrationInfoAsync(
|
|
46
|
+
registrationInfo: string | null | undefined
|
|
47
|
+
) {
|
|
48
|
+
if (!registrationInfo) {
|
|
49
|
+
// No registration info, nothing to do
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
let registration: DevicePushTokenRegistration | null = null;
|
|
54
|
+
try {
|
|
55
|
+
registration = JSON.parse(registrationInfo);
|
|
56
|
+
} catch (e) {
|
|
57
|
+
console.warn(
|
|
58
|
+
'[expo-notifications] Error encountered while fetching registration information for auto token updates.',
|
|
59
|
+
e
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (!registration?.isEnabled) {
|
|
64
|
+
// Registration is invalid or not enabled, nothing more to do
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
try {
|
|
69
|
+
// Since the registration is enabled, fetching a "new" device token
|
|
70
|
+
// shouldn't be a problem.
|
|
71
|
+
const latestDevicePushToken = await getDevicePushTokenAsync();
|
|
72
|
+
await updatePushTokenAsync(latestDevicePushToken);
|
|
73
|
+
} catch (e) {
|
|
74
|
+
console.warn(
|
|
75
|
+
'[expo-notifications] Error encountered while updating server registration with latest device push token.',
|
|
76
|
+
e
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (ServerRegistrationModule.getRegistrationInfoAsync) {
|
|
82
|
+
// A global scope (to get all the updates) device push token
|
|
83
|
+
// subscription, never cleared.
|
|
84
|
+
addPushTokenListener(async (token) => {
|
|
85
|
+
try {
|
|
86
|
+
// Before updating the push token on server we always check if we should
|
|
87
|
+
// Since modules can't change their method availability while running, we
|
|
88
|
+
// can assert it's defined.
|
|
89
|
+
const registrationInfo = await ServerRegistrationModule.getRegistrationInfoAsync!();
|
|
90
|
+
|
|
91
|
+
if (!registrationInfo) {
|
|
92
|
+
// Registration is not enabled
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const registration: DevicePushTokenRegistration | null = JSON.parse(registrationInfo);
|
|
97
|
+
if (registration?.isEnabled) {
|
|
98
|
+
// Dispatch an abortable task to update
|
|
99
|
+
// registration with new token.
|
|
100
|
+
await updatePushTokenAsync(token);
|
|
101
|
+
}
|
|
102
|
+
} catch (e) {
|
|
103
|
+
console.warn(
|
|
104
|
+
'[expo-notifications] Error encountered while updating server registration with latest device push token.',
|
|
105
|
+
e
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
// Verify if persisted registration
|
|
111
|
+
// has successfully uploaded last known
|
|
112
|
+
// device push token. If not, retry.
|
|
113
|
+
ServerRegistrationModule.getRegistrationInfoAsync().then(__handlePersistedRegistrationInfoAsync);
|
|
114
|
+
} else {
|
|
115
|
+
console.warn(
|
|
116
|
+
`[expo-notifications] Error encountered while fetching auto-registration state, new tokens will not be automatically registered on server.`,
|
|
117
|
+
new UnavailabilityError('ServerRegistrationModule', 'getRegistrationInfoAsync')
|
|
118
|
+
);
|
|
119
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* PROPRIETARY/CONFIDENTIAL
|
|
5
|
+
*
|
|
6
|
+
* Use is subject to license terms.
|
|
7
|
+
*/
|
|
8
|
+
import { default as NotificationCategoriesModule } from './NotificationCategoriesModule.web';
|
|
9
|
+
|
|
10
|
+
export default NotificationCategoriesModule;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NotificationCategoriesModule } from './NotificationCategoriesModule.types';
|
|
2
|
+
import { NotificationCategory } from './Notifications.types';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
addListener: () => {},
|
|
6
|
+
removeListeners: () => {},
|
|
7
|
+
getNotificationCategoriesAsync: async (): Promise<NotificationCategory[]> => [],
|
|
8
|
+
setNotificationCategoryAsync: async (): Promise<NotificationCategory> => {
|
|
9
|
+
return {
|
|
10
|
+
identifier: 'NOT_IMPLEMENTED',
|
|
11
|
+
actions: [{ identifier: 'NOT_IMPLEMENTED', buttonTitle: 'NOT_IMPLEMENTED' }],
|
|
12
|
+
};
|
|
13
|
+
},
|
|
14
|
+
deleteNotificationCategoryAsync: async () => false,
|
|
15
|
+
} as NotificationCategoriesModule;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ProxyNativeModule } from 'expo-modules-core';
|
|
2
|
+
|
|
3
|
+
import { NotificationCategory, NotificationAction } from './Notifications.types';
|
|
4
|
+
|
|
5
|
+
export interface NotificationCategoriesModule extends ProxyNativeModule {
|
|
6
|
+
getNotificationCategoriesAsync: () => Promise<NotificationCategory[]>;
|
|
7
|
+
setNotificationCategoryAsync: (
|
|
8
|
+
identifier: string,
|
|
9
|
+
actions: NotificationAction[],
|
|
10
|
+
options?: {
|
|
11
|
+
previewPlaceholder?: string;
|
|
12
|
+
intentIdentifiers?: string[];
|
|
13
|
+
categorySummaryFormat?: string;
|
|
14
|
+
customDismissAction?: boolean;
|
|
15
|
+
allowInCarPlay?: boolean;
|
|
16
|
+
showTitle?: boolean;
|
|
17
|
+
showSubtitle?: boolean;
|
|
18
|
+
allowAnnouncement?: boolean;
|
|
19
|
+
}
|
|
20
|
+
) => Promise<NotificationCategory>;
|
|
21
|
+
deleteNotificationCategoryAsync: (identifier: string) => Promise<boolean>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NotificationAction } from './Notifications.types';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
async getNotificationCategoriesAsync(): Promise<null> {
|
|
5
|
+
return null;
|
|
6
|
+
},
|
|
7
|
+
async setNotificationCategoryAsync(
|
|
8
|
+
identifier: string,
|
|
9
|
+
actions: NotificationAction[],
|
|
10
|
+
options?: object
|
|
11
|
+
): Promise<null> {
|
|
12
|
+
return null;
|
|
13
|
+
},
|
|
14
|
+
async deleteNotificationCategoryAsync(identifier: string): Promise<null> {
|
|
15
|
+
return null;
|
|
16
|
+
},
|
|
17
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { requireNativeModule } from 'expo-modules-core';
|
|
2
|
+
|
|
3
|
+
import { NotificationChannelGroupManager } from './NotificationChannelGroupManager.types';
|
|
4
|
+
|
|
5
|
+
export default requireNativeModule<NotificationChannelGroupManager>(
|
|
6
|
+
'ExpoNotificationChannelGroupManager'
|
|
7
|
+
);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ProxyNativeModule } from 'expo-modules-core';
|
|
2
|
+
|
|
3
|
+
import { NotificationChannel } from './NotificationChannelManager.types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* An object represents a notification channel group.
|
|
7
|
+
* @platform android
|
|
8
|
+
*/
|
|
9
|
+
export interface NotificationChannelGroup {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string | null;
|
|
12
|
+
description?: string | null;
|
|
13
|
+
isBlocked?: boolean;
|
|
14
|
+
channels: NotificationChannel[];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* An object represents a notification channel group to be set.
|
|
19
|
+
* @platform android
|
|
20
|
+
*/
|
|
21
|
+
export interface NotificationChannelGroupInput {
|
|
22
|
+
name: string | null;
|
|
23
|
+
description?: string | null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface NotificationChannelGroupManager extends ProxyNativeModule {
|
|
27
|
+
getNotificationChannelGroupsAsync?: () => Promise<NotificationChannelGroup[]>;
|
|
28
|
+
getNotificationChannelGroupAsync?: (groupId: string) => Promise<NotificationChannelGroup | null>;
|
|
29
|
+
setNotificationChannelGroupAsync?: (
|
|
30
|
+
groupId: string,
|
|
31
|
+
group: NotificationChannelGroupInput
|
|
32
|
+
) => Promise<NotificationChannelGroup | null>;
|
|
33
|
+
deleteNotificationChannelGroupAsync?: (groupId: string) => Promise<void>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { ProxyNativeModule } from 'expo-modules-core';
|
|
2
|
+
|
|
3
|
+
// @docsMissing
|
|
4
|
+
export enum AndroidNotificationVisibility {
|
|
5
|
+
UNKNOWN = 0,
|
|
6
|
+
PUBLIC = 1,
|
|
7
|
+
PRIVATE = 2,
|
|
8
|
+
SECRET = 3,
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// @docsMissing
|
|
12
|
+
export enum AndroidAudioContentType {
|
|
13
|
+
UNKNOWN = 0,
|
|
14
|
+
SPEECH = 1,
|
|
15
|
+
MUSIC = 2,
|
|
16
|
+
MOVIE = 3,
|
|
17
|
+
SONIFICATION = 4,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// @docsMissing
|
|
21
|
+
export enum AndroidImportance {
|
|
22
|
+
UNKNOWN = 0,
|
|
23
|
+
UNSPECIFIED = 1,
|
|
24
|
+
NONE = 2,
|
|
25
|
+
MIN = 3,
|
|
26
|
+
LOW = 4,
|
|
27
|
+
DEFAULT = 5,
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated Use `DEFAULT` instead.
|
|
30
|
+
*/
|
|
31
|
+
DEEFAULT = 5,
|
|
32
|
+
HIGH = 6,
|
|
33
|
+
MAX = 7,
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// @docsMissing
|
|
37
|
+
export enum AndroidAudioUsage {
|
|
38
|
+
UNKNOWN = 0,
|
|
39
|
+
MEDIA = 1,
|
|
40
|
+
VOICE_COMMUNICATION = 2,
|
|
41
|
+
VOICE_COMMUNICATION_SIGNALLING = 3,
|
|
42
|
+
ALARM = 4,
|
|
43
|
+
NOTIFICATION = 5,
|
|
44
|
+
NOTIFICATION_RINGTONE = 6,
|
|
45
|
+
NOTIFICATION_COMMUNICATION_REQUEST = 7,
|
|
46
|
+
NOTIFICATION_COMMUNICATION_INSTANT = 8,
|
|
47
|
+
NOTIFICATION_COMMUNICATION_DELAYED = 9,
|
|
48
|
+
NOTIFICATION_EVENT = 10,
|
|
49
|
+
ASSISTANCE_ACCESSIBILITY = 11,
|
|
50
|
+
ASSISTANCE_NAVIGATION_GUIDANCE = 12,
|
|
51
|
+
ASSISTANCE_SONIFICATION = 13,
|
|
52
|
+
GAME = 14,
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// @docsMissing
|
|
56
|
+
export interface AudioAttributes {
|
|
57
|
+
usage: AndroidAudioUsage;
|
|
58
|
+
contentType: AndroidAudioContentType;
|
|
59
|
+
flags: {
|
|
60
|
+
enforceAudibility: boolean;
|
|
61
|
+
requestHardwareAudioVideoSynchronization: boolean;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// We're making inner flags required to set intentionally.
|
|
66
|
+
// Not providing `true` for a flag makes it false, it doesn't make sense
|
|
67
|
+
// to let it be left undefined.
|
|
68
|
+
export type AudioAttributesInput = Partial<AudioAttributes>;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* An object represents a notification channel.
|
|
72
|
+
* @platform android
|
|
73
|
+
*/
|
|
74
|
+
export interface NotificationChannel {
|
|
75
|
+
id: string;
|
|
76
|
+
name: string | null;
|
|
77
|
+
importance: AndroidImportance;
|
|
78
|
+
bypassDnd: boolean;
|
|
79
|
+
description: string | null;
|
|
80
|
+
groupId?: string | null;
|
|
81
|
+
lightColor: string;
|
|
82
|
+
lockscreenVisibility: AndroidNotificationVisibility;
|
|
83
|
+
showBadge: boolean;
|
|
84
|
+
sound: 'default' | 'custom' | null;
|
|
85
|
+
audioAttributes: AudioAttributes;
|
|
86
|
+
vibrationPattern: number[] | null;
|
|
87
|
+
enableLights: boolean;
|
|
88
|
+
enableVibrate: boolean;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
type RequiredBy<T, K extends keyof T> = Partial<Omit<T, K>> & Required<Pick<T, K>>;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* An object represents a notification channel to be set.
|
|
95
|
+
* @platform android
|
|
96
|
+
*/
|
|
97
|
+
export type NotificationChannelInput = RequiredBy<
|
|
98
|
+
Omit<
|
|
99
|
+
NotificationChannel,
|
|
100
|
+
| 'id' // id is handled separately as a function argument
|
|
101
|
+
| 'audioAttributes' // need to make it AudioAttributesInput
|
|
102
|
+
| 'sound'
|
|
103
|
+
> & { audioAttributes?: AudioAttributesInput; sound?: string | null },
|
|
104
|
+
'name' | 'importance'
|
|
105
|
+
>;
|
|
106
|
+
|
|
107
|
+
export interface NotificationChannelManager extends ProxyNativeModule {
|
|
108
|
+
getNotificationChannelsAsync?: () => Promise<NotificationChannel[] | null>;
|
|
109
|
+
getNotificationChannelAsync?: (channelId: string) => Promise<NotificationChannel | null>;
|
|
110
|
+
setNotificationChannelAsync?: (
|
|
111
|
+
channelId: string,
|
|
112
|
+
channelConfiguration: NotificationChannelInput
|
|
113
|
+
) => Promise<NotificationChannel | null>;
|
|
114
|
+
deleteNotificationChannelAsync?: (channelId: string) => Promise<void>;
|
|
115
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { createPermissionHook, Platform, UnavailabilityError } from 'expo-modules-core';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
NotificationPermissionsRequest,
|
|
5
|
+
NotificationPermissionsStatus,
|
|
6
|
+
} from './NotificationPermissions.types';
|
|
7
|
+
import NotificationPermissionsModule from './NotificationPermissionsModule';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Calling this function checks current permissions settings related to notifications.
|
|
11
|
+
* It lets you verify whether the app is currently allowed to display alerts, play sounds, etc.
|
|
12
|
+
* There is no user-facing effect of calling this.
|
|
13
|
+
* @return It returns a `Promise` resolving to an object represents permission settings ([`NotificationPermissionsStatus`](#notificationpermissionsstatus)).
|
|
14
|
+
* On iOS, make sure you [properly interpret the permissions response](#interpret-the-ios-permissions-response).
|
|
15
|
+
* @example Check if the app is allowed to send any type of notifications (interrupting and non-interrupting–provisional on iOS).
|
|
16
|
+
* ```ts
|
|
17
|
+
* import * as Notifications from '@amazon-devices/expo-notifications';
|
|
18
|
+
*
|
|
19
|
+
* export async function allowsNotificationsAsync() {
|
|
20
|
+
* const settings = await Notifications.getPermissionsAsync();
|
|
21
|
+
* return (
|
|
22
|
+
* settings.granted || settings.ios?.status === Notifications.IosAuthorizationStatus.PROVISIONAL
|
|
23
|
+
* );
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
* @header permissions
|
|
27
|
+
*/
|
|
28
|
+
export async function getPermissionsAsync() {
|
|
29
|
+
if (!NotificationPermissionsModule.getPermissionsAsync) {
|
|
30
|
+
throw new UnavailabilityError('Notifications', 'getPermissionsAsync');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return await NotificationPermissionsModule.getPermissionsAsync();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Prompts the user for notification permissions according to request. **Request defaults to asking the user to allow displaying alerts,
|
|
38
|
+
* setting badge count and playing sounds**.
|
|
39
|
+
* @param permissions An object representing configuration for the request scope.
|
|
40
|
+
* @return It returns a Promise resolving to an object represents permission settings ([`NotificationPermissionsStatus`](#notificationpermissionsstatus)).
|
|
41
|
+
* On iOS, make sure you [properly interpret the permissions response](#interpret-the-ios-permissions-response).
|
|
42
|
+
* @example Prompts the user to allow the app to show alerts, play sounds, set badge count and let Siri read out messages through AirPods.
|
|
43
|
+
* ```ts
|
|
44
|
+
* import * as Notifications from '@amazon-devices/expo-notifications';
|
|
45
|
+
*
|
|
46
|
+
* export function requestPermissionsAsync() {
|
|
47
|
+
* return await Notifications.requestPermissionsAsync({
|
|
48
|
+
* ios: {
|
|
49
|
+
* allowAlert: true,
|
|
50
|
+
* allowBadge: true,
|
|
51
|
+
* allowSound: true,
|
|
52
|
+
* allowAnnouncements: true,
|
|
53
|
+
* },
|
|
54
|
+
* });
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
57
|
+
* @header permissions
|
|
58
|
+
*/
|
|
59
|
+
export async function requestPermissionsAsync(permissions?: NotificationPermissionsRequest) {
|
|
60
|
+
if (!NotificationPermissionsModule.requestPermissionsAsync) {
|
|
61
|
+
throw new UnavailabilityError('Notifications', 'requestPermissionsAsync');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const requestedPermissions = permissions ?? {
|
|
65
|
+
ios: {
|
|
66
|
+
allowAlert: true,
|
|
67
|
+
allowBadge: true,
|
|
68
|
+
allowSound: true,
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
const requestedPlatformPermissions = requestedPermissions[Platform.OS];
|
|
72
|
+
return await NotificationPermissionsModule.requestPermissionsAsync(requestedPlatformPermissions);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// @needsAudit
|
|
76
|
+
/**
|
|
77
|
+
* Check or request permissions to send and receive push notifications.
|
|
78
|
+
* This uses both `requestPermissionsAsync` and `getPermissionsAsync` to interact with the permissions.
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* const [permissionResponse, requestPermission] = Notifications.usePermissions();
|
|
82
|
+
* ```
|
|
83
|
+
* @header permission
|
|
84
|
+
*/
|
|
85
|
+
export const usePermissions = createPermissionHook<
|
|
86
|
+
NotificationPermissionsStatus,
|
|
87
|
+
NotificationPermissionsRequest
|
|
88
|
+
>({
|
|
89
|
+
requestMethod: requestPermissionsAsync,
|
|
90
|
+
getMethod: getPermissionsAsync,
|
|
91
|
+
});
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { PermissionResponse, PermissionHookOptions } from 'expo-modules-core';
|
|
2
|
+
|
|
3
|
+
export enum IosAlertStyle {
|
|
4
|
+
NONE = 0,
|
|
5
|
+
BANNER = 1,
|
|
6
|
+
ALERT = 2,
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export enum IosAllowsPreviews {
|
|
10
|
+
NEVER = 0,
|
|
11
|
+
ALWAYS = 1,
|
|
12
|
+
WHEN_AUTHENTICATED = 2,
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export enum IosAuthorizationStatus {
|
|
16
|
+
NOT_DETERMINED = 0,
|
|
17
|
+
DENIED = 1,
|
|
18
|
+
AUTHORIZED = 2,
|
|
19
|
+
PROVISIONAL = 3,
|
|
20
|
+
EPHEMERAL = 4,
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { PermissionHookOptions };
|
|
24
|
+
|
|
25
|
+
// @docsMissing
|
|
26
|
+
export interface NotificationPermissionsStatus extends PermissionResponse {
|
|
27
|
+
android?: {
|
|
28
|
+
importance: number;
|
|
29
|
+
interruptionFilter?: number;
|
|
30
|
+
};
|
|
31
|
+
ios?: {
|
|
32
|
+
status: IosAuthorizationStatus;
|
|
33
|
+
allowsDisplayInNotificationCenter: boolean | null;
|
|
34
|
+
allowsDisplayOnLockScreen: boolean | null;
|
|
35
|
+
allowsDisplayInCarPlay: boolean | null;
|
|
36
|
+
allowsAlert: boolean | null;
|
|
37
|
+
allowsBadge: boolean | null;
|
|
38
|
+
allowsSound: boolean | null;
|
|
39
|
+
allowsCriticalAlerts?: boolean | null;
|
|
40
|
+
alertStyle: IosAlertStyle;
|
|
41
|
+
allowsPreviews?: IosAllowsPreviews;
|
|
42
|
+
providesAppNotificationSettings?: boolean;
|
|
43
|
+
allowsAnnouncements?: boolean | null;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Available configuration for permission request on iOS platform.
|
|
49
|
+
* See Apple documentation for [`UNAuthorizationOptions`](https://developer.apple.com/documentation/usernotifications/unauthorizationoptions) to learn more.
|
|
50
|
+
*/
|
|
51
|
+
export interface IosNotificationPermissionsRequest {
|
|
52
|
+
/**
|
|
53
|
+
* The ability to display alerts.
|
|
54
|
+
*/
|
|
55
|
+
allowAlert?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* The ability to update the app’s badge.
|
|
58
|
+
*/
|
|
59
|
+
allowBadge?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* The ability to play sounds.
|
|
62
|
+
*/
|
|
63
|
+
allowSound?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* The ability to display notifications in a CarPlay environment.
|
|
66
|
+
*/
|
|
67
|
+
allowDisplayInCarPlay?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* The ability to play sounds for critical alerts.
|
|
70
|
+
*/
|
|
71
|
+
allowCriticalAlerts?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* An option indicating the system should display a button for in-app notification settings.
|
|
74
|
+
*/
|
|
75
|
+
provideAppNotificationSettings?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* The ability to post noninterrupting notifications provisionally to the Notification Center.
|
|
78
|
+
*/
|
|
79
|
+
allowProvisional?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* The ability for Siri to automatically read out messages over AirPods.
|
|
82
|
+
* @deprecated
|
|
83
|
+
*/
|
|
84
|
+
allowAnnouncements?: boolean;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export type NativeNotificationPermissionsRequest = IosNotificationPermissionsRequest | object;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* An interface representing the permissions request scope configuration.
|
|
91
|
+
* Each option corresponds to a different native platform authorization option.
|
|
92
|
+
*/
|
|
93
|
+
export interface NotificationPermissionsRequest {
|
|
94
|
+
/**
|
|
95
|
+
* Available configuration for permission request on iOS platform.
|
|
96
|
+
*/
|
|
97
|
+
ios?: IosNotificationPermissionsRequest;
|
|
98
|
+
/**
|
|
99
|
+
* On Android, all available permissions are granted by default, and if a user declines any permission, an app cannot prompt the user to change.
|
|
100
|
+
*/
|
|
101
|
+
android?: object;
|
|
102
|
+
}
|