react-native-netmera 1.11.3 → 2.0.0-alpha01
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/README.md +109 -120
- package/RNNetmera.podspec +30 -14
- package/android/build.gradle +83 -19
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +0 -5
- package/android/src/main/AndroidManifestNew.xml +5 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.kt +24 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraCategoryObject.kt +54 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfiguration.kt +108 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraEvent.kt +24 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.kt +694 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPackage.kt +17 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.kt +81 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushHeadlessService.kt +32 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUtil.kt +218 -0
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraWebWidgetCallbacks.kt +25 -0
- package/ios/AnyCodable/AnyCodable.swift +151 -0
- package/ios/AnyCodable/AnyDecodable.swift +192 -0
- package/ios/AnyCodable/AnyEncodable.swift +295 -0
- package/ios/RNNetmera-Bridging-Header.h +3 -0
- package/ios/RNNetmera.mm +143 -0
- package/ios/RNNetmera.swift +759 -0
- package/ios/RNNetmeraCategoryObject.swift +61 -0
- package/ios/RNNetmeraEvent.swift +26 -0
- package/ios/RNNetmeraPushLifecycleDelegate.swift +47 -0
- package/ios/RNNetmeraRCTEventEmitter.mm +8 -0
- package/ios/RNNetmeraRCTEventEmitter.swift +134 -0
- package/ios/RNNetmeraUtils.swift +233 -0
- package/lib/module/Netmera.js +256 -0
- package/lib/module/Netmera.js.map +1 -0
- package/lib/module/events/NetmeraEvent.js +8 -0
- package/lib/module/events/NetmeraEvent.js.map +1 -0
- package/lib/module/events/NetmeraEventBannerOpen.js +13 -0
- package/lib/module/events/NetmeraEventBannerOpen.js.map +1 -0
- package/lib/module/events/NetmeraEventBatteryLevel.js +10 -0
- package/lib/module/events/NetmeraEventBatteryLevel.js.map +1 -0
- package/lib/module/events/NetmeraEventCategoryView.js +13 -0
- package/lib/module/events/NetmeraEventCategoryView.js.map +1 -0
- package/lib/module/events/NetmeraEventInAppPurchase.js +28 -0
- package/lib/module/events/NetmeraEventInAppPurchase.js.map +1 -0
- package/lib/module/events/NetmeraEventLogin.js +10 -0
- package/lib/module/events/NetmeraEventLogin.js.map +1 -0
- package/lib/module/events/NetmeraEventRegister.js +10 -0
- package/lib/module/events/NetmeraEventRegister.js.map +1 -0
- package/lib/module/events/NetmeraEventScreenView.js +22 -0
- package/lib/module/events/NetmeraEventScreenView.js.map +1 -0
- package/lib/module/events/NetmeraEventSearch.js +13 -0
- package/lib/module/events/NetmeraEventSearch.js.map +1 -0
- package/lib/module/events/NetmeraEventShare.js +13 -0
- package/lib/module/events/NetmeraEventShare.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventCartAddProduct.js +13 -0
- package/lib/module/events/commerce/NetmeraEventCartAddProduct.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventCartRemoveProduct.js +10 -0
- package/lib/module/events/commerce/NetmeraEventCartRemoveProduct.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventCartView.js +13 -0
- package/lib/module/events/commerce/NetmeraEventCartView.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventOrderCancel.js +19 -0
- package/lib/module/events/commerce/NetmeraEventOrderCancel.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventProductComment.js +7 -0
- package/lib/module/events/commerce/NetmeraEventProductComment.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventProductRate.js +10 -0
- package/lib/module/events/commerce/NetmeraEventProductRate.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventProductView.js +7 -0
- package/lib/module/events/commerce/NetmeraEventProductView.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventPurchase.js +34 -0
- package/lib/module/events/commerce/NetmeraEventPurchase.js.map +1 -0
- package/lib/module/events/commerce/NetmeraEventWishList.js +7 -0
- package/lib/module/events/commerce/NetmeraEventWishList.js.map +1 -0
- package/lib/module/events/commerce/NetmeraLineItem.js +9 -0
- package/lib/module/events/commerce/NetmeraLineItem.js.map +1 -0
- package/lib/module/events/commerce/NetmeraProduct.js +46 -0
- package/lib/module/events/commerce/NetmeraProduct.js.map +1 -0
- package/lib/module/events/media/NetmeraEventContent.js +42 -0
- package/lib/module/events/media/NetmeraEventContent.js.map +1 -0
- package/lib/module/events/media/NetmeraEventContentComment.js +7 -0
- package/lib/module/events/media/NetmeraEventContentComment.js.map +1 -0
- package/lib/module/events/media/NetmeraEventContentRate.js +10 -0
- package/lib/module/events/media/NetmeraEventContentRate.js.map +1 -0
- package/lib/module/events/media/NetmeraEventContentView.js +7 -0
- package/lib/module/events/media/NetmeraEventContentView.js.map +1 -0
- package/lib/module/index.js +43 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/models/NMCategoryPreference.js +8 -0
- package/lib/module/models/NMCategoryPreference.js.map +1 -0
- package/lib/module/models/NMInboxStatus.js +11 -0
- package/lib/module/models/NMInboxStatus.js.map +1 -0
- package/lib/module/models/NMInboxStatusCountFilter.js +12 -0
- package/lib/module/models/NMInboxStatusCountFilter.js.map +1 -0
- package/lib/module/models/NetmeraCategory.js +8 -0
- package/lib/module/models/NetmeraCategory.js.map +1 -0
- package/lib/module/models/NetmeraCategoryFilter.js +8 -0
- package/lib/module/models/NetmeraCategoryFilter.js.map +1 -0
- package/lib/module/models/NetmeraCouponObject.js +8 -0
- package/lib/module/models/NetmeraCouponObject.js.map +1 -0
- package/lib/module/models/NetmeraInbox.js +8 -0
- package/lib/module/models/NetmeraInbox.js.map +1 -0
- package/lib/module/models/NetmeraInboxFilter.js +8 -0
- package/lib/module/models/NetmeraInboxFilter.js.map +1 -0
- package/lib/module/models/NetmeraProfileAttribute.js +75 -0
- package/lib/module/models/NetmeraProfileAttribute.js.map +1 -0
- package/lib/module/models/NetmeraUser.js +89 -0
- package/lib/module/models/NetmeraUser.js.map +1 -0
- package/lib/module/models/NetmeraUserProfile.js +58 -0
- package/lib/module/models/NetmeraUserProfile.js.map +1 -0
- package/lib/module/models/NotificationPermissionStatus.js +10 -0
- package/lib/module/models/NotificationPermissionStatus.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/utils/DeviceUtils.js +10 -0
- package/lib/module/utils/DeviceUtils.js.map +1 -0
- package/lib/module/utils/Optional.js +32 -0
- package/lib/module/utils/Optional.js.map +1 -0
- package/lib/module/utils/RNNetmera.js +16 -0
- package/lib/module/utils/RNNetmera.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/Netmera.d.ts +70 -0
- package/lib/typescript/src/Netmera.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEvent.d.ts +5 -0
- package/lib/typescript/src/events/NetmeraEvent.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventBannerOpen.d.ts +9 -0
- package/lib/typescript/src/events/NetmeraEventBannerOpen.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventBatteryLevel.d.ts +7 -0
- package/lib/typescript/src/events/NetmeraEventBatteryLevel.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventCategoryView.d.ts +9 -0
- package/lib/typescript/src/events/NetmeraEventCategoryView.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventInAppPurchase.d.ts +19 -0
- package/lib/typescript/src/events/NetmeraEventInAppPurchase.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventLogin.d.ts +7 -0
- package/lib/typescript/src/events/NetmeraEventLogin.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventRegister.d.ts +7 -0
- package/lib/typescript/src/events/NetmeraEventRegister.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventScreenView.d.ts +15 -0
- package/lib/typescript/src/events/NetmeraEventScreenView.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventSearch.d.ts +9 -0
- package/lib/typescript/src/events/NetmeraEventSearch.d.ts.map +1 -0
- package/lib/typescript/src/events/NetmeraEventShare.d.ts +9 -0
- package/lib/typescript/src/events/NetmeraEventShare.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartAddProduct.d.ts +9 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartAddProduct.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartRemoveProduct.d.ts +7 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartRemoveProduct.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartView.d.ts +9 -0
- package/lib/typescript/src/events/commerce/NetmeraEventCartView.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventOrderCancel.d.ts +13 -0
- package/lib/typescript/src/events/commerce/NetmeraEventOrderCancel.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductComment.d.ts +5 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductComment.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductRate.d.ts +7 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductRate.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductView.d.ts +5 -0
- package/lib/typescript/src/events/commerce/NetmeraEventProductView.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventPurchase.d.ts +24 -0
- package/lib/typescript/src/events/commerce/NetmeraEventPurchase.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraEventWishList.d.ts +5 -0
- package/lib/typescript/src/events/commerce/NetmeraEventWishList.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraLineItem.d.ts +6 -0
- package/lib/typescript/src/events/commerce/NetmeraLineItem.d.ts.map +1 -0
- package/lib/typescript/src/events/commerce/NetmeraProduct.d.ts +23 -0
- package/lib/typescript/src/events/commerce/NetmeraProduct.d.ts.map +1 -0
- package/lib/typescript/src/events/media/NetmeraEventContent.d.ts +23 -0
- package/lib/typescript/src/events/media/NetmeraEventContent.d.ts.map +1 -0
- package/lib/typescript/src/events/media/NetmeraEventContentComment.d.ts +5 -0
- package/lib/typescript/src/events/media/NetmeraEventContentComment.d.ts.map +1 -0
- package/lib/typescript/src/events/media/NetmeraEventContentRate.d.ts +7 -0
- package/lib/typescript/src/events/media/NetmeraEventContentRate.d.ts.map +1 -0
- package/lib/typescript/src/events/media/NetmeraEventContentView.d.ts +5 -0
- package/lib/typescript/src/events/media/NetmeraEventContentView.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +39 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/models/NMCategoryPreference.d.ts +6 -0
- package/lib/typescript/src/models/NMCategoryPreference.d.ts.map +1 -0
- package/lib/typescript/src/models/NMInboxStatus.d.ts +8 -0
- package/lib/typescript/src/models/NMInboxStatus.d.ts.map +1 -0
- package/lib/typescript/src/models/NMInboxStatusCountFilter.d.ts +7 -0
- package/lib/typescript/src/models/NMInboxStatusCountFilter.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraCategory.d.ts +10 -0
- package/lib/typescript/src/models/NetmeraCategory.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraCategoryFilter.d.ts +6 -0
- package/lib/typescript/src/models/NetmeraCategoryFilter.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraCouponObject.d.ts +8 -0
- package/lib/typescript/src/models/NetmeraCouponObject.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraInbox.d.ts +22 -0
- package/lib/typescript/src/models/NetmeraInbox.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraInboxFilter.d.ts +7 -0
- package/lib/typescript/src/models/NetmeraInboxFilter.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraProfileAttribute.d.ts +33 -0
- package/lib/typescript/src/models/NetmeraProfileAttribute.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraUser.d.ts +25 -0
- package/lib/typescript/src/models/NetmeraUser.d.ts.map +1 -0
- package/lib/typescript/src/models/NetmeraUserProfile.d.ts +21 -0
- package/lib/typescript/src/models/NetmeraUserProfile.d.ts.map +1 -0
- package/lib/typescript/src/models/NotificationPermissionStatus.d.ts +7 -0
- package/lib/typescript/src/models/NotificationPermissionStatus.d.ts.map +1 -0
- package/lib/typescript/src/utils/DeviceUtils.d.ts +3 -0
- package/lib/typescript/src/utils/DeviceUtils.d.ts.map +1 -0
- package/lib/typescript/src/utils/Optional.d.ts +15 -0
- package/lib/typescript/src/utils/Optional.d.ts.map +1 -0
- package/lib/typescript/src/utils/RNNetmera.d.ts +5 -0
- package/lib/typescript/src/utils/RNNetmera.d.ts.map +1 -0
- package/package.json +104 -17
- package/src/Netmera.ts +139 -88
- package/src/events/NetmeraEvent.ts +1 -1
- package/src/events/NetmeraEventBannerOpen.ts +4 -4
- package/src/events/NetmeraEventBatteryLevel.ts +3 -3
- package/src/events/NetmeraEventCategoryView.ts +4 -4
- package/src/events/NetmeraEventInAppPurchase.ts +10 -10
- package/src/events/NetmeraEventLogin.ts +3 -3
- package/src/events/NetmeraEventRegister.ts +3 -3
- package/src/events/NetmeraEventScreenView.ts +7 -7
- package/src/events/NetmeraEventSearch.ts +4 -4
- package/src/events/NetmeraEventShare.ts +4 -4
- package/src/events/commerce/NetmeraEventCartAddProduct.ts +4 -4
- package/src/events/commerce/NetmeraEventCartRemoveProduct.ts +3 -3
- package/src/events/commerce/NetmeraEventCartView.ts +4 -4
- package/src/events/commerce/NetmeraEventOrderCancel.ts +6 -6
- package/src/events/commerce/NetmeraEventProductComment.ts +2 -2
- package/src/events/commerce/NetmeraEventProductRate.ts +3 -3
- package/src/events/commerce/NetmeraEventProductView.ts +2 -2
- package/src/events/commerce/NetmeraEventPurchase.ts +13 -13
- package/src/events/commerce/NetmeraEventWishList.ts +2 -2
- package/src/events/commerce/NetmeraLineItem.ts +2 -2
- package/src/events/commerce/NetmeraProduct.ts +10 -10
- package/src/events/media/NetmeraEventContent.ts +8 -8
- package/src/events/media/NetmeraEventContentComment.ts +2 -2
- package/src/events/media/NetmeraEventContentRate.ts +3 -3
- package/src/events/media/NetmeraEventContentView.ts +2 -2
- package/src/index.ts +87 -0
- package/src/models/NMCategoryPreference.ts +1 -1
- package/src/models/NMInboxStatusCountFilter.ts +1 -1
- package/src/models/NetmeraCategory.ts +2 -2
- package/src/models/NetmeraCategoryFilter.ts +1 -1
- package/src/models/NetmeraCouponObject.ts +1 -1
- package/src/models/NetmeraInbox.ts +1 -1
- package/src/models/NetmeraInboxFilter.ts +1 -1
- package/src/models/NetmeraProfileAttribute.ts +81 -0
- package/src/models/NetmeraUser.ts +76 -74
- package/src/models/NetmeraUserProfile.ts +67 -0
- package/src/models/NotificationPermissionStatus.ts +4 -4
- package/src/utils/DeviceUtils.ts +3 -3
- package/src/utils/Optional.ts +31 -0
- package/src/utils/RNNetmera.ts +24 -0
- package/.eslintignore +0 -7
- package/.gitattributes +0 -1
- package/.github/workflows/code_quality_check.yaml +0 -38
- package/.prettierignore +0 -14
- package/.yarnrc.yml +0 -1
- package/android/.project +0 -17
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
- package/android/gradlew +0 -172
- package/android/gradlew.bat +0 -84
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.java +0 -24
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraCategoryObject.java +0 -56
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfiguration.java +0 -154
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraEvent.java +0 -36
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.java +0 -631
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPackage.java +0 -35
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.java +0 -86
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushHeadlessService.java +0 -32
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUser.java +0 -24
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUtil.java +0 -354
- package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraWebWidgetCallbacks.java +0 -27
- package/index.ts +0 -80
- package/ios/RNNetmera.h +0 -32
- package/ios/RNNetmera.m +0 -507
- package/ios/RNNetmera.xcodeproj/project.pbxproj +0 -316
- package/ios/RNNetmera.xcodeproj/xcshareddata/xcschemes/RNNetmera.xcscheme +0 -67
- package/ios/RNNetmera.xcworkspace/contents.xcworkspacedata +0 -9
- package/ios/RNNetmeraCategoryObject.h +0 -16
- package/ios/RNNetmeraCategoryObject.m +0 -59
- package/ios/RNNetmeraEvent.h +0 -17
- package/ios/RNNetmeraEvent.m +0 -27
- package/ios/RNNetmeraRCTEventEmitter.h +0 -23
- package/ios/RNNetmeraRCTEventEmitter.m +0 -142
- package/ios/RNNetmeraUser.h +0 -15
- package/ios/RNNetmeraUser.m +0 -19
- package/ios/RNNetmeraUtils.h +0 -27
- package/ios/RNNetmeraUtils.m +0 -128
- package/scripts/update-version.js +0 -38
- package/scripts/yarn_rebuild.sh +0 -31
- package/tsconfig.json +0 -3
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
package com.netmera.reactnativesdk
|
|
2
|
+
|
|
3
|
+
import com.google.gson.annotations.SerializedName
|
|
4
|
+
import com.netmera.NetmeraEvent
|
|
5
|
+
|
|
6
|
+
class RNNetmeraEvent : NetmeraEvent() {
|
|
7
|
+
@SerializedName("prms")
|
|
8
|
+
private var eventParameters: MutableMap<String?, Any?>? = null
|
|
9
|
+
|
|
10
|
+
@SerializedName("code")
|
|
11
|
+
private var code: String? = null
|
|
12
|
+
|
|
13
|
+
fun setEventParameters(eventParameters: MutableMap<String?, Any?>?) {
|
|
14
|
+
this.eventParameters = eventParameters
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
fun setCode(code: String) {
|
|
18
|
+
this.code = code
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
override fun eventCode(): String {
|
|
22
|
+
return code!!
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,694 @@
|
|
|
1
|
+
package com.netmera.reactnativesdk
|
|
2
|
+
|
|
3
|
+
import android.app.Activity
|
|
4
|
+
import android.os.Bundle
|
|
5
|
+
import android.util.Log
|
|
6
|
+
import com.facebook.react.bridge.Promise
|
|
7
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
8
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
9
|
+
import com.facebook.react.bridge.ReactMethod
|
|
10
|
+
import com.facebook.react.bridge.ReadableMap
|
|
11
|
+
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
12
|
+
import com.google.firebase.messaging.RemoteMessage
|
|
13
|
+
import com.netmera.InternalNetmera
|
|
14
|
+
import com.netmera.NMUser
|
|
15
|
+
import com.netmera.Netmera
|
|
16
|
+
import com.netmera.NetmeraError
|
|
17
|
+
import com.netmera.NetmeraInbox
|
|
18
|
+
import com.netmera.NetmeraInboxCategory
|
|
19
|
+
import com.netmera.NetmeraInboxFilter
|
|
20
|
+
import com.netmera.callbacks.NMCategoryPreferenceFetchCallback
|
|
21
|
+
import com.netmera.callbacks.NMCategoryPreferenceSetCallback
|
|
22
|
+
import com.netmera.callbacks.NMFetchCouponsResultListener
|
|
23
|
+
import com.netmera.callbacks.NMInboxCountResultListener
|
|
24
|
+
import com.netmera.callbacks.NMPermissionResultListener
|
|
25
|
+
import com.netmera.callbacks.NMUpdateUserListener
|
|
26
|
+
import com.netmera.callbacks.NMUpdateUserProfileListener
|
|
27
|
+
import com.netmera.data.NMCategoryPreference
|
|
28
|
+
import com.netmera.data.NMInboxStatusCount
|
|
29
|
+
import com.netmera.data.NMInboxStatusCountFilter
|
|
30
|
+
import com.netmera.reactnativesdk.RNNetmeraUtil.getInboxStatus
|
|
31
|
+
import com.netmera.reactnativesdk.RNNetmeraUtil.mapPushObjects
|
|
32
|
+
import com.netmera.reactnativesdk.RNNetmeraUtil.parseInboxCountForStatusToMap
|
|
33
|
+
import com.netmera.reactnativesdk.RNNetmeraUtil.toMap
|
|
34
|
+
|
|
35
|
+
class RNNetmeraModule(reactContext: ReactApplicationContext) :
|
|
36
|
+
ReactContextBaseJavaModule(reactContext) {
|
|
37
|
+
|
|
38
|
+
init {
|
|
39
|
+
Companion.reactContext = reactContext
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private var netmeraInbox: NetmeraInbox? = null
|
|
43
|
+
private var netmeraInboxCategory: NetmeraInboxCategory? = null
|
|
44
|
+
|
|
45
|
+
override fun getName(): String = NAME
|
|
46
|
+
|
|
47
|
+
@ReactMethod
|
|
48
|
+
fun currentExternalId(promise: Promise) {
|
|
49
|
+
promise.resolve(Netmera.getCurrentExternalId())
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
53
|
+
fun checkNotificationPermission(): String {
|
|
54
|
+
val activity: Activity? = reactContext.currentActivity
|
|
55
|
+
return if (activity != null) {
|
|
56
|
+
Netmera.checkNotificationPermission(activity).toString()
|
|
57
|
+
} else {
|
|
58
|
+
Log.e(NAME, "Cannot call checkNotificationPermission because current ReactActivity is null")
|
|
59
|
+
"null"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@ReactMethod
|
|
64
|
+
fun requestPushNotificationAuthorization(promise: Promise) {
|
|
65
|
+
val activity: Activity? = reactContext.currentActivity
|
|
66
|
+
if (activity == null) {
|
|
67
|
+
promise.reject(
|
|
68
|
+
ERROR_CODE_INVALID_ACTIVITY,
|
|
69
|
+
ERROR_MESSAGE_INVALID_ACTIVITY,
|
|
70
|
+
null
|
|
71
|
+
)
|
|
72
|
+
return
|
|
73
|
+
}
|
|
74
|
+
Netmera.requestNotificationPermissions(
|
|
75
|
+
activity,
|
|
76
|
+
object : NMPermissionResultListener {
|
|
77
|
+
override fun onSuccess(isAllowed: Boolean) {
|
|
78
|
+
promise.resolve(isAllowed)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
override fun onFailure(error: String?) {
|
|
82
|
+
promise.reject(
|
|
83
|
+
ERROR_CODE_NOTIFICATION_PERMISSION,
|
|
84
|
+
ERROR_MESSAGE_NOTIFICATION_PERMISSION + error.let { "Reason: $it" },
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@ReactMethod
|
|
92
|
+
fun requestPermissionsForLocation() {
|
|
93
|
+
Netmera.requestPermissionsForLocation()
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@ReactMethod
|
|
97
|
+
fun setNetmeraMaxActiveRegions(maxActiveRegions: Int) {
|
|
98
|
+
Netmera.setNetmeraMaxActiveRegions(maxActiveRegions)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@ReactMethod
|
|
102
|
+
fun enablePopupPresentation() {
|
|
103
|
+
Netmera.enablePopupPresentation()
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@ReactMethod
|
|
107
|
+
fun disablePopupPresentation() {
|
|
108
|
+
Netmera.disablePopupPresentation()
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
@ReactMethod
|
|
112
|
+
fun dismissAllPresentations() {
|
|
113
|
+
Netmera.dismissAllPresentations()
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@ReactMethod
|
|
117
|
+
fun enablePush() {
|
|
118
|
+
Netmera.enablePush()
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@ReactMethod
|
|
122
|
+
fun disablePush() {
|
|
123
|
+
Netmera.disablePush()
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@ReactMethod
|
|
127
|
+
fun isPushEnabled(promise: Promise) {
|
|
128
|
+
promise.resolve(Netmera.isPushEnabled())
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@ReactMethod
|
|
132
|
+
fun kill() {
|
|
133
|
+
Netmera.kill()
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@ReactMethod
|
|
137
|
+
fun fetchCoupons(page: Int, max: Int, promise: Promise) {
|
|
138
|
+
Netmera.fetchCoupons(page, max, object : NMFetchCouponsResultListener {
|
|
139
|
+
override fun onSuccess(coupons: List<com.netmera.data.NMCouponDetail>?) {
|
|
140
|
+
promise.resolve(RNNetmeraUtil.mapCouponObjects(coupons ?: emptyList()))
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
override fun onFailure(error: String?) {
|
|
144
|
+
promise.reject(ERROR_CODE_COUPON_FETCH, ERROR_MESSAGE_COUPON_FETCH)
|
|
145
|
+
}
|
|
146
|
+
})
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
@ReactMethod
|
|
150
|
+
fun fetchInbox(readableMap: ReadableMap, promise: Promise) {
|
|
151
|
+
val builder = NetmeraInboxFilter.Builder()
|
|
152
|
+
|
|
153
|
+
if (hasKey(readableMap, CATEGORIES)) {
|
|
154
|
+
val categories = readableMap.toHashMap()[CATEGORIES]
|
|
155
|
+
when (categories) {
|
|
156
|
+
is String -> builder.categories(listOf(categories))
|
|
157
|
+
is List<*> -> builder.categories(categories.filterIsInstance<String>())
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (hasKey(readableMap, STATUS)) {
|
|
162
|
+
builder.status(readableMap.getInt(STATUS))
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (hasKey(readableMap, PAGE_SIZE)) {
|
|
166
|
+
builder.pageSize(readableMap.getInt(PAGE_SIZE))
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (hasKey(readableMap, INCLUDE_EXPIRED_OBJECTS)) {
|
|
170
|
+
builder.includeExpiredObjects(readableMap.getBoolean(INCLUDE_EXPIRED_OBJECTS))
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
val filter = builder.build()
|
|
174
|
+
|
|
175
|
+
Netmera.fetchInbox(
|
|
176
|
+
filter
|
|
177
|
+
) { inbox, netmeraError -> setInbox(inbox, netmeraError, promise) }
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
@ReactMethod
|
|
181
|
+
fun fetchNextPage(promise: Promise) {
|
|
182
|
+
if (netmeraInbox == null) {
|
|
183
|
+
promise.reject(ERROR_CODE_NULL_INBOX, ERROR_MESSAGE_NULL_INBOX)
|
|
184
|
+
return
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (netmeraInbox!!.hasNextPage()) {
|
|
188
|
+
netmeraInbox!!.fetchNextPage { netmeraInbox, error -> setInbox(netmeraInbox, error, promise) }
|
|
189
|
+
} else {
|
|
190
|
+
promise.reject(ERROR_CODE_NOT_NEXT_PAGE, ERROR_MESSAGE_NOT_NEXT_PAGE)
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
@ReactMethod
|
|
195
|
+
fun countForStatus(status: Int, promise: Promise) {
|
|
196
|
+
if (netmeraInbox == null) {
|
|
197
|
+
promise.reject(ERROR_CODE_NULL_INBOX, ERROR_MESSAGE_NULL_INBOX)
|
|
198
|
+
return
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
promise.resolve(netmeraInbox!!.countForStatus(status))
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
@ReactMethod
|
|
205
|
+
fun inboxUpdateStatus(fromIndex: Int, toIndex: Int, status: Int, promise: Promise) {
|
|
206
|
+
if (netmeraInbox == null) {
|
|
207
|
+
promise.reject(ERROR_CODE_NULL_INBOX, ERROR_MESSAGE_NULL_INBOX)
|
|
208
|
+
return
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
try {
|
|
212
|
+
val pushObjects = netmeraInbox!!.pushObjects().subList(fromIndex, toIndex)
|
|
213
|
+
netmeraInbox!!.updateStatus(
|
|
214
|
+
pushObjects, status
|
|
215
|
+
) { netmeraError ->
|
|
216
|
+
if (netmeraError == null) {
|
|
217
|
+
promise.resolve(null)
|
|
218
|
+
} else {
|
|
219
|
+
promise.reject(ERROR_CODE_UPDATE_STATUS, ERROR_MESSAGE_UPDATE_STATUS)
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
} catch (e: IndexOutOfBoundsException) {
|
|
223
|
+
promise.reject("", e.message)
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
@ReactMethod
|
|
228
|
+
fun fetchCategory(readableMap: ReadableMap, promise: Promise) {
|
|
229
|
+
Netmera.fetchCategory(
|
|
230
|
+
RNNetmeraCategoryObject.getInboxObject(readableMap)
|
|
231
|
+
) { netmeraInboxCategory, netmeraError ->
|
|
232
|
+
setCategory(
|
|
233
|
+
netmeraInboxCategory,
|
|
234
|
+
netmeraError,
|
|
235
|
+
promise
|
|
236
|
+
)
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
@ReactMethod
|
|
241
|
+
fun fetchNextCategoryPage(promise: Promise) {
|
|
242
|
+
if (netmeraInboxCategory == null) {
|
|
243
|
+
promise.reject(ERROR_CODE_NULL_CATEGORY, ERROR_MESSAGE_NULL_CATEGORY)
|
|
244
|
+
return
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
if (netmeraInboxCategory!!.hasNextPage()) {
|
|
248
|
+
netmeraInboxCategory!!.fetchNextPage { netmeraInboxCategory, netmeraError ->
|
|
249
|
+
setCategory(
|
|
250
|
+
netmeraInboxCategory,
|
|
251
|
+
netmeraError,
|
|
252
|
+
promise
|
|
253
|
+
)
|
|
254
|
+
}
|
|
255
|
+
} else {
|
|
256
|
+
promise.reject(ERROR_CODE_NOT_NEXT_PAGE, ERROR_MESSAGE_NOT_NEXT_PAGE)
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
@ReactMethod
|
|
261
|
+
fun handleLastMessage(categoryName: String?, promise: Promise) {
|
|
262
|
+
if (netmeraInboxCategory == null) {
|
|
263
|
+
promise.reject(ERROR_CODE_NULL_CATEGORY, ERROR_MESSAGE_NULL_CATEGORY)
|
|
264
|
+
return
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if (categoryName == null || categoryName.isEmpty()) {
|
|
268
|
+
promise.reject(ERROR_CODE_INVALID_PUSH_OBJECT, ERROR_MESSAGE_INVALID_PUSH_OBJECT)
|
|
269
|
+
return
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
for (category in netmeraInboxCategory!!.categories()) {
|
|
273
|
+
if (categoryName == category.categoryName) {
|
|
274
|
+
Netmera.handlePushObject(reactApplicationContext.currentActivity!!, category.lastMessage)
|
|
275
|
+
break
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
@ReactMethod
|
|
281
|
+
fun updateStatusByCategories(fromIndex: Int, toIndex: Int, status: Int, promise: Promise) {
|
|
282
|
+
if (netmeraInboxCategory == null) {
|
|
283
|
+
promise.reject(ERROR_CODE_NULL_CATEGORY, ERROR_MESSAGE_NULL_CATEGORY)
|
|
284
|
+
return
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
try {
|
|
288
|
+
val categoryNames: MutableList<String?> = ArrayList()
|
|
289
|
+
|
|
290
|
+
for (category in netmeraInboxCategory!!.categories().subList(fromIndex, toIndex)) {
|
|
291
|
+
categoryNames.add(category.categoryName)
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
Netmera.updateStatusByCategories(
|
|
295
|
+
status, categoryNames
|
|
296
|
+
) { netmeraError ->
|
|
297
|
+
if (netmeraError == null) {
|
|
298
|
+
promise.resolve(null)
|
|
299
|
+
} else {
|
|
300
|
+
promise.reject(ERROR_CODE_UPDATE_STATUS, ERROR_MESSAGE_UPDATE_STATUS)
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
} catch (e: java.lang.IndexOutOfBoundsException) {
|
|
304
|
+
promise.reject("", e.message)
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
@ReactMethod
|
|
309
|
+
fun updateAll(inboxStatus: Int, promise: Promise) {
|
|
310
|
+
Netmera.updateAll(inboxStatus) { netmeraError ->
|
|
311
|
+
if (netmeraError != null) {
|
|
312
|
+
promise.reject(ERROR_CODE_UPDATE_STATUS, ERROR_MESSAGE_UPDATE_STATUS)
|
|
313
|
+
} else {
|
|
314
|
+
promise.resolve(true)
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
@ReactMethod
|
|
320
|
+
fun identifyUser(readableMap: ReadableMap, hasCallback: Boolean, promise: Promise) {
|
|
321
|
+
val userMap = toMap(readableMap)
|
|
322
|
+
val netmeraUser = NMUser()
|
|
323
|
+
|
|
324
|
+
if (userMap.containsKey(USER_ID)) {
|
|
325
|
+
netmeraUser.setUserId(userMap[USER_ID] as? String)
|
|
326
|
+
}
|
|
327
|
+
if (userMap.containsKey(EMAIL)) {
|
|
328
|
+
netmeraUser.setEmail(userMap[EMAIL] as? String)
|
|
329
|
+
}
|
|
330
|
+
if (userMap.containsKey(MSISDN)) {
|
|
331
|
+
netmeraUser.setMsisdn(userMap[MSISDN] as? String)
|
|
332
|
+
}
|
|
333
|
+
if (userMap.containsKey(WP_NUMBER)) {
|
|
334
|
+
netmeraUser.setWhatsAppNumber(userMap[WP_NUMBER] as? String)
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
if (hasCallback) {
|
|
338
|
+
Netmera.identifyUser(netmeraUser, object : NMUpdateUserListener {
|
|
339
|
+
override fun onSuccess() {
|
|
340
|
+
promise.resolve(null)
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
override fun onFailure(error: String?) {
|
|
344
|
+
promise.reject(ERROR_CODE_UPDATE_USER, ERROR_MESSAGE_UPDATE_USER + (error ?: ""))
|
|
345
|
+
}
|
|
346
|
+
})
|
|
347
|
+
} else {
|
|
348
|
+
Netmera.identifyUser(netmeraUser)
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
@ReactMethod
|
|
353
|
+
fun updateUserProfile(readableMap: ReadableMap, hasCallback: Boolean, promise: Promise) {
|
|
354
|
+
val userProfileMap = toMap(readableMap)
|
|
355
|
+
|
|
356
|
+
if (hasCallback) {
|
|
357
|
+
InternalNetmera.updateUserProfile(userProfileMap, object : NMUpdateUserProfileListener {
|
|
358
|
+
override fun onSuccess() {
|
|
359
|
+
promise.resolve(null)
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
override fun onFailure(error: String?) {
|
|
363
|
+
promise.reject(ERROR_CODE_UPDATE_PROFILE, ERROR_MESSAGE_UPDATE_PROFILE + (error ?: ""))
|
|
364
|
+
}
|
|
365
|
+
})
|
|
366
|
+
} else {
|
|
367
|
+
InternalNetmera.updateUserProfile(userProfileMap)
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
@ReactMethod
|
|
372
|
+
fun handlePushObject(pushId: String?) {
|
|
373
|
+
if (netmeraInbox == null) {
|
|
374
|
+
return
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
for (pushObject in netmeraInbox!!.pushObjects()) {
|
|
378
|
+
if (pushObject.pushId == pushId) {
|
|
379
|
+
Netmera.handlePushObject(reactApplicationContext.currentActivity!!, pushObject)
|
|
380
|
+
break
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
@ReactMethod
|
|
386
|
+
fun handleInteractiveAction(interactiveActionId: String?) {
|
|
387
|
+
if (netmeraInbox == null) {
|
|
388
|
+
return
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
for (pushObject in netmeraInbox!!.pushObjects()) {
|
|
392
|
+
if (pushObject.interactiveActions != null) {
|
|
393
|
+
for (action in pushObject.interactiveActions) {
|
|
394
|
+
if (action.id == interactiveActionId) {
|
|
395
|
+
Netmera.handleInteractiveAction(reactApplicationContext, action)
|
|
396
|
+
return
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
@ReactMethod
|
|
404
|
+
fun sendEvent(readableMap: ReadableMap?) {
|
|
405
|
+
val eventMap = toMap(readableMap).toMutableMap()
|
|
406
|
+
val event = RNNetmeraEvent()
|
|
407
|
+
|
|
408
|
+
if (eventMap.containsKey(CODE)) {
|
|
409
|
+
event.setCode(readableMap?.getString(CODE)!!)
|
|
410
|
+
eventMap.remove(CODE)
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
if (eventMap.containsKey(REVENUE)) {
|
|
414
|
+
event.setRevenue(readableMap?.getDouble(REVENUE) ?: 0.0)
|
|
415
|
+
eventMap.remove(REVENUE)
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
@Suppress("UNCHECKED_CAST")
|
|
419
|
+
event.setEventParameters(eventMap as MutableMap<String?, Any?>)
|
|
420
|
+
Netmera.sendEvent(event)
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
@ReactMethod
|
|
424
|
+
fun sendGenericEvent(code: String, attributes: ReadableMap?) {
|
|
425
|
+
val attrs = toMap(attributes)
|
|
426
|
+
.filterValues { it != null }
|
|
427
|
+
.mapValues { it.value!! }
|
|
428
|
+
Netmera.sendEvent(code, attrs)
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
@ReactMethod
|
|
432
|
+
fun getInboxCountForStatus(readableMap: ReadableMap, promise: Promise) {
|
|
433
|
+
val builder = NMInboxStatusCountFilter.Builder()
|
|
434
|
+
|
|
435
|
+
if (readableMap.hasKey(CATEGORY_LIST)) {
|
|
436
|
+
val categoryList = readableMap.toHashMap()[CATEGORY_LIST] as? ArrayList<Double>
|
|
437
|
+
categoryList?.let {
|
|
438
|
+
val categoryArray = Array(it.size) { i -> it[i].toInt() }
|
|
439
|
+
builder.setCategoryList(categoryArray)
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
if (readableMap.hasKey(STATUS)) {
|
|
444
|
+
builder.setInboxStatus(getInboxStatus(readableMap.getInt(STATUS)))
|
|
445
|
+
} else {
|
|
446
|
+
promise.reject(ERROR_CODE_NULL_INBOX_STATUS, ERROR_MESSAGE_NULL_INBOX_STATUS)
|
|
447
|
+
return
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
if (readableMap.hasKey(INCLUDE_EXPIRED_OBJECTS)) {
|
|
451
|
+
builder.setIncludeExpired(readableMap.getBoolean(INCLUDE_EXPIRED_OBJECTS))
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
val filter = builder.build()
|
|
455
|
+
|
|
456
|
+
Netmera.getInboxCountForStatus(filter, object : NMInboxCountResultListener {
|
|
457
|
+
override fun onSuccess(inboxStatusCount: NMInboxStatusCount) {
|
|
458
|
+
promise.resolve(parseInboxCountForStatusToMap(inboxStatusCount))
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
override fun onFailure(s: String?) {
|
|
462
|
+
promise.reject(ERROR_CODE_INBOX_STATUS, ERROR_MESSAGE_INBOX_STATUS)
|
|
463
|
+
}
|
|
464
|
+
})
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
@ReactMethod
|
|
468
|
+
fun getUserCategoryPreferenceList(promise: Promise) {
|
|
469
|
+
Netmera.getUserCategoryPreferenceList(object : NMCategoryPreferenceFetchCallback {
|
|
470
|
+
override fun onSuccess(list: MutableList<NMCategoryPreference>) {
|
|
471
|
+
promise.resolve(RNNetmeraUtil.parseUserCategoryPreferenceListToMap(list))
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
override fun onFailure(s: String?) {
|
|
475
|
+
promise.reject(ERROR_CODE_CATEGORY_PREFERENCE, ERROR_MESSAGE_CATEGORY_PREFERENCE)
|
|
476
|
+
}
|
|
477
|
+
})
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
@ReactMethod
|
|
481
|
+
fun setUserCategoryPreference(categoryId: Int, categoryEnabled: Boolean, promise: Promise) {
|
|
482
|
+
Netmera.setUserCategoryPreference(
|
|
483
|
+
categoryId,
|
|
484
|
+
categoryEnabled,
|
|
485
|
+
object : NMCategoryPreferenceSetCallback {
|
|
486
|
+
override fun onSuccess() {
|
|
487
|
+
promise.resolve(true)
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
override fun onFailure(s: String?) {
|
|
491
|
+
promise.reject(ERROR_CODE_SET_CATEGORY_PREFERENCE, ERROR_MESSAGE_SET_CATEGORY_PREFERENCE)
|
|
492
|
+
}
|
|
493
|
+
})
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
@ReactMethod
|
|
497
|
+
fun onNetmeraPushMessageReceived(map: ReadableMap) {
|
|
498
|
+
val data: MutableMap<String?, String?> = HashMap<String?, String?>()
|
|
499
|
+
|
|
500
|
+
val bundle = Bundle()
|
|
501
|
+
for (key in map.toHashMap().keys) {
|
|
502
|
+
data.put(key, map.getString(key))
|
|
503
|
+
bundle.putString(key, map.getString(key))
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
if (data.containsKey("google.c.sender.id")) {
|
|
507
|
+
Netmera.onNetmeraPushMessageReceived(RemoteMessage(bundle))
|
|
508
|
+
} else {
|
|
509
|
+
val builder = com.huawei.hms.push.RemoteMessage.Builder("to")
|
|
510
|
+
builder.setData(data)
|
|
511
|
+
Netmera.onNetmeraPushMessageReceived(builder.build())
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
@ReactMethod
|
|
516
|
+
fun onNetmeraNewToken(pushToken: String?) {
|
|
517
|
+
Netmera.onNetmeraNewToken(pushToken)
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
@ReactMethod
|
|
521
|
+
fun startDataTransfer() {
|
|
522
|
+
Netmera.startDataTransfer()
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
@ReactMethod
|
|
526
|
+
fun stopDataTransfer() {
|
|
527
|
+
Netmera.stopDataTransfer()
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
@ReactMethod
|
|
531
|
+
fun setEmailPermission(isAllowed: Boolean, promise: Promise) {
|
|
532
|
+
try {
|
|
533
|
+
Netmera.setEmailPermission(isAllowed)
|
|
534
|
+
promise.resolve(null)
|
|
535
|
+
} catch (e: Exception) {
|
|
536
|
+
promise.reject(ERROR_CODE_EMAIL_PERMISSION, ERROR_MESSAGE_EMAIL_PERMISSION)
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
@ReactMethod
|
|
541
|
+
fun getEmailPermission(promise: Promise) {
|
|
542
|
+
Netmera.getEmailPermission(object : NMPermissionResultListener {
|
|
543
|
+
override fun onSuccess(isAllowed: Boolean) {
|
|
544
|
+
promise.resolve(isAllowed)
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
override fun onFailure(error: String?) {
|
|
548
|
+
promise.reject(ERROR_CODE_EMAIL_PERMISSION, ERROR_MESSAGE_EMAIL_PERMISSION)
|
|
549
|
+
}
|
|
550
|
+
})
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
@ReactMethod
|
|
554
|
+
fun setSmsPermission(isAllowed: Boolean, promise: Promise) {
|
|
555
|
+
try {
|
|
556
|
+
Netmera.setSmsPermission(isAllowed)
|
|
557
|
+
promise.resolve(null)
|
|
558
|
+
} catch (e: Exception) {
|
|
559
|
+
promise.reject(ERROR_CODE_SMS_PERMISSION, ERROR_MESSAGE_SMS_PERMISSION)
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
@ReactMethod
|
|
564
|
+
fun getSmsPermission(promise: Promise) {
|
|
565
|
+
Netmera.getSmsPermission(object : NMPermissionResultListener {
|
|
566
|
+
override fun onSuccess(isAllowed: Boolean) {
|
|
567
|
+
promise.resolve(isAllowed)
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
override fun onFailure(error: String?) {
|
|
571
|
+
promise.reject(ERROR_CODE_SMS_PERMISSION, ERROR_MESSAGE_SMS_PERMISSION)
|
|
572
|
+
}
|
|
573
|
+
})
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
@ReactMethod
|
|
577
|
+
fun setWhatsAppPermission(isAllowed: Boolean, promise: Promise) {
|
|
578
|
+
try {
|
|
579
|
+
Netmera.setWhatsAppPermission(isAllowed)
|
|
580
|
+
promise.resolve(null)
|
|
581
|
+
} catch (e: Exception) {
|
|
582
|
+
promise.reject(ERROR_CODE_WHATSAPP_PERMISSION, ERROR_MESSAGE_WHATSAPP_PERMISSION)
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
@ReactMethod
|
|
587
|
+
fun getWhatsAppPermission(promise: Promise) {
|
|
588
|
+
Netmera.getWhatsAppPermission(object : NMPermissionResultListener {
|
|
589
|
+
override fun onSuccess(isAllowed: Boolean) {
|
|
590
|
+
promise.resolve(isAllowed)
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
override fun onFailure(error: String?) {
|
|
594
|
+
promise.reject(ERROR_CODE_WHATSAPP_PERMISSION, ERROR_MESSAGE_WHATSAPP_PERMISSION)
|
|
595
|
+
}
|
|
596
|
+
})
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
private fun setInbox(inbox: NetmeraInbox, netmeraError: NetmeraError?, promise: Promise) {
|
|
600
|
+
netmeraInbox = inbox
|
|
601
|
+
if (netmeraError != null) {
|
|
602
|
+
promise.reject(ERROR_CODE_NULL_INBOX, ERROR_MESSAGE_NULL_INBOX)
|
|
603
|
+
return
|
|
604
|
+
}
|
|
605
|
+
promise.resolve(mapPushObjects(inbox.pushObjects()))
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
private fun setCategory(
|
|
609
|
+
nmInboxCategory: NetmeraInboxCategory?,
|
|
610
|
+
netmeraError: NetmeraError?,
|
|
611
|
+
promise: Promise
|
|
612
|
+
) {
|
|
613
|
+
if (netmeraError != null) {
|
|
614
|
+
promise.reject(ERROR_CODE_NULL_INBOX, ERROR_MESSAGE_NULL_INBOX)
|
|
615
|
+
return
|
|
616
|
+
}
|
|
617
|
+
netmeraInboxCategory = nmInboxCategory
|
|
618
|
+
promise.resolve(RNNetmeraCategoryObject.mapCategoryObjects(netmeraInboxCategory!!.categories()))
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
companion object {
|
|
622
|
+
const val NAME = "RNNetmera"
|
|
623
|
+
|
|
624
|
+
const val USER_ID: String = "userId"
|
|
625
|
+
const val EMAIL: String = "email"
|
|
626
|
+
const val MSISDN: String = "msisdn"
|
|
627
|
+
const val WP_NUMBER: String = "wpNumber"
|
|
628
|
+
const val CODE: String = "code"
|
|
629
|
+
const val CATEGORIES: String = "categories"
|
|
630
|
+
const val CATEGORY_LIST: String = "categoryList"
|
|
631
|
+
const val PAGE_SIZE: String = "pageSize"
|
|
632
|
+
const val REVENUE: String = "revenue"
|
|
633
|
+
const val INCLUDE_EXPIRED_OBJECTS: String = "includeExpiredObjects"
|
|
634
|
+
const val STATUS: String = "status"
|
|
635
|
+
|
|
636
|
+
const val ERROR_CODE_NULL_INBOX = "2017"
|
|
637
|
+
const val ERROR_MESSAGE_NULL_INBOX = "Must call fetchInbox method first"
|
|
638
|
+
const val ERROR_CODE_NOT_NEXT_PAGE = "2018"
|
|
639
|
+
const val ERROR_MESSAGE_NOT_NEXT_PAGE = "Not next page"
|
|
640
|
+
const val ERROR_CODE_UPDATE_STATUS = "2019"
|
|
641
|
+
const val ERROR_MESSAGE_UPDATE_STATUS = "There was a problem updating status"
|
|
642
|
+
const val ERROR_CODE_NULL_CATEGORY = "2020"
|
|
643
|
+
const val ERROR_MESSAGE_NULL_CATEGORY = "Must call fetchCategory method first"
|
|
644
|
+
const val ERROR_CODE_INVALID_PUSH_OBJECT = "2021"
|
|
645
|
+
const val ERROR_MESSAGE_INVALID_PUSH_OBJECT = "Received NetmeraPushObject was not valid."
|
|
646
|
+
const val ERROR_CODE_NULL_INBOX_STATUS = "2022"
|
|
647
|
+
const val ERROR_MESSAGE_NULL_INBOX_STATUS = "Inbox status can't be null."
|
|
648
|
+
const val ERROR_CODE_INBOX_STATUS = "2023"
|
|
649
|
+
const val ERROR_MESSAGE_INBOX_STATUS = "Error occurred while fetching inbox count for status."
|
|
650
|
+
const val ERROR_CODE_CATEGORY_PREFERENCE = "2024"
|
|
651
|
+
const val ERROR_MESSAGE_CATEGORY_PREFERENCE =
|
|
652
|
+
"Error occurred while fetching user category preference list."
|
|
653
|
+
const val ERROR_CODE_SET_CATEGORY_PREFERENCE = "2025"
|
|
654
|
+
const val ERROR_MESSAGE_SET_CATEGORY_PREFERENCE =
|
|
655
|
+
"Error occurred while setting user category preference list."
|
|
656
|
+
const val ERROR_CODE_COUPON_FETCH = "2026"
|
|
657
|
+
const val ERROR_MESSAGE_COUPON_FETCH = "Error occurred while fetching coupons."
|
|
658
|
+
const val ERROR_CODE_UPDATE_USER = "2027"
|
|
659
|
+
const val ERROR_MESSAGE_UPDATE_USER = "Error occurred while updating user. Reason: "
|
|
660
|
+
const val ERROR_CODE_UPDATE_PROFILE = "2028"
|
|
661
|
+
const val ERROR_MESSAGE_UPDATE_PROFILE = "Error occurred while updating user profile attributes. Reason: "
|
|
662
|
+
const val ERROR_CODE_EMAIL_PERMISSION = "2030"
|
|
663
|
+
const val ERROR_MESSAGE_EMAIL_PERMISSION = "Error occurred while getting/setting email permission."
|
|
664
|
+
|
|
665
|
+
const val ERROR_CODE_SMS_PERMISSION = "2031"
|
|
666
|
+
const val ERROR_MESSAGE_SMS_PERMISSION = "Error occurred while getting/setting SMS permission."
|
|
667
|
+
|
|
668
|
+
const val ERROR_CODE_WHATSAPP_PERMISSION = "2032"
|
|
669
|
+
const val ERROR_MESSAGE_WHATSAPP_PERMISSION = "Error occurred while getting/setting WhatsApp permission."
|
|
670
|
+
|
|
671
|
+
const val ERROR_CODE_INVALID_ACTIVITY = "2029"
|
|
672
|
+
const val ERROR_MESSAGE_INVALID_ACTIVITY = "Invalid argument: activity is null"
|
|
673
|
+
|
|
674
|
+
const val ERROR_CODE_NOTIFICATION_PERMISSION = "2033"
|
|
675
|
+
const val ERROR_MESSAGE_NOTIFICATION_PERMISSION =
|
|
676
|
+
"Error occurred while requesting notification permission. "
|
|
677
|
+
|
|
678
|
+
private lateinit var reactContext: ReactApplicationContext
|
|
679
|
+
|
|
680
|
+
fun emitEvent(eventName: String, eventData: String) {
|
|
681
|
+
reactContext
|
|
682
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
683
|
+
.emit(eventName, eventData)
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
private fun hasKey(map: MutableMap<*, *>, key: String?): Boolean {
|
|
687
|
+
return map.containsKey(key) && map[key] != null
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
private fun hasKey(map: ReadableMap, key: String): Boolean {
|
|
691
|
+
return map.hasKey(key) && !map.isNull(key)
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
}
|