@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.
Files changed (686) hide show
  1. package/.eslintrc.js +2 -0
  2. package/CHANGELOG.md +478 -0
  3. package/LICENSE +7 -0
  4. package/README.kepler.md +3 -0
  5. package/README.md +2003 -0
  6. package/THIRD_PARTY_NOTICES.txt +4 -0
  7. package/android/build.gradle +125 -0
  8. package/android/src/main/AndroidManifest.xml +39 -0
  9. package/android/src/main/java/expo/modules/notifications/Exceptions.kt +22 -0
  10. package/android/src/main/java/expo/modules/notifications/NotificationsPackage.java +34 -0
  11. package/android/src/main/java/expo/modules/notifications/Utils.kt +19 -0
  12. package/android/src/main/java/expo/modules/notifications/badge/BadgeHelper.kt +24 -0
  13. package/android/src/main/java/expo/modules/notifications/badge/BadgeModule.kt +22 -0
  14. package/android/src/main/java/expo/modules/notifications/notifications/ArgumentsNotificationContentBuilder.java +149 -0
  15. package/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java +203 -0
  16. package/android/src/main/java/expo/modules/notifications/notifications/NotificationManager.java +119 -0
  17. package/android/src/main/java/expo/modules/notifications/notifications/NotificationSerializer.java +202 -0
  18. package/android/src/main/java/expo/modules/notifications/notifications/RemoteMessageSerializer.java +104 -0
  19. package/android/src/main/java/expo/modules/notifications/notifications/SoundResolver.java +58 -0
  20. package/android/src/main/java/expo/modules/notifications/notifications/background/BackgroundRemoteNotificationTaskConsumer.java +123 -0
  21. package/android/src/main/java/expo/modules/notifications/notifications/background/ExpoBackgroundNotificationTasksModule.kt +33 -0
  22. package/android/src/main/java/expo/modules/notifications/notifications/categories/ExpoNotificationCategoriesModule.kt +149 -0
  23. package/android/src/main/java/expo/modules/notifications/notifications/categories/serializers/ExpoNotificationsCategoriesSerializer.java +67 -0
  24. package/android/src/main/java/expo/modules/notifications/notifications/categories/serializers/NotificationsCategoriesSerializer.java +11 -0
  25. package/android/src/main/java/expo/modules/notifications/notifications/channels/AbstractNotificationsChannelsProvider.java +81 -0
  26. package/android/src/main/java/expo/modules/notifications/notifications/channels/AndroidXNotificationsChannelsProvider.java +38 -0
  27. package/android/src/main/java/expo/modules/notifications/notifications/channels/InvalidVibrationPatternException.java +14 -0
  28. package/android/src/main/java/expo/modules/notifications/notifications/channels/NotificationChannelGroupManagerModule.kt +70 -0
  29. package/android/src/main/java/expo/modules/notifications/notifications/channels/NotificationChannelManagerModule.kt +83 -0
  30. package/android/src/main/java/expo/modules/notifications/notifications/channels/NotificationsChannelsProvider.java +13 -0
  31. package/android/src/main/java/expo/modules/notifications/notifications/channels/managers/AndroidXNotificationsChannelGroupManager.java +67 -0
  32. package/android/src/main/java/expo/modules/notifications/notifications/channels/managers/AndroidXNotificationsChannelManager.java +196 -0
  33. package/android/src/main/java/expo/modules/notifications/notifications/channels/managers/NotificationsChannelGroupManager.java +28 -0
  34. package/android/src/main/java/expo/modules/notifications/notifications/channels/managers/NotificationsChannelManager.java +28 -0
  35. package/android/src/main/java/expo/modules/notifications/notifications/channels/serializers/ExpoNotificationsChannelGroupSerializer.java +55 -0
  36. package/android/src/main/java/expo/modules/notifications/notifications/channels/serializers/ExpoNotificationsChannelSerializer.java +101 -0
  37. package/android/src/main/java/expo/modules/notifications/notifications/channels/serializers/NotificationsChannelGroupSerializer.java +20 -0
  38. package/android/src/main/java/expo/modules/notifications/notifications/channels/serializers/NotificationsChannelSerializer.java +35 -0
  39. package/android/src/main/java/expo/modules/notifications/notifications/emitting/NotificationsEmitter.kt +78 -0
  40. package/android/src/main/java/expo/modules/notifications/notifications/enums/AudioContentType.java +45 -0
  41. package/android/src/main/java/expo/modules/notifications/notifications/enums/AudioUsage.java +55 -0
  42. package/android/src/main/java/expo/modules/notifications/notifications/enums/NotificationImportance.java +48 -0
  43. package/android/src/main/java/expo/modules/notifications/notifications/enums/NotificationPriority.java +51 -0
  44. package/android/src/main/java/expo/modules/notifications/notifications/enums/NotificationVisibility.java +44 -0
  45. package/android/src/main/java/expo/modules/notifications/notifications/handling/NotificationsHandler.kt +127 -0
  46. package/android/src/main/java/expo/modules/notifications/notifications/handling/SingleNotificationHandlerTask.java +131 -0
  47. package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationBuilder.java +35 -0
  48. package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationListener.java +37 -0
  49. package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationManager.java +22 -0
  50. package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationPresentationEffect.java +11 -0
  51. package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationPresentationEffectsManager.java +7 -0
  52. package/android/src/main/java/expo/modules/notifications/notifications/interfaces/NotificationTrigger.java +19 -0
  53. package/android/src/main/java/expo/modules/notifications/notifications/interfaces/SchedulableNotificationTrigger.java +20 -0
  54. package/android/src/main/java/expo/modules/notifications/notifications/model/Notification.java +59 -0
  55. package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationAction.java +63 -0
  56. package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationBehavior.java +84 -0
  57. package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationCategory.java +61 -0
  58. package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java +356 -0
  59. package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationRequest.java +66 -0
  60. package/android/src/main/java/expo/modules/notifications/notifications/model/NotificationResponse.java +60 -0
  61. package/android/src/main/java/expo/modules/notifications/notifications/model/TextInputNotificationAction.java +42 -0
  62. package/android/src/main/java/expo/modules/notifications/notifications/model/TextInputNotificationResponse.java +42 -0
  63. package/android/src/main/java/expo/modules/notifications/notifications/model/triggers/FirebaseNotificationTrigger.java +61 -0
  64. package/android/src/main/java/expo/modules/notifications/notifications/presentation/ExpoNotificationPresentationEffectsManager.java +63 -0
  65. package/android/src/main/java/expo/modules/notifications/notifications/presentation/ExpoNotificationPresentationModule.kt +113 -0
  66. package/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/BaseNotificationBuilder.java +50 -0
  67. package/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/CategoryAwareNotificationBuilder.java +80 -0
  68. package/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ChannelAwareNotificationBuilder.java +135 -0
  69. package/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java +295 -0
  70. package/android/src/main/java/expo/modules/notifications/notifications/presentation/effects/BaseNotificationEffect.java +53 -0
  71. package/android/src/main/java/expo/modules/notifications/notifications/scheduling/NotificationScheduler.kt +235 -0
  72. package/android/src/main/java/expo/modules/notifications/notifications/triggers/ChannelAwareTrigger.java +49 -0
  73. package/android/src/main/java/expo/modules/notifications/notifications/triggers/DailyTrigger.java +76 -0
  74. package/android/src/main/java/expo/modules/notifications/notifications/triggers/DateTrigger.java +64 -0
  75. package/android/src/main/java/expo/modules/notifications/notifications/triggers/TimeIntervalTrigger.java +87 -0
  76. package/android/src/main/java/expo/modules/notifications/notifications/triggers/WeeklyTrigger.java +85 -0
  77. package/android/src/main/java/expo/modules/notifications/notifications/triggers/YearlyTrigger.java +94 -0
  78. package/android/src/main/java/expo/modules/notifications/permissions/NotificationPermissionsModule.kt +124 -0
  79. package/android/src/main/java/expo/modules/notifications/serverregistration/InstallationId.java +134 -0
  80. package/android/src/main/java/expo/modules/notifications/serverregistration/RegistrationInfo.kt +24 -0
  81. package/android/src/main/java/expo/modules/notifications/serverregistration/ServerRegistrationModule.kt +32 -0
  82. package/android/src/main/java/expo/modules/notifications/service/ExpoFirebaseMessagingService.kt +15 -0
  83. package/android/src/main/java/expo/modules/notifications/service/NotificationForwarderActivity.kt +33 -0
  84. package/android/src/main/java/expo/modules/notifications/service/NotificationsService.kt +780 -0
  85. package/android/src/main/java/expo/modules/notifications/service/delegates/Base64Serialization.kt +33 -0
  86. package/android/src/main/java/expo/modules/notifications/service/delegates/ExpoCategoriesDelegate.kt +21 -0
  87. package/android/src/main/java/expo/modules/notifications/service/delegates/ExpoHandlingDelegate.kt +146 -0
  88. package/android/src/main/java/expo/modules/notifications/service/delegates/ExpoPresentationDelegate.kt +193 -0
  89. package/android/src/main/java/expo/modules/notifications/service/delegates/ExpoSchedulingDelegate.kt +117 -0
  90. package/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt +126 -0
  91. package/android/src/main/java/expo/modules/notifications/service/delegates/SharedPreferencesNotificationCategoriesStore.kt +106 -0
  92. package/android/src/main/java/expo/modules/notifications/service/delegates/SharedPreferencesNotificationsStore.kt +119 -0
  93. package/android/src/main/java/expo/modules/notifications/service/interfaces/CategoriesDelegate.kt +14 -0
  94. package/android/src/main/java/expo/modules/notifications/service/interfaces/FirebaseMessagingDelegate.kt +20 -0
  95. package/android/src/main/java/expo/modules/notifications/service/interfaces/HandlingDelegate.kt +10 -0
  96. package/android/src/main/java/expo/modules/notifications/service/interfaces/PresentationDelegate.kt +11 -0
  97. package/android/src/main/java/expo/modules/notifications/service/interfaces/SchedulingDelegate.kt +13 -0
  98. package/android/src/main/java/expo/modules/notifications/tokens/PushTokenManager.java +88 -0
  99. package/android/src/main/java/expo/modules/notifications/tokens/PushTokenModule.kt +91 -0
  100. package/android/src/main/java/expo/modules/notifications/tokens/interfaces/FirebaseTokenListener.java +16 -0
  101. package/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenListener.java +14 -0
  102. package/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenManager.java +22 -0
  103. package/android/src/main/res/values/strings.xml +4 -0
  104. package/app.plugin.js +1 -0
  105. package/build/BackgroundNotificationTasksModule.d.ts +4 -0
  106. package/build/BackgroundNotificationTasksModule.d.ts.map +1 -0
  107. package/build/BackgroundNotificationTasksModule.js +7 -0
  108. package/build/BackgroundNotificationTasksModule.js.map +1 -0
  109. package/build/BackgroundNotificationTasksModule.kepler.d.ts +3 -0
  110. package/build/BackgroundNotificationTasksModule.kepler.d.ts.map +1 -0
  111. package/build/BackgroundNotificationTasksModule.kepler.js +9 -0
  112. package/build/BackgroundNotificationTasksModule.kepler.js.map +1 -0
  113. package/build/BackgroundNotificationTasksModule.native.d.ts +4 -0
  114. package/build/BackgroundNotificationTasksModule.native.d.ts.map +1 -0
  115. package/build/BackgroundNotificationTasksModule.native.js +3 -0
  116. package/build/BackgroundNotificationTasksModule.native.js.map +1 -0
  117. package/build/BackgroundNotificationTasksModule.types.d.ts +11 -0
  118. package/build/BackgroundNotificationTasksModule.types.d.ts.map +1 -0
  119. package/build/BackgroundNotificationTasksModule.types.js +7 -0
  120. package/build/BackgroundNotificationTasksModule.types.js.map +1 -0
  121. package/build/BackgroundNotificationTasksModule.web.d.ts +6 -0
  122. package/build/BackgroundNotificationTasksModule.web.d.ts.map +1 -0
  123. package/build/BackgroundNotificationTasksModule.web.js +9 -0
  124. package/build/BackgroundNotificationTasksModule.web.js.map +1 -0
  125. package/build/BadgeModule.d.ts +4 -0
  126. package/build/BadgeModule.d.ts.map +1 -0
  127. package/build/BadgeModule.js +5 -0
  128. package/build/BadgeModule.js.map +1 -0
  129. package/build/BadgeModule.kepler.d.ts +3 -0
  130. package/build/BadgeModule.kepler.d.ts.map +1 -0
  131. package/build/BadgeModule.kepler.js +9 -0
  132. package/build/BadgeModule.kepler.js.map +1 -0
  133. package/build/BadgeModule.native.d.ts +4 -0
  134. package/build/BadgeModule.native.d.ts.map +1 -0
  135. package/build/BadgeModule.native.js +12 -0
  136. package/build/BadgeModule.native.js.map +1 -0
  137. package/build/BadgeModule.types.d.ts +10 -0
  138. package/build/BadgeModule.types.d.ts.map +1 -0
  139. package/build/BadgeModule.types.js +2 -0
  140. package/build/BadgeModule.types.js.map +1 -0
  141. package/build/BadgeModule.web.d.ts +4 -0
  142. package/build/BadgeModule.web.d.ts.map +1 -0
  143. package/build/BadgeModule.web.js +26 -0
  144. package/build/BadgeModule.web.js.map +1 -0
  145. package/build/DevicePushTokenAutoRegistration.fx.d.ts +15 -0
  146. package/build/DevicePushTokenAutoRegistration.fx.d.ts.map +1 -0
  147. package/build/DevicePushTokenAutoRegistration.fx.js +87 -0
  148. package/build/DevicePushTokenAutoRegistration.fx.js.map +1 -0
  149. package/build/NotificationCategoriesModule.d.ts +4 -0
  150. package/build/NotificationCategoriesModule.d.ts.map +1 -0
  151. package/build/NotificationCategoriesModule.js +13 -0
  152. package/build/NotificationCategoriesModule.js.map +1 -0
  153. package/build/NotificationCategoriesModule.kepler.d.ts +3 -0
  154. package/build/NotificationCategoriesModule.kepler.d.ts.map +1 -0
  155. package/build/NotificationCategoriesModule.kepler.js +10 -0
  156. package/build/NotificationCategoriesModule.kepler.js.map +1 -0
  157. package/build/NotificationCategoriesModule.native.d.ts +4 -0
  158. package/build/NotificationCategoriesModule.native.d.ts.map +1 -0
  159. package/build/NotificationCategoriesModule.native.js +3 -0
  160. package/build/NotificationCategoriesModule.native.js.map +1 -0
  161. package/build/NotificationCategoriesModule.types.d.ts +17 -0
  162. package/build/NotificationCategoriesModule.types.d.ts.map +1 -0
  163. package/build/NotificationCategoriesModule.types.js +2 -0
  164. package/build/NotificationCategoriesModule.types.js.map +1 -0
  165. package/build/NotificationCategoriesModule.web.d.ts +8 -0
  166. package/build/NotificationCategoriesModule.web.d.ts.map +1 -0
  167. package/build/NotificationCategoriesModule.web.js +12 -0
  168. package/build/NotificationCategoriesModule.web.js.map +1 -0
  169. package/build/NotificationChannelGroupManager.d.ts +4 -0
  170. package/build/NotificationChannelGroupManager.d.ts.map +1 -0
  171. package/build/NotificationChannelGroupManager.js +5 -0
  172. package/build/NotificationChannelGroupManager.js.map +1 -0
  173. package/build/NotificationChannelGroupManager.kepler.d.ts +3 -0
  174. package/build/NotificationChannelGroupManager.kepler.d.ts.map +1 -0
  175. package/build/NotificationChannelGroupManager.kepler.js +9 -0
  176. package/build/NotificationChannelGroupManager.kepler.js.map +1 -0
  177. package/build/NotificationChannelGroupManager.native.d.ts +4 -0
  178. package/build/NotificationChannelGroupManager.native.d.ts.map +1 -0
  179. package/build/NotificationChannelGroupManager.native.js +3 -0
  180. package/build/NotificationChannelGroupManager.native.js.map +1 -0
  181. package/build/NotificationChannelGroupManager.types.d.ts +28 -0
  182. package/build/NotificationChannelGroupManager.types.d.ts.map +1 -0
  183. package/build/NotificationChannelGroupManager.types.js +2 -0
  184. package/build/NotificationChannelGroupManager.types.js.map +1 -0
  185. package/build/NotificationChannelManager.d.ts +4 -0
  186. package/build/NotificationChannelManager.d.ts.map +1 -0
  187. package/build/NotificationChannelManager.js +5 -0
  188. package/build/NotificationChannelManager.js.map +1 -0
  189. package/build/NotificationChannelManager.kepler.d.ts +3 -0
  190. package/build/NotificationChannelManager.kepler.d.ts.map +1 -0
  191. package/build/NotificationChannelManager.kepler.js +9 -0
  192. package/build/NotificationChannelManager.kepler.js.map +1 -0
  193. package/build/NotificationChannelManager.native.d.ts +4 -0
  194. package/build/NotificationChannelManager.native.d.ts.map +1 -0
  195. package/build/NotificationChannelManager.native.js +3 -0
  196. package/build/NotificationChannelManager.native.js.map +1 -0
  197. package/build/NotificationChannelManager.types.d.ts +91 -0
  198. package/build/NotificationChannelManager.types.d.ts.map +1 -0
  199. package/build/NotificationChannelManager.types.js +53 -0
  200. package/build/NotificationChannelManager.types.js.map +1 -0
  201. package/build/NotificationPermissions.d.ts +56 -0
  202. package/build/NotificationPermissions.d.ts.map +1 -0
  203. package/build/NotificationPermissions.js +79 -0
  204. package/build/NotificationPermissions.js.map +1 -0
  205. package/build/NotificationPermissions.types.d.ts +94 -0
  206. package/build/NotificationPermissions.types.d.ts.map +1 -0
  207. package/build/NotificationPermissions.types.js +21 -0
  208. package/build/NotificationPermissions.types.js.map +1 -0
  209. package/build/NotificationPermissionsModule.d.ts +4 -0
  210. package/build/NotificationPermissionsModule.d.ts.map +1 -0
  211. package/build/NotificationPermissionsModule.js +67 -0
  212. package/build/NotificationPermissionsModule.js.map +1 -0
  213. package/build/NotificationPermissionsModule.kepler.d.ts +3 -0
  214. package/build/NotificationPermissionsModule.kepler.d.ts.map +1 -0
  215. package/build/NotificationPermissionsModule.kepler.js +9 -0
  216. package/build/NotificationPermissionsModule.kepler.js.map +1 -0
  217. package/build/NotificationPermissionsModule.native.d.ts +4 -0
  218. package/build/NotificationPermissionsModule.native.d.ts.map +1 -0
  219. package/build/NotificationPermissionsModule.native.js +3 -0
  220. package/build/NotificationPermissionsModule.native.js.map +1 -0
  221. package/build/NotificationPermissionsModule.types.d.ts +7 -0
  222. package/build/NotificationPermissionsModule.types.d.ts.map +1 -0
  223. package/build/NotificationPermissionsModule.types.js +2 -0
  224. package/build/NotificationPermissionsModule.types.js.map +1 -0
  225. package/build/NotificationPresenterModule.d.ts +4 -0
  226. package/build/NotificationPresenterModule.d.ts.map +1 -0
  227. package/build/NotificationPresenterModule.js +5 -0
  228. package/build/NotificationPresenterModule.js.map +1 -0
  229. package/build/NotificationPresenterModule.kepler.d.ts +4 -0
  230. package/build/NotificationPresenterModule.kepler.d.ts.map +1 -0
  231. package/build/NotificationPresenterModule.kepler.js +55 -0
  232. package/build/NotificationPresenterModule.kepler.js.map +1 -0
  233. package/build/NotificationPresenterModule.native.d.ts +4 -0
  234. package/build/NotificationPresenterModule.native.d.ts.map +1 -0
  235. package/build/NotificationPresenterModule.native.js +3 -0
  236. package/build/NotificationPresenterModule.native.js.map +1 -0
  237. package/build/NotificationPresenterModule.types.d.ts +9 -0
  238. package/build/NotificationPresenterModule.types.d.ts.map +1 -0
  239. package/build/NotificationPresenterModule.types.js +2 -0
  240. package/build/NotificationPresenterModule.types.js.map +1 -0
  241. package/build/NotificationScheduler.d.ts +4 -0
  242. package/build/NotificationScheduler.d.ts.map +1 -0
  243. package/build/NotificationScheduler.js +5 -0
  244. package/build/NotificationScheduler.js.map +1 -0
  245. package/build/NotificationScheduler.kepler.d.ts +4 -0
  246. package/build/NotificationScheduler.kepler.d.ts.map +1 -0
  247. package/build/NotificationScheduler.kepler.js +50 -0
  248. package/build/NotificationScheduler.kepler.js.map +1 -0
  249. package/build/NotificationScheduler.native.d.ts +4 -0
  250. package/build/NotificationScheduler.native.d.ts.map +1 -0
  251. package/build/NotificationScheduler.native.js +3 -0
  252. package/build/NotificationScheduler.native.js.map +1 -0
  253. package/build/NotificationScheduler.types.d.ts +65 -0
  254. package/build/NotificationScheduler.types.d.ts.map +1 -0
  255. package/build/NotificationScheduler.types.js +2 -0
  256. package/build/NotificationScheduler.types.js.map +1 -0
  257. package/build/Notifications.types.d.ts +666 -0
  258. package/build/Notifications.types.d.ts.map +1 -0
  259. package/build/Notifications.types.js +12 -0
  260. package/build/Notifications.types.js.map +1 -0
  261. package/build/NotificationsEmitter.d.ts +75 -0
  262. package/build/NotificationsEmitter.d.ts.map +1 -0
  263. package/build/NotificationsEmitter.js +95 -0
  264. package/build/NotificationsEmitter.js.map +1 -0
  265. package/build/NotificationsEmitterModule.d.ts +4 -0
  266. package/build/NotificationsEmitterModule.d.ts.map +1 -0
  267. package/build/NotificationsEmitterModule.js +12 -0
  268. package/build/NotificationsEmitterModule.js.map +1 -0
  269. package/build/NotificationsEmitterModule.kepler.d.ts +3 -0
  270. package/build/NotificationsEmitterModule.kepler.d.ts.map +1 -0
  271. package/build/NotificationsEmitterModule.kepler.js +9 -0
  272. package/build/NotificationsEmitterModule.kepler.js.map +1 -0
  273. package/build/NotificationsEmitterModule.native.d.ts +4 -0
  274. package/build/NotificationsEmitterModule.native.d.ts.map +1 -0
  275. package/build/NotificationsEmitterModule.native.js +3 -0
  276. package/build/NotificationsEmitterModule.native.js.map +1 -0
  277. package/build/NotificationsEmitterModule.types.d.ts +6 -0
  278. package/build/NotificationsEmitterModule.types.d.ts.map +1 -0
  279. package/build/NotificationsEmitterModule.types.js +2 -0
  280. package/build/NotificationsEmitterModule.types.js.map +1 -0
  281. package/build/NotificationsHandler.d.ts +60 -0
  282. package/build/NotificationsHandler.d.ts.map +1 -0
  283. package/build/NotificationsHandler.js +72 -0
  284. package/build/NotificationsHandler.js.map +1 -0
  285. package/build/NotificationsHandlerModule.d.ts +4 -0
  286. package/build/NotificationsHandlerModule.d.ts.map +1 -0
  287. package/build/NotificationsHandlerModule.js +12 -0
  288. package/build/NotificationsHandlerModule.js.map +1 -0
  289. package/build/NotificationsHandlerModule.kepler.d.ts +3 -0
  290. package/build/NotificationsHandlerModule.kepler.d.ts.map +1 -0
  291. package/build/NotificationsHandlerModule.kepler.js +9 -0
  292. package/build/NotificationsHandlerModule.kepler.js.map +1 -0
  293. package/build/NotificationsHandlerModule.native.d.ts +4 -0
  294. package/build/NotificationsHandlerModule.native.d.ts.map +1 -0
  295. package/build/NotificationsHandlerModule.native.js +3 -0
  296. package/build/NotificationsHandlerModule.native.js.map +1 -0
  297. package/build/NotificationsHandlerModule.types.d.ts +6 -0
  298. package/build/NotificationsHandlerModule.types.d.ts.map +1 -0
  299. package/build/NotificationsHandlerModule.types.js +2 -0
  300. package/build/NotificationsHandlerModule.types.js.map +1 -0
  301. package/build/PushTokenManager.d.ts +4 -0
  302. package/build/PushTokenManager.d.ts.map +1 -0
  303. package/build/PushTokenManager.js +12 -0
  304. package/build/PushTokenManager.js.map +1 -0
  305. package/build/PushTokenManager.kepler.d.ts +3 -0
  306. package/build/PushTokenManager.kepler.d.ts.map +1 -0
  307. package/build/PushTokenManager.kepler.js +9 -0
  308. package/build/PushTokenManager.kepler.js.map +1 -0
  309. package/build/PushTokenManager.native.d.ts +4 -0
  310. package/build/PushTokenManager.native.d.ts.map +1 -0
  311. package/build/PushTokenManager.native.js +3 -0
  312. package/build/PushTokenManager.native.js.map +1 -0
  313. package/build/PushTokenManager.types.d.ts +6 -0
  314. package/build/PushTokenManager.types.d.ts.map +1 -0
  315. package/build/PushTokenManager.types.js +2 -0
  316. package/build/PushTokenManager.types.js.map +1 -0
  317. package/build/ServerRegistrationModule.d.ts +4 -0
  318. package/build/ServerRegistrationModule.d.ts.map +1 -0
  319. package/build/ServerRegistrationModule.js +5 -0
  320. package/build/ServerRegistrationModule.js.map +1 -0
  321. package/build/ServerRegistrationModule.kepler.d.ts +3 -0
  322. package/build/ServerRegistrationModule.kepler.d.ts.map +1 -0
  323. package/build/ServerRegistrationModule.kepler.js +9 -0
  324. package/build/ServerRegistrationModule.kepler.js.map +1 -0
  325. package/build/ServerRegistrationModule.native.d.ts +4 -0
  326. package/build/ServerRegistrationModule.native.d.ts.map +1 -0
  327. package/build/ServerRegistrationModule.native.js +3 -0
  328. package/build/ServerRegistrationModule.native.js.map +1 -0
  329. package/build/ServerRegistrationModule.types.d.ts +7 -0
  330. package/build/ServerRegistrationModule.types.d.ts.map +1 -0
  331. package/build/ServerRegistrationModule.types.js +2 -0
  332. package/build/ServerRegistrationModule.types.js.map +1 -0
  333. package/build/ServerRegistrationModule.web.d.ts +4 -0
  334. package/build/ServerRegistrationModule.web.d.ts.map +1 -0
  335. package/build/ServerRegistrationModule.web.js +50 -0
  336. package/build/ServerRegistrationModule.web.js.map +1 -0
  337. package/build/TokenEmitter.d.ts +42 -0
  338. package/build/TokenEmitter.d.ts.map +1 -0
  339. package/build/TokenEmitter.js +44 -0
  340. package/build/TokenEmitter.js.map +1 -0
  341. package/build/Tokens.types.d.ts +99 -0
  342. package/build/Tokens.types.d.ts.map +1 -0
  343. package/build/Tokens.types.js +2 -0
  344. package/build/Tokens.types.js.map +1 -0
  345. package/build/cancelAllScheduledNotificationsAsync.d.ts +7 -0
  346. package/build/cancelAllScheduledNotificationsAsync.d.ts.map +1 -0
  347. package/build/cancelAllScheduledNotificationsAsync.js +14 -0
  348. package/build/cancelAllScheduledNotificationsAsync.js.map +1 -0
  349. package/build/cancelScheduledNotificationAsync.d.ts +22 -0
  350. package/build/cancelScheduledNotificationAsync.d.ts.map +1 -0
  351. package/build/cancelScheduledNotificationAsync.js +29 -0
  352. package/build/cancelScheduledNotificationAsync.js.map +1 -0
  353. package/build/deleteNotificationCategoryAsync.d.ts +11 -0
  354. package/build/deleteNotificationCategoryAsync.d.ts.map +1 -0
  355. package/build/deleteNotificationCategoryAsync.js +19 -0
  356. package/build/deleteNotificationCategoryAsync.js.map +1 -0
  357. package/build/deleteNotificationChannelAsync.android.d.ts +2 -0
  358. package/build/deleteNotificationChannelAsync.android.d.ts.map +1 -0
  359. package/build/deleteNotificationChannelAsync.android.js +9 -0
  360. package/build/deleteNotificationChannelAsync.android.js.map +1 -0
  361. package/build/deleteNotificationChannelAsync.d.ts +9 -0
  362. package/build/deleteNotificationChannelAsync.d.ts.map +1 -0
  363. package/build/deleteNotificationChannelAsync.js +11 -0
  364. package/build/deleteNotificationChannelAsync.js.map +1 -0
  365. package/build/deleteNotificationChannelGroupAsync.android.d.ts +2 -0
  366. package/build/deleteNotificationChannelGroupAsync.android.d.ts.map +1 -0
  367. package/build/deleteNotificationChannelGroupAsync.android.js +9 -0
  368. package/build/deleteNotificationChannelGroupAsync.android.js.map +1 -0
  369. package/build/deleteNotificationChannelGroupAsync.d.ts +9 -0
  370. package/build/deleteNotificationChannelGroupAsync.d.ts.map +1 -0
  371. package/build/deleteNotificationChannelGroupAsync.js +11 -0
  372. package/build/deleteNotificationChannelGroupAsync.js.map +1 -0
  373. package/build/dismissAllNotificationsAsync.d.ts +7 -0
  374. package/build/dismissAllNotificationsAsync.d.ts.map +1 -0
  375. package/build/dismissAllNotificationsAsync.js +14 -0
  376. package/build/dismissAllNotificationsAsync.js.map +1 -0
  377. package/build/dismissNotificationAsync.d.ts +8 -0
  378. package/build/dismissNotificationAsync.d.ts.map +1 -0
  379. package/build/dismissNotificationAsync.js +15 -0
  380. package/build/dismissNotificationAsync.js.map +1 -0
  381. package/build/getAllScheduledNotificationsAsync.d.ts +8 -0
  382. package/build/getAllScheduledNotificationsAsync.d.ts.map +1 -0
  383. package/build/getAllScheduledNotificationsAsync.js +14 -0
  384. package/build/getAllScheduledNotificationsAsync.js.map +1 -0
  385. package/build/getBadgeCountAsync.d.ts +8 -0
  386. package/build/getBadgeCountAsync.d.ts.map +1 -0
  387. package/build/getBadgeCountAsync.js +15 -0
  388. package/build/getBadgeCountAsync.js.map +1 -0
  389. package/build/getDevicePushTokenAsync.d.ts +8 -0
  390. package/build/getDevicePushTokenAsync.d.ts.map +1 -0
  391. package/build/getDevicePushTokenAsync.js +27 -0
  392. package/build/getDevicePushTokenAsync.js.map +1 -0
  393. package/build/getDevicePushTokenAsync.web.d.ts +3 -0
  394. package/build/getDevicePushTokenAsync.web.d.ts.map +1 -0
  395. package/build/getDevicePushTokenAsync.web.js +84 -0
  396. package/build/getDevicePushTokenAsync.web.js.map +1 -0
  397. package/build/getExpoPushTokenAsync.d.ts +40 -0
  398. package/build/getExpoPushTokenAsync.d.ts.map +1 -0
  399. package/build/getExpoPushTokenAsync.js +177 -0
  400. package/build/getExpoPushTokenAsync.js.map +1 -0
  401. package/build/getNextTriggerDateAsync.d.ts +26 -0
  402. package/build/getNextTriggerDateAsync.d.ts.map +1 -0
  403. package/build/getNextTriggerDateAsync.js +33 -0
  404. package/build/getNextTriggerDateAsync.js.map +1 -0
  405. package/build/getNotificationCategoriesAsync.d.ts +11 -0
  406. package/build/getNotificationCategoriesAsync.d.ts.map +1 -0
  407. package/build/getNotificationCategoriesAsync.js +18 -0
  408. package/build/getNotificationCategoriesAsync.js.map +1 -0
  409. package/build/getNotificationChannelAsync.android.d.ts +3 -0
  410. package/build/getNotificationChannelAsync.android.d.ts.map +1 -0
  411. package/build/getNotificationChannelAsync.android.js +9 -0
  412. package/build/getNotificationChannelAsync.android.js.map +1 -0
  413. package/build/getNotificationChannelAsync.d.ts +11 -0
  414. package/build/getNotificationChannelAsync.d.ts.map +1 -0
  415. package/build/getNotificationChannelAsync.js +13 -0
  416. package/build/getNotificationChannelAsync.js.map +1 -0
  417. package/build/getNotificationChannelGroupAsync.android.d.ts +3 -0
  418. package/build/getNotificationChannelGroupAsync.android.d.ts.map +1 -0
  419. package/build/getNotificationChannelGroupAsync.android.js +9 -0
  420. package/build/getNotificationChannelGroupAsync.android.js.map +1 -0
  421. package/build/getNotificationChannelGroupAsync.d.ts +12 -0
  422. package/build/getNotificationChannelGroupAsync.d.ts.map +1 -0
  423. package/build/getNotificationChannelGroupAsync.js +14 -0
  424. package/build/getNotificationChannelGroupAsync.js.map +1 -0
  425. package/build/getNotificationChannelGroupsAsync.android.d.ts +3 -0
  426. package/build/getNotificationChannelGroupsAsync.android.d.ts.map +1 -0
  427. package/build/getNotificationChannelGroupsAsync.android.js +9 -0
  428. package/build/getNotificationChannelGroupsAsync.android.js.map +1 -0
  429. package/build/getNotificationChannelGroupsAsync.d.ts +10 -0
  430. package/build/getNotificationChannelGroupsAsync.d.ts.map +1 -0
  431. package/build/getNotificationChannelGroupsAsync.js +12 -0
  432. package/build/getNotificationChannelGroupsAsync.js.map +1 -0
  433. package/build/getNotificationChannelsAsync.android.d.ts +3 -0
  434. package/build/getNotificationChannelsAsync.android.d.ts.map +1 -0
  435. package/build/getNotificationChannelsAsync.android.js +9 -0
  436. package/build/getNotificationChannelsAsync.android.js.map +1 -0
  437. package/build/getNotificationChannelsAsync.d.ts +10 -0
  438. package/build/getNotificationChannelsAsync.d.ts.map +1 -0
  439. package/build/getNotificationChannelsAsync.js +12 -0
  440. package/build/getNotificationChannelsAsync.js.map +1 -0
  441. package/build/getPresentedNotificationsAsync.d.ts +9 -0
  442. package/build/getPresentedNotificationsAsync.d.ts.map +1 -0
  443. package/build/getPresentedNotificationsAsync.js +15 -0
  444. package/build/getPresentedNotificationsAsync.js.map +1 -0
  445. package/build/index.d.ts +39 -0
  446. package/build/index.d.ts.map +1 -0
  447. package/build/index.js +39 -0
  448. package/build/index.js.map +1 -0
  449. package/build/kepler/NotificationContent.d.ts +43 -0
  450. package/build/kepler/NotificationContent.d.ts.map +1 -0
  451. package/build/kepler/NotificationContent.js +96 -0
  452. package/build/kepler/NotificationContent.js.map +1 -0
  453. package/build/kepler/index.d.ts +3 -0
  454. package/build/kepler/index.d.ts.map +1 -0
  455. package/build/kepler/index.js +15 -0
  456. package/build/kepler/index.js.map +1 -0
  457. package/build/kepler/native-notification-manager.d.ts +3 -0
  458. package/build/kepler/native-notification-manager.d.ts.map +1 -0
  459. package/build/kepler/native-notification-manager.js +10 -0
  460. package/build/kepler/native-notification-manager.js.map +1 -0
  461. package/build/kepler/types/NotificationManagerTypes.d.ts +373 -0
  462. package/build/kepler/types/NotificationManagerTypes.d.ts.map +1 -0
  463. package/build/kepler/types/NotificationManagerTypes.js +279 -0
  464. package/build/kepler/types/NotificationManagerTypes.js.map +1 -0
  465. package/build/kepler/types/index.d.ts +3 -0
  466. package/build/kepler/types/index.d.ts.map +1 -0
  467. package/build/kepler/types/index.js +15 -0
  468. package/build/kepler/types/index.js.map +1 -0
  469. package/build/presentNotificationAsync.d.ts +11 -0
  470. package/build/presentNotificationAsync.d.ts.map +1 -0
  471. package/build/presentNotificationAsync.js +22 -0
  472. package/build/presentNotificationAsync.js.map +1 -0
  473. package/build/registerTaskAsync.d.ts +29 -0
  474. package/build/registerTaskAsync.d.ts.map +1 -0
  475. package/build/registerTaskAsync.js +37 -0
  476. package/build/registerTaskAsync.js.map +1 -0
  477. package/build/scheduleNotificationAsync.d.ts +60 -0
  478. package/build/scheduleNotificationAsync.d.ts.map +1 -0
  479. package/build/scheduleNotificationAsync.js +261 -0
  480. package/build/scheduleNotificationAsync.js.map +1 -0
  481. package/build/setBadgeCountAsync.d.ts +19 -0
  482. package/build/setBadgeCountAsync.d.ts.map +1 -0
  483. package/build/setBadgeCountAsync.js +19 -0
  484. package/build/setBadgeCountAsync.js.map +1 -0
  485. package/build/setNotificationCategoryAsync.d.ts +15 -0
  486. package/build/setNotificationCategoryAsync.d.ts.map +1 -0
  487. package/build/setNotificationCategoryAsync.js +22 -0
  488. package/build/setNotificationCategoryAsync.js.map +1 -0
  489. package/build/setNotificationChannelAsync.android.d.ts +3 -0
  490. package/build/setNotificationChannelAsync.android.d.ts.map +1 -0
  491. package/build/setNotificationChannelAsync.android.js +9 -0
  492. package/build/setNotificationChannelAsync.android.js.map +1 -0
  493. package/build/setNotificationChannelAsync.d.ts +22 -0
  494. package/build/setNotificationChannelAsync.d.ts.map +1 -0
  495. package/build/setNotificationChannelAsync.js +24 -0
  496. package/build/setNotificationChannelAsync.js.map +1 -0
  497. package/build/setNotificationChannelGroupAsync.android.d.ts +3 -0
  498. package/build/setNotificationChannelGroupAsync.android.d.ts.map +1 -0
  499. package/build/setNotificationChannelGroupAsync.android.js +9 -0
  500. package/build/setNotificationChannelGroupAsync.android.js.map +1 -0
  501. package/build/setNotificationChannelGroupAsync.d.ts +12 -0
  502. package/build/setNotificationChannelGroupAsync.d.ts.map +1 -0
  503. package/build/setNotificationChannelGroupAsync.js +14 -0
  504. package/build/setNotificationChannelGroupAsync.js.map +1 -0
  505. package/build/unregisterForNotificationsAsync.d.ts +2 -0
  506. package/build/unregisterForNotificationsAsync.d.ts.map +1 -0
  507. package/build/unregisterForNotificationsAsync.js +10 -0
  508. package/build/unregisterForNotificationsAsync.js.map +1 -0
  509. package/build/unregisterTaskAsync.d.ts +7 -0
  510. package/build/unregisterTaskAsync.d.ts.map +1 -0
  511. package/build/unregisterTaskAsync.js +15 -0
  512. package/build/unregisterTaskAsync.js.map +1 -0
  513. package/build/useLastNotificationResponse.d.ts +38 -0
  514. package/build/useLastNotificationResponse.d.ts.map +1 -0
  515. package/build/useLastNotificationResponse.js +63 -0
  516. package/build/useLastNotificationResponse.js.map +1 -0
  517. package/build/utils/keplerUuidUtils.d.ts +5 -0
  518. package/build/utils/keplerUuidUtils.d.ts.map +1 -0
  519. package/build/utils/keplerUuidUtils.js +15 -0
  520. package/build/utils/keplerUuidUtils.js.map +1 -0
  521. package/build/utils/updateDevicePushTokenAsync.d.ts +3 -0
  522. package/build/utils/updateDevicePushTokenAsync.d.ts.map +1 -0
  523. package/build/utils/updateDevicePushTokenAsync.js +115 -0
  524. package/build/utils/updateDevicePushTokenAsync.js.map +1 -0
  525. package/expo-module.config.json +20 -0
  526. package/ios/EXNotifications/Building/EXNotificationBuilder.h +19 -0
  527. package/ios/EXNotifications/Building/EXNotificationBuilder.m +91 -0
  528. package/ios/EXNotifications/EXBadgeModule.h +11 -0
  529. package/ios/EXNotifications/EXBadgeModule.m +36 -0
  530. package/ios/EXNotifications/EXServerRegistrationModule.h +19 -0
  531. package/ios/EXNotifications/EXServerRegistrationModule.m +194 -0
  532. package/ios/EXNotifications/Notifications/Background/EXBackgroundNotificationTasksModule.h +16 -0
  533. package/ios/EXNotifications/Notifications/Background/EXBackgroundNotificationTasksModule.m +62 -0
  534. package/ios/EXNotifications/Notifications/Background/EXBackgroundRemoteNotificationConsumer.h +14 -0
  535. package/ios/EXNotifications/Notifications/Background/EXBackgroundRemoteNotificationConsumer.m +51 -0
  536. package/ios/EXNotifications/Notifications/Categories/EXNotificationCategoriesModule.h +25 -0
  537. package/ios/EXNotifications/Notifications/Categories/EXNotificationCategoriesModule.m +217 -0
  538. package/ios/EXNotifications/Notifications/EXNotificationCenterDelegate.h +29 -0
  539. package/ios/EXNotifications/Notifications/EXNotificationCenterDelegate.m +209 -0
  540. package/ios/EXNotifications/Notifications/EXNotificationSerializer.h +16 -0
  541. package/ios/EXNotifications/Notifications/EXNotificationSerializer.m +232 -0
  542. package/ios/EXNotifications/Notifications/EXNotificationsDelegate.h +27 -0
  543. package/ios/EXNotifications/Notifications/Emitter/EXNotificationsEmitter.h +17 -0
  544. package/ios/EXNotifications/Notifications/Emitter/EXNotificationsEmitter.m +114 -0
  545. package/ios/EXNotifications/Notifications/Handler/EXNotificationsHandlerModule.h +12 -0
  546. package/ios/EXNotifications/Notifications/Handler/EXNotificationsHandlerModule.m +109 -0
  547. package/ios/EXNotifications/Notifications/Handler/EXSingleNotificationHandlerTask.h +33 -0
  548. package/ios/EXNotifications/Notifications/Handler/EXSingleNotificationHandlerTask.m +124 -0
  549. package/ios/EXNotifications/Notifications/NSDictionary+EXNotificationsVerifyingClass.h +7 -0
  550. package/ios/EXNotifications/Notifications/NSDictionary+EXNotificationsVerifyingClass.m +19 -0
  551. package/ios/EXNotifications/Notifications/Presenting/EXNotificationPresentationModule.h +13 -0
  552. package/ios/EXNotifications/Notifications/Presenting/EXNotificationPresentationModule.m +124 -0
  553. package/ios/EXNotifications/Notifications/Scheduling/EXNotificationSchedulerModule.h +21 -0
  554. package/ios/EXNotifications/Notifications/Scheduling/EXNotificationSchedulerModule.m +263 -0
  555. package/ios/EXNotifications/Permissions/EXLegacyRemoteNotificationPermissionRequester.h +13 -0
  556. package/ios/EXNotifications/Permissions/EXLegacyRemoteNotificationPermissionRequester.m +135 -0
  557. package/ios/EXNotifications/Permissions/EXNotificationPermissionsModule.h +8 -0
  558. package/ios/EXNotifications/Permissions/EXNotificationPermissionsModule.m +67 -0
  559. package/ios/EXNotifications/Permissions/EXRemoteNotificationPermissionSingletonModule.h +29 -0
  560. package/ios/EXNotifications/Permissions/EXRemoteNotificationPermissionSingletonModule.m +68 -0
  561. package/ios/EXNotifications/Permissions/EXUserFacingNotificationsPermissionsRequester.h +15 -0
  562. package/ios/EXNotifications/Permissions/EXUserFacingNotificationsPermissionsRequester.m +202 -0
  563. package/ios/EXNotifications/PushToken/EXPushTokenListener.h +14 -0
  564. package/ios/EXNotifications/PushToken/EXPushTokenManager.h +24 -0
  565. package/ios/EXNotifications/PushToken/EXPushTokenManager.m +63 -0
  566. package/ios/EXNotifications/PushToken/EXPushTokenModule.h +9 -0
  567. package/ios/EXNotifications/PushToken/EXPushTokenModule.m +154 -0
  568. package/ios/EXNotifications.podspec +25 -0
  569. package/package.json +67 -0
  570. package/plugin/build/withNotifications.d.ts +28 -0
  571. package/plugin/build/withNotifications.js +12 -0
  572. package/plugin/build/withNotificationsAndroid.d.ts +42 -0
  573. package/plugin/build/withNotificationsAndroid.js +184 -0
  574. package/plugin/build/withNotificationsIOS.d.ts +14 -0
  575. package/plugin/build/withNotificationsIOS.js +58 -0
  576. package/plugin/jest.config.js +1 -0
  577. package/plugin/src/withNotifications.ts +40 -0
  578. package/plugin/src/withNotificationsAndroid.ts +239 -0
  579. package/plugin/src/withNotificationsIOS.ts +78 -0
  580. package/plugin/tsconfig.json +9 -0
  581. package/src/BackgroundNotificationTasksModule.kepler.ts +8 -0
  582. package/src/BackgroundNotificationTasksModule.native.ts +7 -0
  583. package/src/BackgroundNotificationTasksModule.ts +8 -0
  584. package/src/BackgroundNotificationTasksModule.types.ts +12 -0
  585. package/src/BackgroundNotificationTasksModule.web.ts +8 -0
  586. package/src/BadgeModule.kepler.ts +8 -0
  587. package/src/BadgeModule.native.ts +15 -0
  588. package/src/BadgeModule.ts +6 -0
  589. package/src/BadgeModule.types.ts +11 -0
  590. package/src/BadgeModule.web.ts +28 -0
  591. package/src/DevicePushTokenAutoRegistration.fx.ts +119 -0
  592. package/src/NotificationCategoriesModule.kepler.ts +10 -0
  593. package/src/NotificationCategoriesModule.native.ts +7 -0
  594. package/src/NotificationCategoriesModule.ts +15 -0
  595. package/src/NotificationCategoriesModule.types.ts +22 -0
  596. package/src/NotificationCategoriesModule.web.ts +17 -0
  597. package/src/NotificationChannelGroupManager.kepler.ts +8 -0
  598. package/src/NotificationChannelGroupManager.native.ts +7 -0
  599. package/src/NotificationChannelGroupManager.ts +6 -0
  600. package/src/NotificationChannelGroupManager.types.ts +34 -0
  601. package/src/NotificationChannelManager.kepler.ts +8 -0
  602. package/src/NotificationChannelManager.native.ts +5 -0
  603. package/src/NotificationChannelManager.ts +6 -0
  604. package/src/NotificationChannelManager.types.ts +115 -0
  605. package/src/NotificationPermissions.ts +91 -0
  606. package/src/NotificationPermissions.types.ts +102 -0
  607. package/src/NotificationPermissionsModule.kepler.ts +8 -0
  608. package/src/NotificationPermissionsModule.native.ts +7 -0
  609. package/src/NotificationPermissionsModule.ts +83 -0
  610. package/src/NotificationPermissionsModule.types.ts +13 -0
  611. package/src/NotificationPresenterModule.kepler.ts +67 -0
  612. package/src/NotificationPresenterModule.native.ts +5 -0
  613. package/src/NotificationPresenterModule.ts +6 -0
  614. package/src/NotificationPresenterModule.types.ts +13 -0
  615. package/src/NotificationScheduler.kepler.ts +63 -0
  616. package/src/NotificationScheduler.native.ts +5 -0
  617. package/src/NotificationScheduler.ts +6 -0
  618. package/src/NotificationScheduler.types.ts +89 -0
  619. package/src/Notifications.types.ts +722 -0
  620. package/src/NotificationsEmitter.ts +111 -0
  621. package/src/NotificationsEmitterModule.kepler.ts +8 -0
  622. package/src/NotificationsEmitterModule.native.ts +5 -0
  623. package/src/NotificationsEmitterModule.ts +17 -0
  624. package/src/NotificationsEmitterModule.types.ts +7 -0
  625. package/src/NotificationsHandler.ts +120 -0
  626. package/src/NotificationsHandlerModule.kepler.ts +8 -0
  627. package/src/NotificationsHandlerModule.native.ts +5 -0
  628. package/src/NotificationsHandlerModule.ts +17 -0
  629. package/src/NotificationsHandlerModule.types.ts +10 -0
  630. package/src/PushTokenManager.kepler.ts +8 -0
  631. package/src/PushTokenManager.native.ts +5 -0
  632. package/src/PushTokenManager.ts +17 -0
  633. package/src/PushTokenManager.types.ts +6 -0
  634. package/src/ServerRegistrationModule.kepler.ts +8 -0
  635. package/src/ServerRegistrationModule.native.ts +7 -0
  636. package/src/ServerRegistrationModule.ts +6 -0
  637. package/src/ServerRegistrationModule.types.ts +7 -0
  638. package/src/ServerRegistrationModule.web.ts +56 -0
  639. package/src/TokenEmitter.ts +56 -0
  640. package/src/Tokens.types.ts +110 -0
  641. package/src/cancelAllScheduledNotificationsAsync.ts +16 -0
  642. package/src/cancelScheduledNotificationAsync.ts +31 -0
  643. package/src/deleteNotificationCategoryAsync.ts +23 -0
  644. package/src/deleteNotificationChannelAsync.android.ts +11 -0
  645. package/src/deleteNotificationChannelAsync.ts +10 -0
  646. package/src/deleteNotificationChannelGroupAsync.android.ts +11 -0
  647. package/src/deleteNotificationChannelGroupAsync.ts +10 -0
  648. package/src/dismissAllNotificationsAsync.ts +16 -0
  649. package/src/dismissNotificationAsync.ts +19 -0
  650. package/src/getAllScheduledNotificationsAsync.ts +17 -0
  651. package/src/getBadgeCountAsync.ts +17 -0
  652. package/src/getDevicePushTokenAsync.ts +31 -0
  653. package/src/getDevicePushTokenAsync.web.ts +122 -0
  654. package/src/getExpoPushTokenAsync.ts +238 -0
  655. package/src/getNextTriggerDateAsync.ts +38 -0
  656. package/src/getNotificationCategoriesAsync.ts +21 -0
  657. package/src/getNotificationChannelAsync.android.ts +13 -0
  658. package/src/getNotificationChannelAsync.ts +16 -0
  659. package/src/getNotificationChannelGroupAsync.android.ts +14 -0
  660. package/src/getNotificationChannelGroupAsync.ts +17 -0
  661. package/src/getNotificationChannelGroupsAsync.android.ts +13 -0
  662. package/src/getNotificationChannelGroupsAsync.ts +15 -0
  663. package/src/getNotificationChannelsAsync.android.ts +11 -0
  664. package/src/getNotificationChannelsAsync.ts +13 -0
  665. package/src/getPresentedNotificationsAsync.ts +18 -0
  666. package/src/index.ts +38 -0
  667. package/src/kepler/NotificationContent.ts +119 -0
  668. package/src/kepler/index.ts +16 -0
  669. package/src/kepler/native-notification-manager.ts +10 -0
  670. package/src/kepler/types/NotificationManagerTypes.ts +508 -0
  671. package/src/kepler/types/index.ts +16 -0
  672. package/src/presentNotificationAsync.ts +32 -0
  673. package/src/registerTaskAsync.ts +39 -0
  674. package/src/scheduleNotificationAsync.ts +335 -0
  675. package/src/setBadgeCountAsync.ts +32 -0
  676. package/src/setNotificationCategoryAsync.ts +37 -0
  677. package/src/setNotificationChannelAsync.android.ts +15 -0
  678. package/src/setNotificationChannelAsync.ts +28 -0
  679. package/src/setNotificationChannelGroupAsync.android.ts +18 -0
  680. package/src/setNotificationChannelGroupAsync.ts +21 -0
  681. package/src/unregisterForNotificationsAsync.ts +11 -0
  682. package/src/unregisterTaskAsync.ts +17 -0
  683. package/src/useLastNotificationResponse.ts +70 -0
  684. package/src/utils/keplerUuidUtils.ts +29 -0
  685. package/src/utils/updateDevicePushTokenAsync.ts +147 -0
  686. package/tsconfig.json +9 -0
@@ -0,0 +1,48 @@
1
+ package expo.modules.notifications.notifications.enums;
2
+
3
+ import androidx.core.app.NotificationManagerCompat;
4
+
5
+ public enum NotificationImportance {
6
+ UNSPECIFIED(NotificationManagerCompat.IMPORTANCE_UNSPECIFIED, 1),
7
+ NONE(NotificationManagerCompat.IMPORTANCE_NONE, 2),
8
+ MIN(NotificationManagerCompat.IMPORTANCE_MIN, 3),
9
+ LOW(NotificationManagerCompat.IMPORTANCE_LOW, 4),
10
+ DEFAULT(NotificationManagerCompat.IMPORTANCE_DEFAULT, 5),
11
+ HIGH(NotificationManagerCompat.IMPORTANCE_HIGH, 6),
12
+ MAX(NotificationManagerCompat.IMPORTANCE_MAX, 7),
13
+ UNKNOWN(NotificationManagerCompat.IMPORTANCE_DEFAULT, 0);
14
+
15
+ private final int mNativeImportance;
16
+ private final int mEnumValue;
17
+
18
+ NotificationImportance(int nativeImportance, int enumValue) {
19
+ mNativeImportance = nativeImportance;
20
+ mEnumValue = enumValue;
21
+ }
22
+
23
+ public int getNativeValue() {
24
+ return mNativeImportance;
25
+ }
26
+
27
+ public int getEnumValue() {
28
+ return mEnumValue;
29
+ }
30
+
31
+ public static NotificationImportance fromEnumValue(int value) {
32
+ for (NotificationImportance importance : NotificationImportance.values()) {
33
+ if (importance.getEnumValue() == value) {
34
+ return importance;
35
+ }
36
+ }
37
+ return NotificationImportance.UNKNOWN;
38
+ }
39
+
40
+ public static NotificationImportance fromNativeValue(int value) {
41
+ for (NotificationImportance importance : NotificationImportance.values()) {
42
+ if (importance.getNativeValue() == value) {
43
+ return importance;
44
+ }
45
+ }
46
+ return NotificationImportance.UNKNOWN;
47
+ }
48
+ }
@@ -0,0 +1,51 @@
1
+ package expo.modules.notifications.notifications.enums;
2
+
3
+ import androidx.annotation.Nullable;
4
+ import androidx.core.app.NotificationCompat;
5
+
6
+ /**
7
+ * An enum allowing easy conversion between platform enum and native priority.
8
+ */
9
+ public enum NotificationPriority {
10
+ MIN(NotificationCompat.PRIORITY_MIN, "min"),
11
+ LOW(NotificationCompat.PRIORITY_LOW, "low"),
12
+ DEFAULT(NotificationCompat.PRIORITY_DEFAULT, "default"),
13
+ HIGH(NotificationCompat.PRIORITY_HIGH, "high"),
14
+ MAX(NotificationCompat.PRIORITY_MAX, "max");
15
+
16
+ private final int mNativePriority;
17
+ private final String mEnumValue;
18
+
19
+ NotificationPriority(int nativePriority, String enumValue) {
20
+ mNativePriority = nativePriority;
21
+ mEnumValue = enumValue;
22
+ }
23
+
24
+ public int getNativeValue() {
25
+ return mNativePriority;
26
+ }
27
+
28
+ public String getEnumValue() {
29
+ return mEnumValue;
30
+ }
31
+
32
+ @Nullable
33
+ public static NotificationPriority fromEnumValue(String value) {
34
+ for (NotificationPriority priority : NotificationPriority.values()) {
35
+ if (priority.getEnumValue().equalsIgnoreCase(value)) {
36
+ return priority;
37
+ }
38
+ }
39
+ return null;
40
+ }
41
+
42
+ @Nullable
43
+ public static NotificationPriority fromNativeValue(int value) {
44
+ for (NotificationPriority priority : NotificationPriority.values()) {
45
+ if (priority.getNativeValue() == value) {
46
+ return priority;
47
+ }
48
+ }
49
+ return null;
50
+ }
51
+ }
@@ -0,0 +1,44 @@
1
+ package expo.modules.notifications.notifications.enums;
2
+
3
+ import android.app.Notification;
4
+
5
+ public enum NotificationVisibility {
6
+ PUBLIC(Notification.VISIBILITY_PUBLIC, 1),
7
+ PRIVATE(Notification.VISIBILITY_PRIVATE, 2),
8
+ SECRET(Notification.VISIBILITY_SECRET, 3),
9
+ UNKNOWN(Notification.VISIBILITY_PUBLIC, 0);
10
+
11
+ private final int mNativeVisibility;
12
+ private final int mEnumValue;
13
+
14
+ NotificationVisibility(int nativeVisibility, int enumValue) {
15
+ mNativeVisibility = nativeVisibility;
16
+ mEnumValue = enumValue;
17
+ }
18
+
19
+ public int getNativeValue() {
20
+ return mNativeVisibility;
21
+ }
22
+
23
+ public int getEnumValue() {
24
+ return mEnumValue;
25
+ }
26
+
27
+ public static NotificationVisibility fromEnumValue(int value) {
28
+ for (NotificationVisibility visibility : NotificationVisibility.values()) {
29
+ if (visibility.getEnumValue() == value) {
30
+ return visibility;
31
+ }
32
+ }
33
+ return NotificationVisibility.UNKNOWN;
34
+ }
35
+
36
+ public static NotificationVisibility fromNativeValue(int value) {
37
+ for (NotificationVisibility visibility : NotificationVisibility.values()) {
38
+ if (visibility.getNativeValue() == value) {
39
+ return visibility;
40
+ }
41
+ }
42
+ return NotificationVisibility.UNKNOWN;
43
+ }
44
+ }
@@ -0,0 +1,127 @@
1
+ package expo.modules.notifications.notifications.handling
2
+
3
+ import android.os.Handler
4
+ import android.os.HandlerThread
5
+ import expo.modules.core.ModuleRegistry
6
+ import expo.modules.kotlin.Promise
7
+ import expo.modules.kotlin.modules.Module
8
+ import expo.modules.kotlin.modules.ModuleDefinition
9
+ import expo.modules.kotlin.records.Field
10
+ import expo.modules.kotlin.records.Record
11
+ import expo.modules.notifications.NotificationWasAlreadyHandledException
12
+ import expo.modules.notifications.notifications.interfaces.NotificationListener
13
+ import expo.modules.notifications.notifications.interfaces.NotificationManager
14
+ import expo.modules.notifications.notifications.model.Notification
15
+ import expo.modules.notifications.notifications.model.NotificationBehavior
16
+ import expo.modules.notifications.toLegacyPromise
17
+
18
+ class NotificationBehaviourRecord : Record {
19
+ @Field
20
+ val shouldShowAlert: Boolean = false
21
+
22
+ @Field
23
+ val shouldPlaySound: Boolean = false
24
+
25
+ @Field
26
+ val shouldSetBadge: Boolean = false
27
+
28
+ @Field
29
+ val priority: String? = null
30
+ }
31
+
32
+ /**
33
+ * [NotificationListener] responsible for managing app's reaction to incoming
34
+ * notification.
35
+ *
36
+ *
37
+ * It is responsible for managing lifecycles of [SingleNotificationHandlerTask]s
38
+ * which are responsible: one for each notification. This module serves as holder
39
+ * for all of them and a proxy through which app responds with the behavior.
40
+ */
41
+ open class NotificationsHandler : Module(), NotificationListener {
42
+ private lateinit var notificationManager: NotificationManager
43
+ private lateinit var moduleRegistry: ModuleRegistry
44
+
45
+ /**
46
+ * [HandlerThread] which is the host to the notifications handler.
47
+ */
48
+ private lateinit var notificationsHandlerThread: HandlerThread
49
+
50
+ /**
51
+ * [Handler] on which lifecycle events are executed.
52
+ */
53
+ private lateinit var handler: Handler
54
+
55
+ private val tasksMap = mutableMapOf<String, SingleNotificationHandlerTask>()
56
+
57
+ override fun definition() = ModuleDefinition {
58
+ Name("ExpoNotificationsHandlerModule")
59
+
60
+ OnCreate {
61
+ moduleRegistry = appContext.legacyModuleRegistry
62
+
63
+ // Register the module as a listener in NotificationManager singleton module.
64
+ // Deregistration happens in onDestroy callback.
65
+ notificationManager = requireNotNull(moduleRegistry.getSingletonModule("NotificationManager", NotificationManager::class.java))
66
+ notificationManager.addListener(this@NotificationsHandler)
67
+ notificationsHandlerThread = HandlerThread("NotificationsHandlerThread - " + this.javaClass.toString())
68
+ notificationsHandlerThread.start()
69
+ handler = Handler(notificationsHandlerThread.looper)
70
+ }
71
+
72
+ OnDestroy {
73
+ notificationManager.removeListener(this@NotificationsHandler)
74
+
75
+ tasksMap.values.forEach(SingleNotificationHandlerTask::stop)
76
+
77
+ // We don't have to use `quitSafely` here, cause all tasks were stopped
78
+ notificationsHandlerThread.quit()
79
+ }
80
+
81
+ AsyncFunction("handleNotificationAsync", this@NotificationsHandler::handleNotificationAsync)
82
+ }
83
+
84
+ /**
85
+ * Called by the app with [NotificationBehaviourRecord] representing requested behavior
86
+ * that should be applied to the notification.
87
+ *
88
+ * @param identifier Identifier of the task which asked for behavior.
89
+ * @param behavior Behavior to apply to the notification.
90
+ * @param promise Promise to resolve once the notification is successfully presented
91
+ * or fails to be presented.
92
+ */
93
+ private fun handleNotificationAsync(identifier: String, behavior: NotificationBehaviourRecord, promise: Promise) {
94
+ val task = tasksMap[identifier]
95
+ ?: throw NotificationWasAlreadyHandledException(identifier)
96
+
97
+ with(behavior) {
98
+ task.handleResponse(
99
+ NotificationBehavior(shouldShowAlert, shouldPlaySound, shouldSetBadge, priority),
100
+ promise.toLegacyPromise()
101
+ )
102
+ }
103
+ }
104
+
105
+ /**
106
+ * Callback called by [NotificationManager] to inform its listeners of new messages.
107
+ * Starts up a new [SingleNotificationHandlerTask] which will take it on from here.
108
+ *
109
+ * @param notification Notification received
110
+ */
111
+ override fun onNotificationReceived(notification: Notification) {
112
+ val context = appContext.reactContext ?: return
113
+ val task = SingleNotificationHandlerTask(context, handler, moduleRegistry, notification, this)
114
+ tasksMap[task.identifier] = task
115
+ task.start()
116
+ }
117
+
118
+ /**
119
+ * Callback called once [SingleNotificationHandlerTask] finishes.
120
+ * A cue for removal of the task.
121
+ *
122
+ * @param task Task that just fulfilled its responsibility.
123
+ */
124
+ fun onTaskFinished(task: SingleNotificationHandlerTask) {
125
+ tasksMap.remove(task.identifier)
126
+ }
127
+ }
@@ -0,0 +1,131 @@
1
+ package expo.modules.notifications.notifications.handling;
2
+
3
+ import android.content.Context;
4
+ import android.os.Bundle;
5
+ import android.os.Handler;
6
+ import android.os.ResultReceiver;
7
+
8
+ import expo.modules.core.ModuleRegistry;
9
+ import expo.modules.core.Promise;
10
+ import expo.modules.core.interfaces.services.EventEmitter;
11
+
12
+ import expo.modules.notifications.notifications.NotificationSerializer;
13
+ import expo.modules.notifications.notifications.model.Notification;
14
+ import expo.modules.notifications.notifications.model.NotificationBehavior;
15
+ import expo.modules.notifications.service.NotificationsService;
16
+
17
+ /**
18
+ * A "task" responsible for managing response to a single notification.
19
+ */
20
+ public class SingleNotificationHandlerTask {
21
+ /**
22
+ * Name of the event asking the delegate for behavior.
23
+ */
24
+ private final static String HANDLE_NOTIFICATION_EVENT_NAME = "onHandleNotification";
25
+ /**
26
+ * Name of the event emitted if the delegate doesn't respond in time.
27
+ */
28
+ private final static String HANDLE_NOTIFICATION_TIMEOUT_EVENT_NAME = "onHandleNotificationTimeout";
29
+
30
+ /**
31
+ * Seconds since sending the {@link #HANDLE_NOTIFICATION_EVENT_NAME} until the task
32
+ * is considered timed out.
33
+ */
34
+ private final static int SECONDS_TO_TIMEOUT = 3;
35
+
36
+ private Handler mHandler;
37
+ private EventEmitter mEventEmitter;
38
+ private Notification mNotification;
39
+ private NotificationBehavior mBehavior;
40
+ private Context mContext;
41
+ private NotificationsHandler mDelegate;
42
+
43
+ private Runnable mTimeoutRunnable = SingleNotificationHandlerTask.this::handleTimeout;
44
+
45
+ /* package */ SingleNotificationHandlerTask(Context context, Handler handler, ModuleRegistry moduleRegistry, Notification notification, NotificationsHandler delegate) {
46
+ mContext = context;
47
+ mHandler = handler;
48
+ mEventEmitter = moduleRegistry.getModule(EventEmitter.class);
49
+ mNotification = notification;
50
+ mDelegate = delegate;
51
+ }
52
+
53
+ /**
54
+ * @return Identifier of the task.
55
+ */
56
+ /* package */ String getIdentifier() {
57
+ return mNotification.getNotificationRequest().getIdentifier();
58
+ }
59
+
60
+ /**
61
+ * Starts the task, i.e. sends an event to the app's delegate and starts a timeout
62
+ * after which the task finishes itself.
63
+ */
64
+ /* package */ void start() {
65
+ Bundle eventBody = new Bundle();
66
+ eventBody.putString("id", getIdentifier());
67
+ eventBody.putBundle("notification", NotificationSerializer.toBundle(mNotification));
68
+ mEventEmitter.emit(HANDLE_NOTIFICATION_EVENT_NAME, eventBody);
69
+
70
+ mHandler.postDelayed(mTimeoutRunnable, SECONDS_TO_TIMEOUT * 1000);
71
+ }
72
+
73
+ /**
74
+ * Stops the task abruptly (in case the app is being destroyed and there is no reason
75
+ * to wait for the response anymore).
76
+ */
77
+ /* package */ void stop() {
78
+ finish();
79
+ }
80
+
81
+ /**
82
+ * Informs the task of a response - behavior requested by the app.
83
+ *
84
+ * @param behavior Behavior requested by the app
85
+ * @param promise Promise to fulfill once the behavior is applied to the notification.
86
+ */
87
+ /* package */ void handleResponse(NotificationBehavior behavior, final Promise promise) {
88
+ mBehavior = behavior;
89
+ mHandler.post(new Runnable() {
90
+ @Override
91
+ public void run() {
92
+ NotificationsService.Companion.present(mContext, mNotification, mBehavior, new ResultReceiver(mHandler) {
93
+ @Override
94
+ protected void onReceiveResult(int resultCode, Bundle resultData) {
95
+ super.onReceiveResult(resultCode, resultData);
96
+ if (resultCode == NotificationsService.SUCCESS_CODE) {
97
+ promise.resolve(null);
98
+ } else {
99
+ Exception e = (Exception) resultData.getSerializable(NotificationsService.EXCEPTION_KEY);
100
+ promise.reject("ERR_NOTIFICATION_PRESENTATION_FAILED", "Notification presentation failed.", e);
101
+ }
102
+ }
103
+ });
104
+ finish();
105
+ }
106
+ });
107
+ }
108
+
109
+ /**
110
+ * Callback called by {@link #mTimeoutRunnable} after timeout time elapses.
111
+ * <p>
112
+ * Sends a timeout event to the app.
113
+ */
114
+ private void handleTimeout() {
115
+ Bundle eventBody = new Bundle();
116
+ eventBody.putString("id", getIdentifier());
117
+ eventBody.putBundle("notification", NotificationSerializer.toBundle(mNotification));
118
+ mEventEmitter.emit(HANDLE_NOTIFICATION_TIMEOUT_EVENT_NAME, eventBody);
119
+
120
+ finish();
121
+ }
122
+
123
+ /**
124
+ * Callback called when the task fulfills its responsibility. Clears up {@link #mHandler}
125
+ * and informs {@link #mDelegate} of the task's state.
126
+ */
127
+ private void finish() {
128
+ mHandler.removeCallbacks(mTimeoutRunnable);
129
+ mDelegate.onTaskFinished(this);
130
+ }
131
+ }
@@ -0,0 +1,35 @@
1
+ package expo.modules.notifications.notifications.interfaces;
2
+
3
+ import expo.modules.notifications.notifications.model.Notification;
4
+ import expo.modules.notifications.notifications.model.NotificationBehavior;
5
+ import expo.modules.notifications.notifications.model.NotificationContent;
6
+
7
+ /**
8
+ * An object capable of building a {@link Notification} based
9
+ * on a {@link NotificationContent} spec.
10
+ */
11
+ public interface NotificationBuilder {
12
+ /**
13
+ * Pass in a {@link Notification} based on which the Android notification should be based.
14
+ *
15
+ * @param notification {@link Notification} on which the notification should be based.
16
+ * @return The same instance of {@link NotificationBuilder} updated with the notification.
17
+ */
18
+ NotificationBuilder setNotification(Notification notification);
19
+
20
+ /**
21
+ * Pass in a {@link NotificationBehavior} if you want to override the behavior
22
+ * of the notification, i.e. whether it should show a heads-up alert, set badge, etc.
23
+ *
24
+ * @param behavior {@link NotificationBehavior} to which the presentation effect should conform.
25
+ * @return The same instance of {@link NotificationBuilder} updated with the remote message.
26
+ */
27
+ NotificationBuilder setAllowedBehavior(NotificationBehavior behavior);
28
+
29
+ /**
30
+ * Builds the Android notification based on passed in data.
31
+ *
32
+ * @return Built notification.
33
+ */
34
+ android.app.Notification build();
35
+ }
@@ -0,0 +1,37 @@
1
+ package expo.modules.notifications.notifications.interfaces;
2
+
3
+ import com.google.firebase.messaging.FirebaseMessagingService;
4
+
5
+ import expo.modules.notifications.notifications.model.Notification;
6
+ import expo.modules.notifications.notifications.model.NotificationResponse;
7
+
8
+ /**
9
+ * Interface used to register in {@link NotificationManager}
10
+ * and be notified of new message events.
11
+ */
12
+ public interface NotificationListener {
13
+ /**
14
+ * Callback called when new notification is received.
15
+ *
16
+ * @param notification Notification received
17
+ */
18
+ default void onNotificationReceived(Notification notification) {
19
+ }
20
+
21
+ /**
22
+ * Callback called when new notification response is received.
23
+ *
24
+ * @param response Notification response received
25
+ * @return Whether the notification response has been handled
26
+ */
27
+ default boolean onNotificationResponseReceived(NotificationResponse response) {
28
+ return false;
29
+ }
30
+
31
+ /**
32
+ * Callback called when some notifications are dropped.
33
+ * See {@link FirebaseMessagingService#onDeletedMessages()}
34
+ */
35
+ default void onNotificationsDropped() {
36
+ }
37
+ }
@@ -0,0 +1,22 @@
1
+ package expo.modules.notifications.notifications.interfaces;
2
+
3
+ /**
4
+ * Interface of a singleton module responsible
5
+ * for dispatching new remote message events to {@link NotificationListener}s.
6
+ */
7
+ public interface NotificationManager {
8
+ /**
9
+ * Registers a {@link NotificationListener}.
10
+ *
11
+ * @param listener Listener to be notified of new message events.
12
+ */
13
+ void addListener(NotificationListener listener);
14
+
15
+ /**
16
+ * Unregisters a {@link NotificationListener}.
17
+ *
18
+ * @param listener Listener previously registered
19
+ * with {@link NotificationManager#addListener(NotificationListener)}.
20
+ */
21
+ void removeListener(NotificationListener listener);
22
+ }
@@ -0,0 +1,11 @@
1
+ package expo.modules.notifications.notifications.interfaces;
2
+
3
+ import android.app.Notification;
4
+
5
+ import androidx.annotation.Nullable;
6
+
7
+ public interface NotificationPresentationEffect {
8
+ boolean onNotificationPresented(@Nullable String tag, int id, Notification notification);
9
+
10
+ boolean onNotificationPresentationFailed(@Nullable String tag, int id, Notification notification);
11
+ }
@@ -0,0 +1,7 @@
1
+ package expo.modules.notifications.notifications.interfaces;
2
+
3
+ public interface NotificationPresentationEffectsManager extends NotificationPresentationEffect {
4
+ void addEffect(NotificationPresentationEffect effector);
5
+
6
+ void removeEffect(NotificationPresentationEffect effector);
7
+ }
@@ -0,0 +1,19 @@
1
+ package expo.modules.notifications.notifications.interfaces;
2
+
3
+ import android.os.Build;
4
+ import android.os.Parcelable;
5
+
6
+ import androidx.annotation.Nullable;
7
+ import androidx.annotation.RequiresApi;
8
+
9
+ /**
10
+ * An interface specifying source of the notification, to be implemented
11
+ * by concrete classes.
12
+ */
13
+ public interface NotificationTrigger extends Parcelable {
14
+ @Nullable
15
+ @RequiresApi(api = Build.VERSION_CODES.O)
16
+ default String getNotificationChannel() {
17
+ return null;
18
+ }
19
+ }
@@ -0,0 +1,20 @@
1
+ package expo.modules.notifications.notifications.interfaces;
2
+
3
+ import java.io.Serializable;
4
+ import java.util.Date;
5
+
6
+ import androidx.annotation.Nullable;
7
+ import expo.modules.notifications.service.delegates.SharedPreferencesNotificationsStore;
8
+
9
+ /**
10
+ * A notification trigger that is serializable - this ensures {@link SharedPreferencesNotificationsStore}
11
+ * is capable of storing it in the device's memory.
12
+ */
13
+ public interface SchedulableNotificationTrigger extends NotificationTrigger, Serializable {
14
+ /**
15
+ * @return Next date at which the notification should be triggered. Returns `null`
16
+ * if the notification will not trigger in the future (it can be removed then).
17
+ */
18
+ @Nullable
19
+ Date nextTriggerDate();
20
+ }
@@ -0,0 +1,59 @@
1
+ package expo.modules.notifications.notifications.model;
2
+
3
+ import android.os.Parcel;
4
+ import android.os.Parcelable;
5
+
6
+ import java.util.Date;
7
+
8
+ /**
9
+ * A class representing a single notification received at a particular moment ({@link #mDate}).
10
+ */
11
+ public class Notification implements Parcelable {
12
+ private NotificationRequest mRequest;
13
+ private Date mDate;
14
+
15
+ public Notification(NotificationRequest request) {
16
+ this(request, new Date());
17
+ }
18
+
19
+ public Notification(NotificationRequest request, Date date) {
20
+ mRequest = request;
21
+ mDate = date;
22
+ }
23
+
24
+ protected Notification(Parcel in) {
25
+ mRequest = in.readParcelable(getClass().getClassLoader());
26
+ mDate = new Date(in.readLong());
27
+ }
28
+
29
+ public Date getDate() {
30
+ return mDate;
31
+ }
32
+
33
+ public NotificationRequest getNotificationRequest() {
34
+ return mRequest;
35
+ }
36
+
37
+ public static final Creator<Notification> CREATOR = new Creator<Notification>() {
38
+ @Override
39
+ public Notification createFromParcel(Parcel in) {
40
+ return new Notification(in);
41
+ }
42
+
43
+ @Override
44
+ public Notification[] newArray(int size) {
45
+ return new Notification[size];
46
+ }
47
+ };
48
+
49
+ @Override
50
+ public int describeContents() {
51
+ return 0;
52
+ }
53
+
54
+ @Override
55
+ public void writeToParcel(Parcel dest, int flags) {
56
+ dest.writeParcelable(mRequest, 0);
57
+ dest.writeLong(mDate.getTime());
58
+ }
59
+ }
@@ -0,0 +1,63 @@
1
+ package expo.modules.notifications.notifications.model;
2
+
3
+ import android.os.Parcel;
4
+ import android.os.Parcelable;
5
+
6
+ import java.io.Serializable;
7
+
8
+ /**
9
+ * A class representing a single notification action button.
10
+ */
11
+ public class NotificationAction implements Parcelable, Serializable {
12
+ private final String mIdentifier;
13
+ private final String mTitle;
14
+ private final boolean mOpensAppToForeground;
15
+
16
+ public NotificationAction(String identifier, String title, boolean opensAppToForeground) {
17
+ mIdentifier = identifier;
18
+ mTitle = title;
19
+ mOpensAppToForeground = opensAppToForeground;
20
+ }
21
+
22
+ protected NotificationAction(Parcel in) {
23
+ mIdentifier = in.readString();
24
+ mTitle = in.readString();
25
+ mOpensAppToForeground = in.readByte() != 0;
26
+ }
27
+
28
+ @Override
29
+ public void writeToParcel(Parcel dest, int flags) {
30
+ dest.writeString(mIdentifier);
31
+ dest.writeString(mTitle);
32
+ dest.writeByte((byte) (mOpensAppToForeground ? 1 : 0));
33
+ }
34
+
35
+ @Override
36
+ public int describeContents() {
37
+ return 0;
38
+ }
39
+
40
+ public static final Creator<NotificationAction> CREATOR = new Creator<NotificationAction>() {
41
+ @Override
42
+ public NotificationAction createFromParcel(Parcel in) {
43
+ return new NotificationAction(in);
44
+ }
45
+
46
+ @Override
47
+ public NotificationAction[] newArray(int size) {
48
+ return new NotificationAction[size];
49
+ }
50
+ };
51
+
52
+ public String getIdentifier() {
53
+ return mIdentifier;
54
+ }
55
+
56
+ public String getTitle() {
57
+ return mTitle;
58
+ }
59
+
60
+ public boolean opensAppToForeground() {
61
+ return mOpensAppToForeground;
62
+ }
63
+ }