react-native-mapp-plugin 1.0.4-beta3 → 1.0.4-beta7

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 (217) hide show
  1. package/.idea/React-native-plugin.iml +12 -0
  2. package/.idea/modules.xml +8 -0
  3. package/{android/.idea → .idea}/vcs.xml +5 -5
  4. package/.idea/workspace.xml +85 -0
  5. package/.vscode/settings.json +2 -2
  6. package/CustomEvent.js +47 -47
  7. package/Mapp.js +414 -414
  8. package/MappEventEmitter.js +41 -41
  9. package/README.md +93 -93
  10. package/RNMappPlugin.podspec +29 -29
  11. package/__package.json +37 -37
  12. package/android/.classpath +6 -6
  13. package/android/.project +34 -34
  14. package/android/.settings/org.eclipse.buildship.core.prefs +13 -13
  15. package/android/build.gradle +75 -75
  16. package/android/gradle/wrapper/gradle-wrapper.properties +7 -7
  17. package/android/gradle.properties +15 -15
  18. package/android/src/main/AndroidManifest.xml +65 -65
  19. package/android/src/main/java/com/reactlibrary/ActivityListener.java +43 -43
  20. package/android/src/main/java/com/reactlibrary/Event.java +28 -28
  21. package/android/src/main/java/com/reactlibrary/EventEmitter.java +153 -153
  22. package/android/src/main/java/com/reactlibrary/HelperActivity.java +254 -254
  23. package/android/src/main/java/com/reactlibrary/IntentNotificationEvent.java +54 -54
  24. package/android/src/main/java/com/reactlibrary/MessageService.java +21 -21
  25. package/android/src/main/java/com/reactlibrary/MyPushBroadcastReceiver.java +43 -43
  26. package/android/src/main/java/com/reactlibrary/PushNotificationEvent.java +37 -37
  27. package/android/src/main/java/com/reactlibrary/RNMappPluginModule.java +601 -601
  28. package/android/src/main/java/com/reactlibrary/RNMappPluginPackage.java +34 -34
  29. package/android/src/main/java/com/reactlibrary/RNUtils.java +191 -191
  30. package/android/src/main/java/com/reactlibrary/RequestPermissionsTask.java +58 -58
  31. package/android/src/main/res/values/styles.xml +14 -14
  32. package/index.js +8 -8
  33. package/ios/Frameworks/AppoxeeInapp.framework/Versions/A/Headers/APXInBoxMessage.h +101 -101
  34. package/ios/Frameworks/AppoxeeInapp.framework/Versions/A/Headers/AppoxeeInapp.h +153 -153
  35. package/ios/Frameworks/AppoxeeInapp.framework/Versions/A/Headers/AppoxeeInappSDK.h +9 -9
  36. package/ios/Frameworks/AppoxeeLocationServices.framework/Versions/A/Headers/AppoxeeLocationManager.h +122 -122
  37. package/ios/Frameworks/AppoxeeLocationServices.framework/Versions/A/Headers/AppoxeeLocationServices.h +10 -10
  38. package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXClientDevice.h +26 -26
  39. package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXInterfaceService.h +49 -49
  40. package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXPushNotification.h +92 -92
  41. package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXPushNotificationAction.h +20 -20
  42. package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXPushNotificationActionButton.h +19 -19
  43. package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXPushNotificationActionButtonAction.h +34 -34
  44. package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXRichMessage.h +58 -58
  45. package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/Appoxee.h +840 -840
  46. package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/AppoxeeManager.h +385 -385
  47. package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/AppoxeeSDK.h +12 -12
  48. package/ios/Frameworks/AppoxeeSDKResources.bundle/app_conf.json +340 -340
  49. package/ios/RNMappEventEmmiter.h +25 -25
  50. package/ios/RNMappEventEmmiter.m +221 -221
  51. package/ios/RNMappPluginModule.h +10 -10
  52. package/ios/RNMappPluginModule.m +311 -311
  53. package/iospatch.sh +13 -13
  54. package/jsdoc.conf.json +14 -14
  55. package/package.json +49 -36
  56. package/android/.gradle/5.6.4/executionHistory/executionHistory.bin +0 -0
  57. package/android/.gradle/5.6.4/executionHistory/executionHistory.lock +0 -0
  58. package/android/.gradle/5.6.4/fileChanges/last-build.bin +0 -0
  59. package/android/.gradle/5.6.4/fileContent/fileContent.lock +0 -0
  60. package/android/.gradle/5.6.4/fileHashes/fileHashes.bin +0 -0
  61. package/android/.gradle/5.6.4/fileHashes/fileHashes.lock +0 -0
  62. package/android/.gradle/5.6.4/fileHashes/resourceHashesCache.bin +0 -0
  63. package/android/.gradle/5.6.4/gc.properties +0 -0
  64. package/android/.gradle/5.6.4/javaCompile/classAnalysis.bin +0 -0
  65. package/android/.gradle/5.6.4/javaCompile/jarAnalysis.bin +0 -0
  66. package/android/.gradle/5.6.4/javaCompile/javaCompile.lock +0 -0
  67. package/android/.gradle/5.6.4/javaCompile/taskHistory.bin +0 -0
  68. package/android/.gradle/7.0-rc-1/dependencies-accessors/dependencies-accessors.lock +0 -0
  69. package/android/.gradle/7.0-rc-1/dependencies-accessors/gc.properties +0 -0
  70. package/android/.gradle/7.0-rc-1/executionHistory/executionHistory.lock +0 -0
  71. package/android/.gradle/7.0-rc-1/fileChanges/last-build.bin +0 -0
  72. package/android/.gradle/7.0-rc-1/fileHashes/fileHashes.lock +0 -0
  73. package/android/.gradle/7.0-rc-1/gc.properties +0 -0
  74. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  75. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  76. package/android/.gradle/checksums/checksums.lock +0 -0
  77. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  78. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  79. package/android/.gradle/configuration-cache/gc.properties +0 -0
  80. package/android/.gradle/vcs-1/gc.properties +0 -0
  81. package/android/.idea/compiler.xml +0 -6
  82. package/android/.idea/gradle.xml +0 -21
  83. package/android/.idea/jarRepositories.xml +0 -35
  84. package/android/.idea/libraries/Gradle__androidx_activity_activity_1_0_0_aar.xml +0 -13
  85. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml +0 -13
  86. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_2_0_aar.xml +0 -16
  87. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_2_0_aar.xml +0 -13
  88. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +0 -11
  89. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml +0 -13
  90. package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +0 -13
  91. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +0 -11
  92. package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +0 -16
  93. package/android/.idea/libraries/Gradle__androidx_core_core_1_3_1_aar.xml +0 -16
  94. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -13
  95. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -13
  96. package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +0 -13
  97. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -16
  98. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_1_0_aar.xml +0 -16
  99. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -13
  100. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +0 -13
  101. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +0 -13
  102. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_v13_1_0_0_aar.xml +0 -13
  103. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml +0 -13
  104. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_1_0.xml +0 -11
  105. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +0 -13
  106. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml +0 -13
  107. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_1_0_aar.xml +0 -13
  108. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_aar.xml +0 -13
  109. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -13
  110. package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +0 -13
  111. package/android/.idea/libraries/Gradle__androidx_media_media_1_0_1_aar.xml +0 -16
  112. package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +0 -16
  113. package/android/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_0_0_aar.xml +0 -16
  114. package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml +0 -13
  115. package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +0 -13
  116. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -16
  117. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +0 -13
  118. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +0 -13
  119. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +0 -13
  120. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -13
  121. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_0_8_1_aar.xml +0 -15
  122. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_0_8_1_aar.xml +0 -15
  123. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_0_8_1_aar.xml +0 -15
  124. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_0_8_1_aar.xml +0 -16
  125. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp_0_8_1_aar.xml +0 -15
  126. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_20_1_aar.xml +0 -19
  127. package/android/.idea/libraries/Gradle__com_facebook_stetho_stetho_1_2_0.xml +0 -13
  128. package/android/.idea/libraries/Gradle__com_facebook_stetho_stetho_okhttp_1_2_0.xml +0 -13
  129. package/android/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_core_2_2_3.xml +0 -13
  130. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_base_17_0_0_aar.xml +0 -13
  131. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_17_0_0_aar.xml +0 -13
  132. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_location_16_0_0_aar.xml +0 -11
  133. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_places_placereport_16_0_0_aar.xml +0 -11
  134. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_stats_17_0_0_aar.xml +0 -11
  135. package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_17_0_0_aar.xml +0 -11
  136. package/android/.idea/libraries/Gradle__com_google_auto_value_auto_value_annotations_1_6_5.xml +0 -13
  137. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_0.xml +0 -13
  138. package/android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5.xml +0 -13
  139. package/android/.idea/libraries/Gradle__com_google_dagger_dagger_2_24.xml +0 -13
  140. package/android/.idea/libraries/Gradle__com_google_firebase_firebase_common_19_0_0_aar.xml +0 -15
  141. package/android/.idea/libraries/Gradle__com_google_firebase_firebase_iid_20_0_0_aar.xml +0 -13
  142. package/android/.idea/libraries/Gradle__com_google_firebase_firebase_iid_interop_17_0_0_aar.xml +0 -11
  143. package/android/.idea/libraries/Gradle__com_google_firebase_firebase_measurement_connector_18_0_0_aar.xml +0 -11
  144. package/android/.idea/libraries/Gradle__com_google_firebase_firebase_messaging_20_0_0_aar.xml +0 -13
  145. package/android/.idea/libraries/Gradle__com_mapp_sdk_mapp_android_6_0_17_special7_aar.xml +0 -16
  146. package/android/.idea/libraries/Gradle__com_nineoldandroids_library_2_4_0.xml +0 -13
  147. package/android/.idea/libraries/Gradle__com_parse_bolts_bolts_android_1_1_4.xml +0 -13
  148. package/android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_5_0.xml +0 -13
  149. package/android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_ws_2_5_0.xml +0 -13
  150. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_6_0.xml +0 -13
  151. package/android/.idea/libraries/Gradle__commons_cli_commons_cli_1_2.xml +0 -13
  152. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
  153. package/android/.idea/libraries/Gradle__org_webkit_android_jsc_r174650_aar.xml +0 -11
  154. package/android/.idea/misc.xml +0 -9
  155. package/android/.idea/modules/android.iml +0 -122
  156. package/android/.idea/modules/app/android.app.iml +0 -26
  157. package/android/.idea/modules.xml +0 -9
  158. package/android/build/generated/source/buildConfig/debug/com/reactlibrary/BuildConfig.java +0 -18
  159. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +0 -70
  160. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output.json +0 -1
  161. package/android/build/intermediates/aar_main_jar/debug/classes.jar +0 -0
  162. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +0 -1
  163. package/android/build/intermediates/annotations_typedef_file/debug/typedefs.txt +0 -0
  164. package/android/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/R.jar +0 -0
  165. package/android/build/intermediates/compile_symbol_list/debug/R.txt +0 -2993
  166. package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
  167. package/android/build/intermediates/incremental/debug-mergeNativeLibs/merge-state +0 -0
  168. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  169. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  170. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
  171. package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +0 -1
  172. package/android/build/intermediates/incremental/packageDebugResources/merged.dir/values/values.xml +0 -13
  173. package/android/build/intermediates/incremental/packageDebugResources/merger.xml +0 -11
  174. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/ActivityListener.class +0 -0
  175. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/BuildConfig.class +0 -0
  176. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/Event.class +0 -0
  177. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/EventEmitter$1.class +0 -0
  178. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/EventEmitter$2.class +0 -0
  179. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/EventEmitter$3.class +0 -0
  180. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/EventEmitter.class +0 -0
  181. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/HelperActivity$1.class +0 -0
  182. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/HelperActivity$2.class +0 -0
  183. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/HelperActivity$ActivityResult.class +0 -0
  184. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/HelperActivity.class +0 -0
  185. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/IntentNotificationEvent.class +0 -0
  186. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/MessageService.class +0 -0
  187. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/MyPushBroadcastReceiver.class +0 -0
  188. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/PushNotificationEvent.class +0 -0
  189. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginModule$1.class +0 -0
  190. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginModule$2.class +0 -0
  191. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginModule$3.class +0 -0
  192. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginModule$4.class +0 -0
  193. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginModule.class +0 -0
  194. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginPackage.class +0 -0
  195. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNUtils$1.class +0 -0
  196. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNUtils.class +0 -0
  197. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RequestPermissionsTask$Callback.class +0 -0
  198. package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RequestPermissionsTask.class +0 -0
  199. package/android/build/intermediates/library_manifest/debug/AndroidManifest.xml +0 -70
  200. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +0 -3
  201. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +0 -134
  202. package/android/build/intermediates/merged_java_res/debug/out.jar +0 -0
  203. package/android/build/intermediates/merged_manifests/debug/output.json +0 -1
  204. package/android/build/intermediates/packaged_res/debug/values/values.xml +0 -13
  205. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +0 -1856
  206. package/android/build/outputs/aar/android-debug.aar +0 -0
  207. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -135
  208. package/android/local.properties +0 -8
  209. package/ios/Frameworks/AppoxeeInapp.framework/AppoxeeInapp +0 -1
  210. package/ios/Frameworks/AppoxeeInapp.framework/Headers +0 -1
  211. package/ios/Frameworks/AppoxeeInapp.framework/Versions/Current +0 -1
  212. package/ios/Frameworks/AppoxeeLocationServices.framework/AppoxeeLocationServices +0 -1
  213. package/ios/Frameworks/AppoxeeLocationServices.framework/Headers +0 -1
  214. package/ios/Frameworks/AppoxeeLocationServices.framework/Versions/Current +0 -1
  215. package/ios/Frameworks/AppoxeeSDK.framework/AppoxeeSDK +0 -1
  216. package/ios/Frameworks/AppoxeeSDK.framework/Headers +0 -1
  217. package/ios/Frameworks/AppoxeeSDK.framework/Versions/Current +0 -1
@@ -1,153 +1,153 @@
1
- /* Copyright Urban Airship and Contributors */
2
-
3
- package com.reactlibrary;
4
-
5
-
6
- import android.os.Handler;
7
- import android.os.Looper;
8
-
9
-
10
- import androidx.annotation.MainThread;
11
-
12
- import com.facebook.react.bridge.ReactContext;
13
- import com.facebook.react.modules.core.RCTNativeAppEventEmitter;
14
-
15
- import java.util.ArrayList;
16
- import java.util.HashSet;
17
- import java.util.List;
18
- import java.util.Set;
19
-
20
-
21
-
22
-
23
- /**
24
- * Created by Aleksandar Marinkovic on 2019-05-15.
25
- * Copyright (c) 2019 MAPP.
26
- */
27
- class EventEmitter {
28
-
29
- private static EventEmitter sharedInstance = new EventEmitter();
30
-
31
- private final List<Event> pendingEvents = new ArrayList<>();
32
- private final Set<String> knownListeners = new HashSet<>();
33
- private final Handler mainHandler = new Handler(Looper.getMainLooper());
34
-
35
- private long listenerCount;
36
- private ReactContext reactContext;
37
-
38
- /**
39
- * Returns the shared {@link EventEmitter} instance.
40
- *
41
- * @return The shared {@link EventEmitter} instance.
42
- */
43
- static EventEmitter shared() {
44
- return sharedInstance;
45
- }
46
-
47
- /**
48
- * Attaches the react context.
49
- *
50
- * @param reactContext The react context.
51
- */
52
- void attachReactContext(final ReactContext reactContext) {
53
- mainHandler.post(new Runnable() {
54
- @Override
55
- public void run() {
56
- EventEmitter.this.reactContext = reactContext;
57
- sendPendingEvents();
58
- }
59
- });
60
- }
61
-
62
- /**
63
- * Sends an event to the JS layer.
64
- *
65
- * @param event The event.
66
- */
67
- void sendEvent(final Event event) {
68
- mainHandler.post(new Runnable() {
69
- @Override
70
- public void run() {
71
- synchronized (knownListeners) {
72
- if (!knownListeners.contains(event.getName()) || !emit(event)) {
73
- pendingEvents.add(event);
74
- }
75
- }
76
- }
77
- });
78
- }
79
-
80
- /**
81
- * Called when a new listener is added for a specified event name.
82
- *
83
- * @param eventName The event name.
84
- */
85
- void addAndroidListener(String eventName) {
86
- synchronized (knownListeners) {
87
- listenerCount++;
88
- knownListeners.add(eventName);
89
- }
90
-
91
- mainHandler.post(new Runnable() {
92
- @Override
93
- public void run() {
94
- sendPendingEvents();
95
- }
96
- });
97
- }
98
-
99
- /**
100
- * Called when listeners are removed.
101
- *
102
- * @param count The count of listeners.
103
- */
104
- void removeAndroidListeners(int count) {
105
- synchronized (knownListeners) {
106
- listenerCount -= count;
107
- if (listenerCount <= 0) {
108
- listenerCount = 0;
109
- knownListeners.clear();
110
- }
111
- }
112
- }
113
-
114
- /**
115
- * Attempts to send pending events.
116
- */
117
- @MainThread
118
- private void sendPendingEvents() {
119
- synchronized (knownListeners) {
120
- for (Event event : new ArrayList<>(pendingEvents)) {
121
- if (knownListeners.contains(event.getName())) {
122
- // Remove the event first before attempting to send. If it fails to
123
- // send it will get added back to pendingEvents.
124
- pendingEvents.remove(event);
125
- sendEvent(event);
126
- }
127
- }
128
- }
129
- }
130
-
131
- /**
132
- * Helper method to emit data.
133
- *
134
- * @param event The event.
135
- * @return {@code true} if the event was emitted, otherwise {@code false}.
136
- */
137
- @MainThread
138
- private boolean emit(final Event event) {
139
- ReactContext reactContext = this.reactContext;
140
- if (reactContext == null || !reactContext.hasActiveCatalystInstance()) {
141
- return false;
142
- }
143
-
144
- try {
145
- reactContext.getJSModule(RCTNativeAppEventEmitter.class).emit(event.getName(), event.getBody());
146
- } catch (Exception e) {
147
- return false;
148
- }
149
-
150
- return true;
151
- }
152
-
153
- }
1
+ /* Copyright Urban Airship and Contributors */
2
+
3
+ package com.reactlibrary;
4
+
5
+
6
+ import android.os.Handler;
7
+ import android.os.Looper;
8
+
9
+
10
+ import androidx.annotation.MainThread;
11
+
12
+ import com.facebook.react.bridge.ReactContext;
13
+ import com.facebook.react.modules.core.RCTNativeAppEventEmitter;
14
+
15
+ import java.util.ArrayList;
16
+ import java.util.HashSet;
17
+ import java.util.List;
18
+ import java.util.Set;
19
+
20
+
21
+
22
+
23
+ /**
24
+ * Created by Aleksandar Marinkovic on 2019-05-15.
25
+ * Copyright (c) 2019 MAPP.
26
+ */
27
+ class EventEmitter {
28
+
29
+ private static EventEmitter sharedInstance = new EventEmitter();
30
+
31
+ private final List<Event> pendingEvents = new ArrayList<>();
32
+ private final Set<String> knownListeners = new HashSet<>();
33
+ private final Handler mainHandler = new Handler(Looper.getMainLooper());
34
+
35
+ private long listenerCount;
36
+ private ReactContext reactContext;
37
+
38
+ /**
39
+ * Returns the shared {@link EventEmitter} instance.
40
+ *
41
+ * @return The shared {@link EventEmitter} instance.
42
+ */
43
+ static EventEmitter shared() {
44
+ return sharedInstance;
45
+ }
46
+
47
+ /**
48
+ * Attaches the react context.
49
+ *
50
+ * @param reactContext The react context.
51
+ */
52
+ void attachReactContext(final ReactContext reactContext) {
53
+ mainHandler.post(new Runnable() {
54
+ @Override
55
+ public void run() {
56
+ EventEmitter.this.reactContext = reactContext;
57
+ sendPendingEvents();
58
+ }
59
+ });
60
+ }
61
+
62
+ /**
63
+ * Sends an event to the JS layer.
64
+ *
65
+ * @param event The event.
66
+ */
67
+ void sendEvent(final Event event) {
68
+ mainHandler.post(new Runnable() {
69
+ @Override
70
+ public void run() {
71
+ synchronized (knownListeners) {
72
+ if (!knownListeners.contains(event.getName()) || !emit(event)) {
73
+ pendingEvents.add(event);
74
+ }
75
+ }
76
+ }
77
+ });
78
+ }
79
+
80
+ /**
81
+ * Called when a new listener is added for a specified event name.
82
+ *
83
+ * @param eventName The event name.
84
+ */
85
+ void addAndroidListener(String eventName) {
86
+ synchronized (knownListeners) {
87
+ listenerCount++;
88
+ knownListeners.add(eventName);
89
+ }
90
+
91
+ mainHandler.post(new Runnable() {
92
+ @Override
93
+ public void run() {
94
+ sendPendingEvents();
95
+ }
96
+ });
97
+ }
98
+
99
+ /**
100
+ * Called when listeners are removed.
101
+ *
102
+ * @param count The count of listeners.
103
+ */
104
+ void removeAndroidListeners(int count) {
105
+ synchronized (knownListeners) {
106
+ listenerCount -= count;
107
+ if (listenerCount <= 0) {
108
+ listenerCount = 0;
109
+ knownListeners.clear();
110
+ }
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Attempts to send pending events.
116
+ */
117
+ @MainThread
118
+ private void sendPendingEvents() {
119
+ synchronized (knownListeners) {
120
+ for (Event event : new ArrayList<>(pendingEvents)) {
121
+ if (knownListeners.contains(event.getName())) {
122
+ // Remove the event first before attempting to send. If it fails to
123
+ // send it will get added back to pendingEvents.
124
+ pendingEvents.remove(event);
125
+ sendEvent(event);
126
+ }
127
+ }
128
+ }
129
+ }
130
+
131
+ /**
132
+ * Helper method to emit data.
133
+ *
134
+ * @param event The event.
135
+ * @return {@code true} if the event was emitted, otherwise {@code false}.
136
+ */
137
+ @MainThread
138
+ private boolean emit(final Event event) {
139
+ ReactContext reactContext = this.reactContext;
140
+ if (reactContext == null || !reactContext.hasActiveCatalystInstance()) {
141
+ return false;
142
+ }
143
+
144
+ try {
145
+ reactContext.getJSModule(RCTNativeAppEventEmitter.class).emit(event.getName(), event.getBody());
146
+ } catch (Exception e) {
147
+ return false;
148
+ }
149
+
150
+ return true;
151
+ }
152
+
153
+ }