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.
- package/.idea/React-native-plugin.iml +12 -0
- package/.idea/modules.xml +8 -0
- package/{android/.idea → .idea}/vcs.xml +5 -5
- package/.idea/workspace.xml +85 -0
- package/.vscode/settings.json +2 -2
- package/CustomEvent.js +47 -47
- package/Mapp.js +414 -414
- package/MappEventEmitter.js +41 -41
- package/README.md +93 -93
- package/RNMappPlugin.podspec +29 -29
- package/__package.json +37 -37
- package/android/.classpath +6 -6
- package/android/.project +34 -34
- package/android/.settings/org.eclipse.buildship.core.prefs +13 -13
- package/android/build.gradle +75 -75
- package/android/gradle/wrapper/gradle-wrapper.properties +7 -7
- package/android/gradle.properties +15 -15
- package/android/src/main/AndroidManifest.xml +65 -65
- package/android/src/main/java/com/reactlibrary/ActivityListener.java +43 -43
- package/android/src/main/java/com/reactlibrary/Event.java +28 -28
- package/android/src/main/java/com/reactlibrary/EventEmitter.java +153 -153
- package/android/src/main/java/com/reactlibrary/HelperActivity.java +254 -254
- package/android/src/main/java/com/reactlibrary/IntentNotificationEvent.java +54 -54
- package/android/src/main/java/com/reactlibrary/MessageService.java +21 -21
- package/android/src/main/java/com/reactlibrary/MyPushBroadcastReceiver.java +43 -43
- package/android/src/main/java/com/reactlibrary/PushNotificationEvent.java +37 -37
- package/android/src/main/java/com/reactlibrary/RNMappPluginModule.java +601 -601
- package/android/src/main/java/com/reactlibrary/RNMappPluginPackage.java +34 -34
- package/android/src/main/java/com/reactlibrary/RNUtils.java +191 -191
- package/android/src/main/java/com/reactlibrary/RequestPermissionsTask.java +58 -58
- package/android/src/main/res/values/styles.xml +14 -14
- package/index.js +8 -8
- package/ios/Frameworks/AppoxeeInapp.framework/Versions/A/Headers/APXInBoxMessage.h +101 -101
- package/ios/Frameworks/AppoxeeInapp.framework/Versions/A/Headers/AppoxeeInapp.h +153 -153
- package/ios/Frameworks/AppoxeeInapp.framework/Versions/A/Headers/AppoxeeInappSDK.h +9 -9
- package/ios/Frameworks/AppoxeeLocationServices.framework/Versions/A/Headers/AppoxeeLocationManager.h +122 -122
- package/ios/Frameworks/AppoxeeLocationServices.framework/Versions/A/Headers/AppoxeeLocationServices.h +10 -10
- package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXClientDevice.h +26 -26
- package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXInterfaceService.h +49 -49
- package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXPushNotification.h +92 -92
- package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXPushNotificationAction.h +20 -20
- package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXPushNotificationActionButton.h +19 -19
- package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXPushNotificationActionButtonAction.h +34 -34
- package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/APXRichMessage.h +58 -58
- package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/Appoxee.h +840 -840
- package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/AppoxeeManager.h +385 -385
- package/ios/Frameworks/AppoxeeSDK.framework/Versions/A/Headers/AppoxeeSDK.h +12 -12
- package/ios/Frameworks/AppoxeeSDKResources.bundle/app_conf.json +340 -340
- package/ios/RNMappEventEmmiter.h +25 -25
- package/ios/RNMappEventEmmiter.m +221 -221
- package/ios/RNMappPluginModule.h +10 -10
- package/ios/RNMappPluginModule.m +311 -311
- package/iospatch.sh +13 -13
- package/jsdoc.conf.json +14 -14
- package/package.json +49 -36
- package/android/.gradle/5.6.4/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/5.6.4/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/5.6.4/fileChanges/last-build.bin +0 -0
- package/android/.gradle/5.6.4/fileContent/fileContent.lock +0 -0
- package/android/.gradle/5.6.4/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/5.6.4/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/5.6.4/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/5.6.4/gc.properties +0 -0
- package/android/.gradle/5.6.4/javaCompile/classAnalysis.bin +0 -0
- package/android/.gradle/5.6.4/javaCompile/jarAnalysis.bin +0 -0
- package/android/.gradle/5.6.4/javaCompile/javaCompile.lock +0 -0
- package/android/.gradle/5.6.4/javaCompile/taskHistory.bin +0 -0
- package/android/.gradle/7.0-rc-1/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.0-rc-1/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.0-rc-1/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.0-rc-1/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.0-rc-1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.0-rc-1/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/configuration-cache/gc.properties +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.idea/compiler.xml +0 -6
- package/android/.idea/gradle.xml +0 -21
- package/android/.idea/jarRepositories.xml +0 -35
- package/android/.idea/libraries/Gradle__androidx_activity_activity_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_2_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_2_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +0 -11
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +0 -11
- package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_core_core_1_3_1_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_1_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_v13_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_1_0.xml +0 -11
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_1_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_media_media_1_0_1_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_0_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_0_8_1_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_0_8_1_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_0_8_1_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_0_8_1_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp_0_8_1_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_20_1_aar.xml +0 -19
- package/android/.idea/libraries/Gradle__com_facebook_stetho_stetho_1_2_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_stetho_stetho_okhttp_1_2_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_core_2_2_3.xml +0 -13
- package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_base_17_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_17_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_location_16_0_0_aar.xml +0 -11
- package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_places_placereport_16_0_0_aar.xml +0 -11
- package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_stats_17_0_0_aar.xml +0 -11
- package/android/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_17_0_0_aar.xml +0 -11
- package/android/.idea/libraries/Gradle__com_google_auto_value_auto_value_annotations_1_6_5.xml +0 -13
- package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5.xml +0 -13
- package/android/.idea/libraries/Gradle__com_google_dagger_dagger_2_24.xml +0 -13
- package/android/.idea/libraries/Gradle__com_google_firebase_firebase_common_19_0_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_google_firebase_firebase_iid_20_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_google_firebase_firebase_iid_interop_17_0_0_aar.xml +0 -11
- package/android/.idea/libraries/Gradle__com_google_firebase_firebase_measurement_connector_18_0_0_aar.xml +0 -11
- package/android/.idea/libraries/Gradle__com_google_firebase_firebase_messaging_20_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_mapp_sdk_mapp_android_6_0_17_special7_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__com_nineoldandroids_library_2_4_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_parse_bolts_bolts_android_1_1_4.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_2_5_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okhttp_okhttp_ws_2_5_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_6_0.xml +0 -13
- package/android/.idea/libraries/Gradle__commons_cli_commons_cli_1_2.xml +0 -13
- package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
- package/android/.idea/libraries/Gradle__org_webkit_android_jsc_r174650_aar.xml +0 -11
- package/android/.idea/misc.xml +0 -9
- package/android/.idea/modules/android.iml +0 -122
- package/android/.idea/modules/app/android.app.iml +0 -26
- package/android/.idea/modules.xml +0 -9
- package/android/build/generated/source/buildConfig/debug/com/reactlibrary/BuildConfig.java +0 -18
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +0 -70
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output.json +0 -1
- package/android/build/intermediates/aar_main_jar/debug/classes.jar +0 -0
- package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +0 -1
- package/android/build/intermediates/annotations_typedef_file/debug/typedefs.txt +0 -0
- package/android/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/R.txt +0 -2993
- package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
- package/android/build/intermediates/incremental/debug-mergeNativeLibs/merge-state +0 -0
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
- package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
- package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +0 -1
- package/android/build/intermediates/incremental/packageDebugResources/merged.dir/values/values.xml +0 -13
- package/android/build/intermediates/incremental/packageDebugResources/merger.xml +0 -11
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/ActivityListener.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/BuildConfig.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/Event.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/EventEmitter$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/EventEmitter$2.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/EventEmitter$3.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/EventEmitter.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/HelperActivity$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/HelperActivity$2.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/HelperActivity$ActivityResult.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/HelperActivity.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/IntentNotificationEvent.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/MessageService.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/MyPushBroadcastReceiver.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/PushNotificationEvent.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginModule$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginModule$2.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginModule$3.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginModule$4.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginModule.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNMappPluginPackage.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNUtils$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RNUtils.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RequestPermissionsTask$Callback.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/reactlibrary/RequestPermissionsTask.class +0 -0
- package/android/build/intermediates/library_manifest/debug/AndroidManifest.xml +0 -70
- package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +0 -3
- package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +0 -134
- package/android/build/intermediates/merged_java_res/debug/out.jar +0 -0
- package/android/build/intermediates/merged_manifests/debug/output.json +0 -1
- package/android/build/intermediates/packaged_res/debug/values/values.xml +0 -13
- package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +0 -1856
- package/android/build/outputs/aar/android-debug.aar +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -135
- package/android/local.properties +0 -8
- package/ios/Frameworks/AppoxeeInapp.framework/AppoxeeInapp +0 -1
- package/ios/Frameworks/AppoxeeInapp.framework/Headers +0 -1
- package/ios/Frameworks/AppoxeeInapp.framework/Versions/Current +0 -1
- package/ios/Frameworks/AppoxeeLocationServices.framework/AppoxeeLocationServices +0 -1
- package/ios/Frameworks/AppoxeeLocationServices.framework/Headers +0 -1
- package/ios/Frameworks/AppoxeeLocationServices.framework/Versions/Current +0 -1
- package/ios/Frameworks/AppoxeeSDK.framework/AppoxeeSDK +0 -1
- package/ios/Frameworks/AppoxeeSDK.framework/Headers +0 -1
- 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
|
+
}
|