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.
Files changed (280) hide show
  1. package/README.md +109 -120
  2. package/RNNetmera.podspec +30 -14
  3. package/android/build.gradle +83 -19
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +0 -5
  6. package/android/src/main/AndroidManifestNew.xml +5 -0
  7. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.kt +24 -0
  8. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraCategoryObject.kt +54 -0
  9. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfiguration.kt +108 -0
  10. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraEvent.kt +24 -0
  11. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.kt +694 -0
  12. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPackage.kt +17 -0
  13. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.kt +81 -0
  14. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushHeadlessService.kt +32 -0
  15. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUtil.kt +218 -0
  16. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraWebWidgetCallbacks.kt +25 -0
  17. package/ios/AnyCodable/AnyCodable.swift +151 -0
  18. package/ios/AnyCodable/AnyDecodable.swift +192 -0
  19. package/ios/AnyCodable/AnyEncodable.swift +295 -0
  20. package/ios/RNNetmera-Bridging-Header.h +3 -0
  21. package/ios/RNNetmera.mm +143 -0
  22. package/ios/RNNetmera.swift +759 -0
  23. package/ios/RNNetmeraCategoryObject.swift +61 -0
  24. package/ios/RNNetmeraEvent.swift +26 -0
  25. package/ios/RNNetmeraPushLifecycleDelegate.swift +47 -0
  26. package/ios/RNNetmeraRCTEventEmitter.mm +8 -0
  27. package/ios/RNNetmeraRCTEventEmitter.swift +134 -0
  28. package/ios/RNNetmeraUtils.swift +233 -0
  29. package/lib/module/Netmera.js +256 -0
  30. package/lib/module/Netmera.js.map +1 -0
  31. package/lib/module/events/NetmeraEvent.js +8 -0
  32. package/lib/module/events/NetmeraEvent.js.map +1 -0
  33. package/lib/module/events/NetmeraEventBannerOpen.js +13 -0
  34. package/lib/module/events/NetmeraEventBannerOpen.js.map +1 -0
  35. package/lib/module/events/NetmeraEventBatteryLevel.js +10 -0
  36. package/lib/module/events/NetmeraEventBatteryLevel.js.map +1 -0
  37. package/lib/module/events/NetmeraEventCategoryView.js +13 -0
  38. package/lib/module/events/NetmeraEventCategoryView.js.map +1 -0
  39. package/lib/module/events/NetmeraEventInAppPurchase.js +28 -0
  40. package/lib/module/events/NetmeraEventInAppPurchase.js.map +1 -0
  41. package/lib/module/events/NetmeraEventLogin.js +10 -0
  42. package/lib/module/events/NetmeraEventLogin.js.map +1 -0
  43. package/lib/module/events/NetmeraEventRegister.js +10 -0
  44. package/lib/module/events/NetmeraEventRegister.js.map +1 -0
  45. package/lib/module/events/NetmeraEventScreenView.js +22 -0
  46. package/lib/module/events/NetmeraEventScreenView.js.map +1 -0
  47. package/lib/module/events/NetmeraEventSearch.js +13 -0
  48. package/lib/module/events/NetmeraEventSearch.js.map +1 -0
  49. package/lib/module/events/NetmeraEventShare.js +13 -0
  50. package/lib/module/events/NetmeraEventShare.js.map +1 -0
  51. package/lib/module/events/commerce/NetmeraEventCartAddProduct.js +13 -0
  52. package/lib/module/events/commerce/NetmeraEventCartAddProduct.js.map +1 -0
  53. package/lib/module/events/commerce/NetmeraEventCartRemoveProduct.js +10 -0
  54. package/lib/module/events/commerce/NetmeraEventCartRemoveProduct.js.map +1 -0
  55. package/lib/module/events/commerce/NetmeraEventCartView.js +13 -0
  56. package/lib/module/events/commerce/NetmeraEventCartView.js.map +1 -0
  57. package/lib/module/events/commerce/NetmeraEventOrderCancel.js +19 -0
  58. package/lib/module/events/commerce/NetmeraEventOrderCancel.js.map +1 -0
  59. package/lib/module/events/commerce/NetmeraEventProductComment.js +7 -0
  60. package/lib/module/events/commerce/NetmeraEventProductComment.js.map +1 -0
  61. package/lib/module/events/commerce/NetmeraEventProductRate.js +10 -0
  62. package/lib/module/events/commerce/NetmeraEventProductRate.js.map +1 -0
  63. package/lib/module/events/commerce/NetmeraEventProductView.js +7 -0
  64. package/lib/module/events/commerce/NetmeraEventProductView.js.map +1 -0
  65. package/lib/module/events/commerce/NetmeraEventPurchase.js +34 -0
  66. package/lib/module/events/commerce/NetmeraEventPurchase.js.map +1 -0
  67. package/lib/module/events/commerce/NetmeraEventWishList.js +7 -0
  68. package/lib/module/events/commerce/NetmeraEventWishList.js.map +1 -0
  69. package/lib/module/events/commerce/NetmeraLineItem.js +9 -0
  70. package/lib/module/events/commerce/NetmeraLineItem.js.map +1 -0
  71. package/lib/module/events/commerce/NetmeraProduct.js +46 -0
  72. package/lib/module/events/commerce/NetmeraProduct.js.map +1 -0
  73. package/lib/module/events/media/NetmeraEventContent.js +42 -0
  74. package/lib/module/events/media/NetmeraEventContent.js.map +1 -0
  75. package/lib/module/events/media/NetmeraEventContentComment.js +7 -0
  76. package/lib/module/events/media/NetmeraEventContentComment.js.map +1 -0
  77. package/lib/module/events/media/NetmeraEventContentRate.js +10 -0
  78. package/lib/module/events/media/NetmeraEventContentRate.js.map +1 -0
  79. package/lib/module/events/media/NetmeraEventContentView.js +7 -0
  80. package/lib/module/events/media/NetmeraEventContentView.js.map +1 -0
  81. package/lib/module/index.js +43 -0
  82. package/lib/module/index.js.map +1 -0
  83. package/lib/module/models/NMCategoryPreference.js +8 -0
  84. package/lib/module/models/NMCategoryPreference.js.map +1 -0
  85. package/lib/module/models/NMInboxStatus.js +11 -0
  86. package/lib/module/models/NMInboxStatus.js.map +1 -0
  87. package/lib/module/models/NMInboxStatusCountFilter.js +12 -0
  88. package/lib/module/models/NMInboxStatusCountFilter.js.map +1 -0
  89. package/lib/module/models/NetmeraCategory.js +8 -0
  90. package/lib/module/models/NetmeraCategory.js.map +1 -0
  91. package/lib/module/models/NetmeraCategoryFilter.js +8 -0
  92. package/lib/module/models/NetmeraCategoryFilter.js.map +1 -0
  93. package/lib/module/models/NetmeraCouponObject.js +8 -0
  94. package/lib/module/models/NetmeraCouponObject.js.map +1 -0
  95. package/lib/module/models/NetmeraInbox.js +8 -0
  96. package/lib/module/models/NetmeraInbox.js.map +1 -0
  97. package/lib/module/models/NetmeraInboxFilter.js +8 -0
  98. package/lib/module/models/NetmeraInboxFilter.js.map +1 -0
  99. package/lib/module/models/NetmeraProfileAttribute.js +75 -0
  100. package/lib/module/models/NetmeraProfileAttribute.js.map +1 -0
  101. package/lib/module/models/NetmeraUser.js +89 -0
  102. package/lib/module/models/NetmeraUser.js.map +1 -0
  103. package/lib/module/models/NetmeraUserProfile.js +58 -0
  104. package/lib/module/models/NetmeraUserProfile.js.map +1 -0
  105. package/lib/module/models/NotificationPermissionStatus.js +10 -0
  106. package/lib/module/models/NotificationPermissionStatus.js.map +1 -0
  107. package/lib/module/package.json +1 -0
  108. package/lib/module/utils/DeviceUtils.js +10 -0
  109. package/lib/module/utils/DeviceUtils.js.map +1 -0
  110. package/lib/module/utils/Optional.js +32 -0
  111. package/lib/module/utils/Optional.js.map +1 -0
  112. package/lib/module/utils/RNNetmera.js +16 -0
  113. package/lib/module/utils/RNNetmera.js.map +1 -0
  114. package/lib/typescript/package.json +1 -0
  115. package/lib/typescript/src/Netmera.d.ts +70 -0
  116. package/lib/typescript/src/Netmera.d.ts.map +1 -0
  117. package/lib/typescript/src/events/NetmeraEvent.d.ts +5 -0
  118. package/lib/typescript/src/events/NetmeraEvent.d.ts.map +1 -0
  119. package/lib/typescript/src/events/NetmeraEventBannerOpen.d.ts +9 -0
  120. package/lib/typescript/src/events/NetmeraEventBannerOpen.d.ts.map +1 -0
  121. package/lib/typescript/src/events/NetmeraEventBatteryLevel.d.ts +7 -0
  122. package/lib/typescript/src/events/NetmeraEventBatteryLevel.d.ts.map +1 -0
  123. package/lib/typescript/src/events/NetmeraEventCategoryView.d.ts +9 -0
  124. package/lib/typescript/src/events/NetmeraEventCategoryView.d.ts.map +1 -0
  125. package/lib/typescript/src/events/NetmeraEventInAppPurchase.d.ts +19 -0
  126. package/lib/typescript/src/events/NetmeraEventInAppPurchase.d.ts.map +1 -0
  127. package/lib/typescript/src/events/NetmeraEventLogin.d.ts +7 -0
  128. package/lib/typescript/src/events/NetmeraEventLogin.d.ts.map +1 -0
  129. package/lib/typescript/src/events/NetmeraEventRegister.d.ts +7 -0
  130. package/lib/typescript/src/events/NetmeraEventRegister.d.ts.map +1 -0
  131. package/lib/typescript/src/events/NetmeraEventScreenView.d.ts +15 -0
  132. package/lib/typescript/src/events/NetmeraEventScreenView.d.ts.map +1 -0
  133. package/lib/typescript/src/events/NetmeraEventSearch.d.ts +9 -0
  134. package/lib/typescript/src/events/NetmeraEventSearch.d.ts.map +1 -0
  135. package/lib/typescript/src/events/NetmeraEventShare.d.ts +9 -0
  136. package/lib/typescript/src/events/NetmeraEventShare.d.ts.map +1 -0
  137. package/lib/typescript/src/events/commerce/NetmeraEventCartAddProduct.d.ts +9 -0
  138. package/lib/typescript/src/events/commerce/NetmeraEventCartAddProduct.d.ts.map +1 -0
  139. package/lib/typescript/src/events/commerce/NetmeraEventCartRemoveProduct.d.ts +7 -0
  140. package/lib/typescript/src/events/commerce/NetmeraEventCartRemoveProduct.d.ts.map +1 -0
  141. package/lib/typescript/src/events/commerce/NetmeraEventCartView.d.ts +9 -0
  142. package/lib/typescript/src/events/commerce/NetmeraEventCartView.d.ts.map +1 -0
  143. package/lib/typescript/src/events/commerce/NetmeraEventOrderCancel.d.ts +13 -0
  144. package/lib/typescript/src/events/commerce/NetmeraEventOrderCancel.d.ts.map +1 -0
  145. package/lib/typescript/src/events/commerce/NetmeraEventProductComment.d.ts +5 -0
  146. package/lib/typescript/src/events/commerce/NetmeraEventProductComment.d.ts.map +1 -0
  147. package/lib/typescript/src/events/commerce/NetmeraEventProductRate.d.ts +7 -0
  148. package/lib/typescript/src/events/commerce/NetmeraEventProductRate.d.ts.map +1 -0
  149. package/lib/typescript/src/events/commerce/NetmeraEventProductView.d.ts +5 -0
  150. package/lib/typescript/src/events/commerce/NetmeraEventProductView.d.ts.map +1 -0
  151. package/lib/typescript/src/events/commerce/NetmeraEventPurchase.d.ts +24 -0
  152. package/lib/typescript/src/events/commerce/NetmeraEventPurchase.d.ts.map +1 -0
  153. package/lib/typescript/src/events/commerce/NetmeraEventWishList.d.ts +5 -0
  154. package/lib/typescript/src/events/commerce/NetmeraEventWishList.d.ts.map +1 -0
  155. package/lib/typescript/src/events/commerce/NetmeraLineItem.d.ts +6 -0
  156. package/lib/typescript/src/events/commerce/NetmeraLineItem.d.ts.map +1 -0
  157. package/lib/typescript/src/events/commerce/NetmeraProduct.d.ts +23 -0
  158. package/lib/typescript/src/events/commerce/NetmeraProduct.d.ts.map +1 -0
  159. package/lib/typescript/src/events/media/NetmeraEventContent.d.ts +23 -0
  160. package/lib/typescript/src/events/media/NetmeraEventContent.d.ts.map +1 -0
  161. package/lib/typescript/src/events/media/NetmeraEventContentComment.d.ts +5 -0
  162. package/lib/typescript/src/events/media/NetmeraEventContentComment.d.ts.map +1 -0
  163. package/lib/typescript/src/events/media/NetmeraEventContentRate.d.ts +7 -0
  164. package/lib/typescript/src/events/media/NetmeraEventContentRate.d.ts.map +1 -0
  165. package/lib/typescript/src/events/media/NetmeraEventContentView.d.ts +5 -0
  166. package/lib/typescript/src/events/media/NetmeraEventContentView.d.ts.map +1 -0
  167. package/lib/typescript/src/index.d.ts +39 -0
  168. package/lib/typescript/src/index.d.ts.map +1 -0
  169. package/lib/typescript/src/models/NMCategoryPreference.d.ts +6 -0
  170. package/lib/typescript/src/models/NMCategoryPreference.d.ts.map +1 -0
  171. package/lib/typescript/src/models/NMInboxStatus.d.ts +8 -0
  172. package/lib/typescript/src/models/NMInboxStatus.d.ts.map +1 -0
  173. package/lib/typescript/src/models/NMInboxStatusCountFilter.d.ts +7 -0
  174. package/lib/typescript/src/models/NMInboxStatusCountFilter.d.ts.map +1 -0
  175. package/lib/typescript/src/models/NetmeraCategory.d.ts +10 -0
  176. package/lib/typescript/src/models/NetmeraCategory.d.ts.map +1 -0
  177. package/lib/typescript/src/models/NetmeraCategoryFilter.d.ts +6 -0
  178. package/lib/typescript/src/models/NetmeraCategoryFilter.d.ts.map +1 -0
  179. package/lib/typescript/src/models/NetmeraCouponObject.d.ts +8 -0
  180. package/lib/typescript/src/models/NetmeraCouponObject.d.ts.map +1 -0
  181. package/lib/typescript/src/models/NetmeraInbox.d.ts +22 -0
  182. package/lib/typescript/src/models/NetmeraInbox.d.ts.map +1 -0
  183. package/lib/typescript/src/models/NetmeraInboxFilter.d.ts +7 -0
  184. package/lib/typescript/src/models/NetmeraInboxFilter.d.ts.map +1 -0
  185. package/lib/typescript/src/models/NetmeraProfileAttribute.d.ts +33 -0
  186. package/lib/typescript/src/models/NetmeraProfileAttribute.d.ts.map +1 -0
  187. package/lib/typescript/src/models/NetmeraUser.d.ts +25 -0
  188. package/lib/typescript/src/models/NetmeraUser.d.ts.map +1 -0
  189. package/lib/typescript/src/models/NetmeraUserProfile.d.ts +21 -0
  190. package/lib/typescript/src/models/NetmeraUserProfile.d.ts.map +1 -0
  191. package/lib/typescript/src/models/NotificationPermissionStatus.d.ts +7 -0
  192. package/lib/typescript/src/models/NotificationPermissionStatus.d.ts.map +1 -0
  193. package/lib/typescript/src/utils/DeviceUtils.d.ts +3 -0
  194. package/lib/typescript/src/utils/DeviceUtils.d.ts.map +1 -0
  195. package/lib/typescript/src/utils/Optional.d.ts +15 -0
  196. package/lib/typescript/src/utils/Optional.d.ts.map +1 -0
  197. package/lib/typescript/src/utils/RNNetmera.d.ts +5 -0
  198. package/lib/typescript/src/utils/RNNetmera.d.ts.map +1 -0
  199. package/package.json +104 -17
  200. package/src/Netmera.ts +139 -88
  201. package/src/events/NetmeraEvent.ts +1 -1
  202. package/src/events/NetmeraEventBannerOpen.ts +4 -4
  203. package/src/events/NetmeraEventBatteryLevel.ts +3 -3
  204. package/src/events/NetmeraEventCategoryView.ts +4 -4
  205. package/src/events/NetmeraEventInAppPurchase.ts +10 -10
  206. package/src/events/NetmeraEventLogin.ts +3 -3
  207. package/src/events/NetmeraEventRegister.ts +3 -3
  208. package/src/events/NetmeraEventScreenView.ts +7 -7
  209. package/src/events/NetmeraEventSearch.ts +4 -4
  210. package/src/events/NetmeraEventShare.ts +4 -4
  211. package/src/events/commerce/NetmeraEventCartAddProduct.ts +4 -4
  212. package/src/events/commerce/NetmeraEventCartRemoveProduct.ts +3 -3
  213. package/src/events/commerce/NetmeraEventCartView.ts +4 -4
  214. package/src/events/commerce/NetmeraEventOrderCancel.ts +6 -6
  215. package/src/events/commerce/NetmeraEventProductComment.ts +2 -2
  216. package/src/events/commerce/NetmeraEventProductRate.ts +3 -3
  217. package/src/events/commerce/NetmeraEventProductView.ts +2 -2
  218. package/src/events/commerce/NetmeraEventPurchase.ts +13 -13
  219. package/src/events/commerce/NetmeraEventWishList.ts +2 -2
  220. package/src/events/commerce/NetmeraLineItem.ts +2 -2
  221. package/src/events/commerce/NetmeraProduct.ts +10 -10
  222. package/src/events/media/NetmeraEventContent.ts +8 -8
  223. package/src/events/media/NetmeraEventContentComment.ts +2 -2
  224. package/src/events/media/NetmeraEventContentRate.ts +3 -3
  225. package/src/events/media/NetmeraEventContentView.ts +2 -2
  226. package/src/index.ts +87 -0
  227. package/src/models/NMCategoryPreference.ts +1 -1
  228. package/src/models/NMInboxStatusCountFilter.ts +1 -1
  229. package/src/models/NetmeraCategory.ts +2 -2
  230. package/src/models/NetmeraCategoryFilter.ts +1 -1
  231. package/src/models/NetmeraCouponObject.ts +1 -1
  232. package/src/models/NetmeraInbox.ts +1 -1
  233. package/src/models/NetmeraInboxFilter.ts +1 -1
  234. package/src/models/NetmeraProfileAttribute.ts +81 -0
  235. package/src/models/NetmeraUser.ts +76 -74
  236. package/src/models/NetmeraUserProfile.ts +67 -0
  237. package/src/models/NotificationPermissionStatus.ts +4 -4
  238. package/src/utils/DeviceUtils.ts +3 -3
  239. package/src/utils/Optional.ts +31 -0
  240. package/src/utils/RNNetmera.ts +24 -0
  241. package/.eslintignore +0 -7
  242. package/.gitattributes +0 -1
  243. package/.github/workflows/code_quality_check.yaml +0 -38
  244. package/.prettierignore +0 -14
  245. package/.yarnrc.yml +0 -1
  246. package/android/.project +0 -17
  247. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  248. package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  249. package/android/gradlew +0 -172
  250. package/android/gradlew.bat +0 -84
  251. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.java +0 -24
  252. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraCategoryObject.java +0 -56
  253. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfiguration.java +0 -154
  254. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraEvent.java +0 -36
  255. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.java +0 -631
  256. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPackage.java +0 -35
  257. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.java +0 -86
  258. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushHeadlessService.java +0 -32
  259. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUser.java +0 -24
  260. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUtil.java +0 -354
  261. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraWebWidgetCallbacks.java +0 -27
  262. package/index.ts +0 -80
  263. package/ios/RNNetmera.h +0 -32
  264. package/ios/RNNetmera.m +0 -507
  265. package/ios/RNNetmera.xcodeproj/project.pbxproj +0 -316
  266. package/ios/RNNetmera.xcodeproj/xcshareddata/xcschemes/RNNetmera.xcscheme +0 -67
  267. package/ios/RNNetmera.xcworkspace/contents.xcworkspacedata +0 -9
  268. package/ios/RNNetmeraCategoryObject.h +0 -16
  269. package/ios/RNNetmeraCategoryObject.m +0 -59
  270. package/ios/RNNetmeraEvent.h +0 -17
  271. package/ios/RNNetmeraEvent.m +0 -27
  272. package/ios/RNNetmeraRCTEventEmitter.h +0 -23
  273. package/ios/RNNetmeraRCTEventEmitter.m +0 -142
  274. package/ios/RNNetmeraUser.h +0 -15
  275. package/ios/RNNetmeraUser.m +0 -19
  276. package/ios/RNNetmeraUtils.h +0 -27
  277. package/ios/RNNetmeraUtils.m +0 -128
  278. package/scripts/update-version.js +0 -38
  279. package/scripts/yarn_rebuild.sh +0 -31
  280. package/tsconfig.json +0 -3
@@ -0,0 +1,17 @@
1
+ package com.netmera.reactnativesdk
2
+
3
+ import com.facebook.react.ReactPackage
4
+ import com.facebook.react.bridge.NativeModule
5
+ import com.facebook.react.bridge.ReactApplicationContext
6
+ import com.facebook.react.uimanager.ViewManager
7
+
8
+
9
+ class RNNetmeraPackage : ReactPackage {
10
+ override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
11
+ return listOf(RNNetmeraModule(reactContext))
12
+ }
13
+
14
+ override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
15
+ return emptyList()
16
+ }
17
+ }
@@ -0,0 +1,81 @@
1
+ package com.netmera.reactnativesdk
2
+
3
+ import android.content.ComponentName
4
+ import android.content.Context
5
+ import android.content.Intent
6
+ import android.os.Bundle
7
+ import android.util.Log
8
+ import com.facebook.react.HeadlessJsTaskService
9
+ import com.facebook.react.bridge.Arguments
10
+ import com.facebook.react.bridge.ReadableMap
11
+ import com.facebook.react.bridge.WritableMap
12
+ import com.netmera.NetmeraCarouselObject
13
+ import com.netmera.NetmeraPushObject
14
+ import com.netmera.callbacks.NMPushActionCallbacks
15
+ import com.netmera.reactnativesdk.RNNetmeraPushHeadlessService.Companion.TASK_KEY
16
+ import com.netmera.reactnativesdk.RNNetmeraPushHeadlessService.Companion.TASK_MESSAGE
17
+
18
+ class RNNetmeraPushBroadcastReceiver : NMPushActionCallbacks {
19
+
20
+ override fun onPushRegister(context: Context, gcmSenderId: String, pushToken: String) {
21
+ val bundle = Bundle().apply {
22
+ putString("gcmSenderId", gcmSenderId)
23
+ putString("pushToken", pushToken)
24
+ }
25
+ sendEvent(context, "onPushRegister", Arguments.fromBundle(bundle))
26
+ }
27
+
28
+ override fun onPushReceive(context: Context, bundle: Bundle?, netmeraPushObject: NetmeraPushObject) {
29
+ sendEvent(context, "onPushReceive", mergeMap(bundle, netmeraPushObject))
30
+ }
31
+
32
+ override fun onPushOpen(context: Context, bundle: Bundle?, netmeraPushObject: NetmeraPushObject) {
33
+ sendEvent(context, "onPushOpen", mergeMap(bundle, netmeraPushObject))
34
+ }
35
+
36
+ override fun onPushDismiss(context: Context, bundle: Bundle?, netmeraPushObject: NetmeraPushObject) {
37
+ sendEvent(context, "onPushDismiss", mergeMap(bundle, netmeraPushObject))
38
+ }
39
+
40
+ override fun onPushButtonClicked(context: Context, bundle: Bundle?, netmeraPushObject: NetmeraPushObject) {
41
+ sendEvent(context, "onPushButtonClicked", mergeMap(bundle, netmeraPushObject))
42
+ }
43
+
44
+ override fun onCarouselObjectSelected(
45
+ context: Context,
46
+ bundle: Bundle?,
47
+ netmeraPushObject: NetmeraPushObject,
48
+ selectedIndex: Int,
49
+ netmeraCarouselObject: NetmeraCarouselObject
50
+ ) {
51
+ val newBundle = bundle ?: Bundle()
52
+ newBundle.putInt("selectedIndex", selectedIndex)
53
+ val map = RNNetmeraUtil.mapCarouselObject(netmeraCarouselObject)
54
+ map.merge(mergeMap(newBundle, netmeraPushObject))
55
+ sendEvent(context, "onCarouselObjectSelected", map)
56
+ }
57
+
58
+ private fun sendEvent(context: Context, eventName: String, map: WritableMap) {
59
+ try {
60
+ val backgroundIntent = Intent(context, RNNetmeraPushHeadlessService::class.java).apply {
61
+ putExtra(TASK_KEY, eventName)
62
+ putExtra(TASK_MESSAGE, Arguments.toBundle(map))
63
+ }
64
+ val ag = Arguments.toBundle(map)
65
+ val name: ComponentName? = context.startService(backgroundIntent)
66
+ if (name != null) {
67
+ HeadlessJsTaskService.acquireWakeLockNow(context)
68
+ }
69
+ } catch (ex: IllegalStateException) {
70
+ Log.d("RNNetmera Background", "RNNetmera Background Event Exception")
71
+ }
72
+ }
73
+
74
+ private fun mergeMap(bundle: Bundle?, netmeraPushObject: NetmeraPushObject): WritableMap {
75
+ val mapPushObject = RNNetmeraUtil.mapPushObject(netmeraPushObject)
76
+ val mapBundle: ReadableMap? = bundle?.let { Arguments.fromBundle(it) }
77
+ mapBundle?.let { mapPushObject.merge(it) }
78
+ return mapPushObject
79
+ }
80
+
81
+ }
@@ -0,0 +1,32 @@
1
+ package com.netmera.reactnativesdk
2
+
3
+ import android.content.Intent
4
+ import android.os.Bundle
5
+ import android.util.Log
6
+ import com.facebook.react.HeadlessJsTaskService
7
+ import com.facebook.react.bridge.Arguments
8
+ import com.facebook.react.jstasks.HeadlessJsTaskConfig
9
+
10
+ class RNNetmeraPushHeadlessService : HeadlessJsTaskService() {
11
+
12
+ companion object {
13
+ private const val TIMEOUT_DEFAULT: Long = 5000
14
+ const val TASK_KEY = "TASK_KEY"
15
+ const val TASK_MESSAGE = "TASK_MESSAGE"
16
+ }
17
+
18
+ override fun getTaskConfig(intent: Intent?): HeadlessJsTaskConfig? {
19
+ if (intent == null) return null
20
+ val extras = intent.extras
21
+ val remoteMessage: Bundle? = intent.getParcelableExtra(TASK_MESSAGE)
22
+ val taskKey = extras?.getString(TASK_KEY)
23
+ if (extras == null || taskKey == null) return null
24
+
25
+ return HeadlessJsTaskConfig(
26
+ taskKey,
27
+ Arguments.fromBundle(remoteMessage ?: Bundle()),
28
+ TIMEOUT_DEFAULT,
29
+ true
30
+ )
31
+ }
32
+ }
@@ -0,0 +1,218 @@
1
+ package com.netmera.reactnativesdk
2
+
3
+ import android.text.format.DateFormat
4
+ import com.facebook.react.bridge.*
5
+ import com.google.gson.Gson
6
+ import com.netmera.NetmeraCarouselObject
7
+ import com.netmera.NetmeraPushObject
8
+ import com.netmera.NetmeraPushStyle
9
+ import com.netmera.data.NMCategoryPreference
10
+ import com.netmera.data.NMCouponDetail
11
+ import com.netmera.data.NMInboxStatus
12
+ import com.netmera.data.NMInboxStatusCount
13
+ import org.json.JSONArray
14
+ import org.json.JSONObject
15
+
16
+ object RNNetmeraUtil {
17
+
18
+ private fun jsonToWritableMap(jsonObject: JSONObject?): WritableMap? {
19
+ if (jsonObject == null) return null
20
+
21
+ val writableMap: WritableMap = WritableNativeMap()
22
+ val keys = jsonObject.keys()
23
+ if (!keys.hasNext()) return null
24
+
25
+ while (keys.hasNext()) {
26
+ val key = keys.next()
27
+ try {
28
+ val value = jsonObject.get(key)
29
+ when (value) {
30
+ null -> writableMap.putNull(key)
31
+ is Boolean -> writableMap.putBoolean(key, value)
32
+ is Int -> writableMap.putInt(key, value)
33
+ is Double -> writableMap.putDouble(key, value)
34
+ is String -> writableMap.putString(key, value)
35
+ is JSONObject -> writableMap.putMap(key, jsonToWritableMap(value))
36
+ is JSONArray -> writableMap.putArray(key, jsonArrayToWritableArray(value))
37
+ }
38
+ } catch (ignored: Exception) {
39
+ }
40
+ }
41
+ return writableMap
42
+ }
43
+
44
+ fun jsonArrayToWritableArray(jsonArray: JSONArray?): WritableArray? {
45
+ if (jsonArray == null || jsonArray.length() <= 0) return null
46
+ val writableArray: WritableArray = WritableNativeArray()
47
+ for (i in 0 until jsonArray.length()) {
48
+ try {
49
+ val value = jsonArray.get(i)
50
+ when (value) {
51
+ null -> writableArray.pushNull()
52
+ is Boolean -> writableArray.pushBoolean(value)
53
+ is Int -> writableArray.pushInt(value)
54
+ is Double -> writableArray.pushDouble(value)
55
+ is String -> writableArray.pushString(value)
56
+ is JSONObject -> writableArray.pushMap(jsonToWritableMap(value))
57
+ is JSONArray -> writableArray.pushArray(jsonArrayToWritableArray(value))
58
+ }
59
+ } catch (ignored: Exception) {
60
+ }
61
+ }
62
+ return writableArray
63
+ }
64
+
65
+ fun toMap(readableMap: ReadableMap?): Map<String, Any?> {
66
+ val map = mutableMapOf<String, Any?>()
67
+ if (readableMap == null) return map
68
+
69
+ val iterator = readableMap.keySetIterator()
70
+ while (iterator.hasNextKey()) {
71
+ val key = iterator.nextKey()
72
+ when (readableMap.getType(key)) {
73
+ ReadableType.Null -> map[key] = null
74
+ ReadableType.Boolean -> map[key] = readableMap.getBoolean(key)
75
+ ReadableType.Number -> {
76
+ val value = readableMap.getDouble(key)
77
+ map[key] = if (value % 1 == 0.0) value.toLong() else value
78
+ }
79
+ ReadableType.String -> map[key] = readableMap.getString(key)
80
+ ReadableType.Map -> map[key] = toMap(readableMap.getMap(key))
81
+ ReadableType.Array -> map[key] = toList(readableMap.getArray(key))
82
+ }
83
+ }
84
+ return map
85
+ }
86
+
87
+ fun toList(readableArray: ReadableArray?): List<Any?> {
88
+ if (readableArray == null) return emptyList()
89
+
90
+ val list = mutableListOf<Any?>()
91
+ for (i in 0 until readableArray.size()) {
92
+ when (readableArray.getType(i)) {
93
+ ReadableType.Null -> list.add(null)
94
+ ReadableType.Boolean -> list.add(readableArray.getBoolean(i))
95
+ ReadableType.Number -> {
96
+ val value = readableArray.getDouble(i)
97
+ list.add(if (value % 1 == 0.0) value.toLong() else value)
98
+ }
99
+ ReadableType.String -> list.add(readableArray.getString(i))
100
+ ReadableType.Map -> list.add(toMap(readableArray.getMap(i)))
101
+ ReadableType.Array -> list.add(toList(readableArray.getArray(i)))
102
+ }
103
+ }
104
+ return list
105
+ }
106
+
107
+ fun mapCouponObjects(couponObjects: List<NMCouponDetail>): WritableArray {
108
+ val array: WritableArray = Arguments.createArray()
109
+ couponObjects.forEach { array.pushMap(mapCouponObject(it)) }
110
+ return array
111
+ }
112
+
113
+ fun mapCouponObject(couponObject: NMCouponDetail?): WritableMap {
114
+ val map: WritableMap = Arguments.createMap()
115
+ if (couponObject == null) return map
116
+ map.putString("couponId", couponObject.couponId)
117
+ map.putString("name", couponObject.name)
118
+ map.putString("code", couponObject.code)
119
+ couponObject.assignDate?.let { map.putString("assignDate", it.toString()) }
120
+ couponObject.expireDate?.let { map.putString("expireDate", it.toString()) }
121
+ return map
122
+ }
123
+
124
+ fun mapPushObjects(pushObjects: List<NetmeraPushObject>): WritableArray {
125
+ val array: WritableArray = Arguments.createArray()
126
+ pushObjects.forEach { array.pushMap(mapPushObject(it)) }
127
+ return array
128
+ }
129
+
130
+ fun mapPushObject(pushObject: NetmeraPushObject?): WritableMap {
131
+ val map: WritableMap = Arguments.createMap()
132
+ if (pushObject == null) return map
133
+
134
+ map.putInt("pushType", pushObject.pushType)
135
+ map.putString("pushId", pushObject.pushId)
136
+ map.putString("pushInstanceId", pushObject.pushInstanceId)
137
+ map.putInt("inboxStatus", pushObject.inboxStatus)
138
+ map.putString("category", pushObject.category)
139
+
140
+ pushObject.deepLink?.let { map.putString("deepLink", it.toString()) }
141
+ pushObject.externalId?.let { map.putString("externalId", it) }
142
+ pushObject.categories?.let { map.putArray("categories", Arguments.fromList(it)) }
143
+
144
+ if (!pushObject.customJson.isJsonNull && pushObject.customJson.size() > 0) {
145
+ try {
146
+ val json = JSONObject(pushObject.customJson.toString())
147
+ map.putMap("customJson", jsonToWritableMap(json))
148
+ } catch (ignored: Throwable) {
149
+ }
150
+ }
151
+
152
+ pushObject.popupExpirationTime?.let {
153
+ map.putString("expireTime", DateFormat.format("yyyy-MM-dd HH:mm:ss", it).toString())
154
+ }
155
+
156
+ pushObject.interactiveActions?.let {
157
+ if (it.isNotEmpty()) map.putString("interactiveActions", Gson().toJson(it))
158
+ }
159
+
160
+ pushObject.pushStyle?.let { style ->
161
+ style.contentTitle?.let { map.putString("title", it) }
162
+ style.subText?.let { map.putString("subtitle", it) }
163
+ style.contentText?.let { map.putString("body", it) }
164
+ style.bigPicturePath?.let { map.putString("mediaAttachmentURL", it) }
165
+ style.retrieveCarouselObjects()?.let { map.putString("carousel", Gson().toJson(it)) }
166
+ }
167
+
168
+ pushObject.sendDate?.let {
169
+ map.putString(
170
+ "sendDate", DateFormat.format("yyyy-MM-dd HH:mm:ss", it).toString()
171
+ )
172
+ }
173
+ pushObject.pushAction?.let {
174
+ map.putString("pushAction", Gson().toJson(it))
175
+ pushObject.webPageUrl?.let { url -> map.putString("webPage", url) }
176
+ }
177
+
178
+ return map
179
+ }
180
+
181
+ fun mapCarouselObject(carouselObject: NetmeraCarouselObject): WritableMap {
182
+ val map: WritableMap = Arguments.createMap()
183
+ map.putString("id", carouselObject.id)
184
+ map.putString("action", Gson().toJson(carouselObject.action))
185
+ map.putString("picturePath", carouselObject.picturePath)
186
+ return map
187
+ }
188
+
189
+ fun getInboxStatus(code: Int): NMInboxStatus {
190
+ return NMInboxStatus.values().find { it.code == code } ?: NMInboxStatus.STATUS_ALL
191
+ }
192
+
193
+ fun parseInboxCountForStatusToMap(nmInboxStatusCount: NMInboxStatusCount): WritableMap {
194
+ val map: WritableMap = Arguments.createMap()
195
+ val allCount = nmInboxStatusCount.getCountForStatus(NMInboxStatus.STATUS_ALL) ?: 0
196
+ val deletedCount = nmInboxStatusCount.getCountForStatus(NMInboxStatus.STATUS_DELETED) ?: 0
197
+ val readCount = nmInboxStatusCount.getCountForStatus(NMInboxStatus.STATUS_READ) ?: 0
198
+ val unreadCount = nmInboxStatusCount.getCountForStatus(NMInboxStatus.STATUS_UNREAD) ?: 0
199
+ map.putInt(NMInboxStatus.STATUS_ALL.code.toString(), allCount)
200
+ map.putInt(NMInboxStatus.STATUS_DELETED.code.toString(), deletedCount)
201
+ map.putInt(NMInboxStatus.STATUS_READ.code.toString(), readCount)
202
+ map.putInt(NMInboxStatus.STATUS_UNREAD.code.toString(), unreadCount)
203
+ return map
204
+ }
205
+
206
+ fun parseUserCategoryPreferenceListToMap(preferences: List<NMCategoryPreference>): WritableArray {
207
+ val array: WritableArray = Arguments.createArray()
208
+ preferences.forEach { pref ->
209
+ val map: WritableMap = Arguments.createMap()
210
+ pref.categoryId?.let { map.putInt("categoryId", it) }
211
+ map.putString("categoryName", pref.categoryName)
212
+ pref.optInStatus?.let { map.putBoolean("optInStatus", it) }
213
+ array.pushMap(map)
214
+ }
215
+ return array
216
+ }
217
+
218
+ }
@@ -0,0 +1,25 @@
1
+ package com.netmera.reactnativesdk
2
+
3
+ import com.netmera.callbacks.NMWebWidgetCallbacks
4
+
5
+ class RNNetmeraWebWidgetCallbacks : NMWebWidgetCallbacks {
6
+ companion object {
7
+ private const val ON_WIDGET_URL_TRIGGERED = "onWidgetUrlTriggered"
8
+ }
9
+
10
+ override fun onDeeplinkTriggered(s: String) {
11
+ RNNetmeraModule.emitEvent(ON_WIDGET_URL_TRIGGERED, s)
12
+ }
13
+
14
+ override fun onOpenUrlTriggered(s: String) {
15
+ RNNetmeraModule.emitEvent(ON_WIDGET_URL_TRIGGERED, s)
16
+ }
17
+
18
+ override fun onWebWidgetShown(s: String) {
19
+ // There is no equivalent for this feature in iOS
20
+ }
21
+
22
+ override fun onWebWidgetDismiss(s: String) {
23
+ // There is no equivalent for this feature in iOS
24
+ }
25
+ }
@@ -0,0 +1,151 @@
1
+ //
2
+ // AnyCodable.swift
3
+ //
4
+
5
+ import Foundation
6
+ /**
7
+ A type-erased `Codable` value.
8
+
9
+ The `AnyCodable` type forwards encoding and decoding responsibilities
10
+ to an underlying value, hiding its specific underlying type.
11
+
12
+ You can encode or decode mixed-type values in dictionaries
13
+ and other collections that require `Encodable` or `Decodable` conformance
14
+ by declaring their contained type to be `AnyCodable`.
15
+
16
+ - SeeAlso: `AnyEncodable`
17
+ - SeeAlso: `AnyDecodable`
18
+ */
19
+ @frozen public struct AnyCodable: Codable {
20
+ public let value: Any
21
+
22
+ public init<T>(_ value: T?) {
23
+ self.value = value ?? ()
24
+ }
25
+ }
26
+
27
+ extension AnyCodable: _AnyEncodable, _AnyDecodable {}
28
+
29
+ extension AnyCodable: Equatable {
30
+ public static func == (lhs: AnyCodable, rhs: AnyCodable) -> Bool {
31
+ switch (lhs.value, rhs.value) {
32
+ case is (Void, Void):
33
+ return true
34
+ case let (lhs as Bool, rhs as Bool):
35
+ return lhs == rhs
36
+ case let (lhs as Int, rhs as Int):
37
+ return lhs == rhs
38
+ case let (lhs as Int8, rhs as Int8):
39
+ return lhs == rhs
40
+ case let (lhs as Int16, rhs as Int16):
41
+ return lhs == rhs
42
+ case let (lhs as Int32, rhs as Int32):
43
+ return lhs == rhs
44
+ case let (lhs as Int64, rhs as Int64):
45
+ return lhs == rhs
46
+ case let (lhs as UInt, rhs as UInt):
47
+ return lhs == rhs
48
+ case let (lhs as UInt8, rhs as UInt8):
49
+ return lhs == rhs
50
+ case let (lhs as UInt16, rhs as UInt16):
51
+ return lhs == rhs
52
+ case let (lhs as UInt32, rhs as UInt32):
53
+ return lhs == rhs
54
+ case let (lhs as UInt64, rhs as UInt64):
55
+ return lhs == rhs
56
+ case let (lhs as Float, rhs as Float):
57
+ return lhs == rhs
58
+ case let (lhs as Double, rhs as Double):
59
+ return lhs == rhs
60
+ case let (lhs as String, rhs as String):
61
+ return lhs == rhs
62
+ case let (lhs as [String: AnyCodable], rhs as [String: AnyCodable]):
63
+ return lhs == rhs
64
+ case let (lhs as [AnyCodable], rhs as [AnyCodable]):
65
+ return lhs == rhs
66
+ case let (lhs as [String: Any], rhs as [String: Any]):
67
+ return NSDictionary(dictionary: lhs) == NSDictionary(dictionary: rhs)
68
+ case let (lhs as [Any], rhs as [Any]):
69
+ return NSArray(array: lhs) == NSArray(array: rhs)
70
+ case is (NSNull, NSNull):
71
+ return true
72
+ default:
73
+ return false
74
+ }
75
+ }
76
+ }
77
+
78
+ extension AnyCodable: CustomStringConvertible {
79
+ public var description: String {
80
+ switch value {
81
+ case is Void:
82
+ return String(describing: nil as Any?)
83
+ case let value as CustomStringConvertible:
84
+ return value.description
85
+ default:
86
+ return String(describing: value)
87
+ }
88
+ }
89
+ }
90
+
91
+ extension AnyCodable: CustomDebugStringConvertible {
92
+ public var debugDescription: String {
93
+ switch value {
94
+ case let value as CustomDebugStringConvertible:
95
+ return "AnyCodable(\(value.debugDescription))"
96
+ default:
97
+ return "AnyCodable(\(description))"
98
+ }
99
+ }
100
+ }
101
+
102
+ extension AnyCodable: ExpressibleByNilLiteral {}
103
+ extension AnyCodable: ExpressibleByBooleanLiteral {}
104
+ extension AnyCodable: ExpressibleByIntegerLiteral {}
105
+ extension AnyCodable: ExpressibleByFloatLiteral {}
106
+ extension AnyCodable: ExpressibleByStringLiteral {}
107
+ extension AnyCodable: ExpressibleByStringInterpolation {}
108
+ extension AnyCodable: ExpressibleByArrayLiteral {}
109
+ extension AnyCodable: ExpressibleByDictionaryLiteral {}
110
+
111
+
112
+ extension AnyCodable: Hashable {
113
+ public func hash(into hasher: inout Hasher) {
114
+ switch value {
115
+ case let value as Bool:
116
+ hasher.combine(value)
117
+ case let value as Int:
118
+ hasher.combine(value)
119
+ case let value as Int8:
120
+ hasher.combine(value)
121
+ case let value as Int16:
122
+ hasher.combine(value)
123
+ case let value as Int32:
124
+ hasher.combine(value)
125
+ case let value as Int64:
126
+ hasher.combine(value)
127
+ case let value as UInt:
128
+ hasher.combine(value)
129
+ case let value as UInt8:
130
+ hasher.combine(value)
131
+ case let value as UInt16:
132
+ hasher.combine(value)
133
+ case let value as UInt32:
134
+ hasher.combine(value)
135
+ case let value as UInt64:
136
+ hasher.combine(value)
137
+ case let value as Float:
138
+ hasher.combine(value)
139
+ case let value as Double:
140
+ hasher.combine(value)
141
+ case let value as String:
142
+ hasher.combine(value)
143
+ case let value as [String: AnyCodable]:
144
+ hasher.combine(value)
145
+ case let value as [AnyCodable]:
146
+ hasher.combine(value)
147
+ default:
148
+ break
149
+ }
150
+ }
151
+ }