react-native-netmera 1.3.4 → 1.3.5

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 (52) hide show
  1. package/README.md +475 -17
  2. package/android/.gradle/4.10.1/fileHashes/fileHashes.bin +0 -0
  3. package/android/.gradle/4.10.1/fileHashes/fileHashes.lock +0 -0
  4. package/android/.idea/gradle.xml +1 -0
  5. package/android/build/.transforms/07da1e78aa5e2a23e865850e1fa31195/classes/classes.dex +0 -0
  6. package/android/build/.transforms/07da1e78aa5e2a23e865850e1fa31195.bin +1 -0
  7. package/android/build/.transforms/61070ab087fd3e8aaad4987d1cd9aeb2/classes/classes.dex +0 -0
  8. package/android/build/.transforms/61070ab087fd3e8aaad4987d1cd9aeb2.bin +1 -0
  9. package/android/build/.transforms/ae3b3ad311ea4fe5b0c3652f1d5b8a07/classes/classes.dex +0 -0
  10. package/android/build/.transforms/cc45f1af54894b49e3ec8f6b5a05a8d7/classes/classes.dex +0 -0
  11. package/android/build/.transforms/f58e3ec11746c18253c1a7a566c2609f/classes/classes.dex +0 -0
  12. package/android/build/.transforms/f58e3ec11746c18253c1a7a566c2609f.bin +1 -0
  13. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +1 -1
  14. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  15. package/android/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/R.jar +0 -0
  16. package/android/build/intermediates/compile_symbol_list/debug/R.txt +13 -0
  17. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmera.class +0 -0
  18. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraCategoryObject.class +0 -0
  19. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraConfiguration$1.class +0 -0
  20. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraConfiguration$Builder.class +0 -0
  21. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraConfiguration.class +0 -0
  22. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraModule$1.class +0 -0
  23. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraModule$2.class +0 -0
  24. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraModule$3.class +0 -0
  25. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraModule$4.class +0 -0
  26. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraModule$5.class +0 -0
  27. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraModule$6.class +0 -0
  28. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraModule$7.class +0 -0
  29. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraModule.class +0 -0
  30. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.class +0 -0
  31. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraUtil$1.class +0 -0
  32. package/android/build/intermediates/javac/debug/classes/com/netmera/reactnativesdk/RNNetmeraUtil.class +0 -0
  33. package/android/build/intermediates/library_manifest/debug/AndroidManifest.xml +1 -1
  34. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +1 -1
  35. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  36. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +13 -0
  37. package/android/build.gradle +4 -6
  38. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.java +4 -8
  39. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraCategoryObject.java +56 -0
  40. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfiguration.java +128 -0
  41. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.java +146 -17
  42. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.java +16 -38
  43. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUtil.java +68 -68
  44. package/index.js +116 -42
  45. package/ios/RNNetmera.h +6 -0
  46. package/ios/RNNetmera.m +212 -101
  47. package/ios/RNNetmeraCategoryObject.h +16 -0
  48. package/ios/RNNetmeraCategoryObject.m +59 -0
  49. package/ios/RNNetmeraRCTEventEmitter.h +4 -3
  50. package/ios/RNNetmeraRCTEventEmitter.m +9 -5
  51. package/ios/RNNetmeraUtils.m +45 -14
  52. package/package.json +1 -1
@@ -10,6 +10,7 @@ package com.netmera.reactnativesdk;
10
10
 
11
11
  import android.app.ActivityManager;
12
12
  import android.content.Context;
13
+ import android.text.format.DateFormat;
13
14
 
14
15
  import androidx.annotation.Nullable;
15
16
 
@@ -24,6 +25,7 @@ import com.facebook.react.bridge.WritableMap;
24
25
  import com.facebook.react.bridge.WritableNativeArray;
25
26
  import com.facebook.react.bridge.WritableNativeMap;
26
27
  import com.facebook.react.common.LifecycleState;
28
+ import com.google.gson.Gson;
27
29
  import com.netmera.NetmeraPushObject;
28
30
 
29
31
  import org.json.JSONArray;
@@ -133,7 +135,7 @@ class RNNetmeraUtil {
133
135
  break;
134
136
  case Number:
135
137
  if (readableMap.getDouble(key) % 1 == 0) {
136
- map.put(key, (long)readableMap.getDouble(key));
138
+ map.put(key, (long) readableMap.getDouble(key));
137
139
  } else {
138
140
  map.put(key, readableMap.getDouble(key));
139
141
  }
@@ -168,7 +170,7 @@ class RNNetmeraUtil {
168
170
  break;
169
171
  case Number:
170
172
  if (readableArray.getDouble(i) % 1 == 0) {
171
- array[i] = (long)readableArray.getDouble(i);
173
+ array[i] = (long) readableArray.getDouble(i);
172
174
  } else {
173
175
  array[i] = readableArray.getDouble(i);
174
176
  }
@@ -197,70 +199,68 @@ class RNNetmeraUtil {
197
199
  }
198
200
 
199
201
  public static WritableMap mapPushObject(NetmeraPushObject pushObject) {
200
- WritableMap pushObjectMap = Arguments.createMap();
201
- pushObjectMap.putString("title", pushObject.getPushStyle().getContentTitle());
202
- pushObjectMap.putString("subtitle", pushObject.getPushStyle().getContentText());
203
- pushObjectMap.putString("body", pushObject.getPushStyle().getContentText());
204
- pushObjectMap.putInt("pushType", pushObject.getPushType());
205
- pushObjectMap.putString("pushId", pushObject.getPushId());
206
- pushObjectMap.putString("pushInstanceId", pushObject.getPushInstanceId());
207
- pushObjectMap.putString("sendDate", String.valueOf(pushObject.getSendDate()));
208
- pushObjectMap.putInt("inboxStatus", pushObject.getInboxStatus());
209
-
210
- try{
211
- if (pushObject.getDeepLink() != null) {
212
- pushObjectMap.putString("deepLink", String.valueOf(pushObject.getDeepLink()));
213
- }
214
- }catch (UnsupportedOperationException e){
215
-
216
- }
217
-
218
- if (pushObject.getExternalId() != null) {
219
- pushObjectMap.putString("externalId", pushObject.getExternalId());
220
- }
221
- if (pushObject.getCategories() != null && !pushObject.getCategories().isEmpty()) {
222
- pushObjectMap.putArray("categories", Arguments.fromList(pushObject.getCategories()));
223
- }
224
- if (pushObject.getPushStyle().getBigPicturePath() != null) {
225
- pushObjectMap.putString("mediaAttachmentURL", pushObject.getPushStyle().getBigPicturePath());
226
- }
227
- if (!pushObject.getCustomJson().isJsonNull() && pushObject.getCustomJson().size() > 0) {
228
- try {
229
- JSONObject jsonObject = new JSONObject(pushObject.getCustomJson().toString());
230
- pushObjectMap.putMap("customJson", jsonToWritableMap(jsonObject));
231
- } catch (Throwable e) {
232
- e.printStackTrace();
233
- }
234
- }
235
-
236
- return pushObjectMap;
237
- }
238
-
239
- public static boolean isAppInForeground(Context context) {
240
- ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
241
- if (activityManager == null) return false;
242
-
243
- List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
244
- if (appProcesses == null) return false;
245
-
246
- final String packageName = context.getPackageName();
247
- for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
248
- if (
249
- appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND
250
- && appProcess.processName.equals(packageName)
251
- ) {
252
- ReactContext reactContext;
253
-
254
- try {
255
- reactContext = (ReactContext) context;
256
- } catch (ClassCastException exception) {
257
- return true;
258
- }
259
-
260
- return reactContext.getLifecycleState() == LifecycleState.RESUMED;
261
- }
262
- }
263
-
264
- return false;
265
- }
202
+ WritableMap pushObjectMap = Arguments.createMap();
203
+ pushObjectMap.putInt("pushType", pushObject.getPushType());
204
+ pushObjectMap.putString("pushId", pushObject.getPushId());
205
+ pushObjectMap.putString("pushInstanceId", pushObject.getPushInstanceId());
206
+ pushObjectMap.putString("sendDate", String.valueOf(pushObject.getSendDate()));
207
+ pushObjectMap.putInt("inboxStatus", pushObject.getInboxStatus());
208
+ pushObjectMap.putString("category", pushObject.getCategory());
209
+
210
+ try {
211
+ if (pushObject.getDeepLink() != null) {
212
+ pushObjectMap.putString("deepLink", String.valueOf(pushObject.getDeepLink()));
213
+ }
214
+ } catch (UnsupportedOperationException ignored) {
215
+ }
216
+
217
+ if (pushObject.getExternalId() != null) {
218
+ pushObjectMap.putString("externalId", pushObject.getExternalId());
219
+ }
220
+ if (pushObject.getCategories() != null && !pushObject.getCategories().isEmpty()) {
221
+ pushObjectMap.putArray("categories", Arguments.fromList(pushObject.getCategories()));
222
+ }
223
+ if (pushObject.getPushStyle().getBigPicturePath() != null) {
224
+ pushObjectMap.putString("mediaAttachmentURL", pushObject.getPushStyle().getBigPicturePath());
225
+ }
226
+ if (!pushObject.getCustomJson().isJsonNull() && pushObject.getCustomJson().size() > 0) {
227
+ try {
228
+ JSONObject jsonObject = new JSONObject(pushObject.getCustomJson().toString());
229
+ pushObjectMap.putMap("customJson", jsonToWritableMap(jsonObject));
230
+ } catch (Throwable e) {
231
+ e.printStackTrace();
232
+ }
233
+ }
234
+
235
+ if (pushObject.getPopupExpirationTime() != null) {
236
+ pushObjectMap.putString("expireTime", String.valueOf(DateFormat.format("yyyy-MM-dd HH:mm:ss", pushObject.getPopupExpirationTime())));
237
+ }
238
+
239
+ if (pushObject.getWebPageUrl() != null) {
240
+ pushObjectMap.putString("webPage", pushObject.getWebPageUrl());
241
+ }
242
+
243
+ if (pushObject.getInteractiveActions() != null && !pushObject.getInteractiveActions().isEmpty()) {
244
+ pushObjectMap.putString("interactiveActions", new Gson().toJson(pushObject.getInteractiveActions()));
245
+ }
246
+
247
+ /* Push Style */
248
+ if (pushObject.getPushStyle() != null) {
249
+ pushObjectMap.putString("title", pushObject.getPushStyle().getContentTitle());
250
+ pushObjectMap.putString("subtitle", pushObject.getPushStyle().getSubText());
251
+ pushObjectMap.putString("body", pushObject.getPushStyle().getContentText());
252
+ pushObjectMap.putString("mediaAttachmentURL", pushObject.getPushStyle().getBigPicturePath());
253
+ pushObjectMap.putString("carousel", new Gson().toJson(pushObject.getPushStyle().retrieveCarouselObjects()));
254
+ }
255
+
256
+ if (pushObject.getSendDate() != null) {
257
+ pushObjectMap.putString("sendDate", String.valueOf(DateFormat.format("yyyy-MM-dd HH:mm:ss", pushObject.getSendDate())));
258
+ }
259
+
260
+ if (pushObject.getPushAction() != null) {
261
+ pushObjectMap.putString("pushAction", new Gson().toJson(pushObject.getPushAction()));
262
+ }
263
+
264
+ return pushObjectMap;
265
+ }
266
266
  }
package/index.js CHANGED
@@ -1,9 +1,10 @@
1
- import {NativeModules, NativeEventEmitter, DeviceEventEmitter, Platform} from 'react-native'
1
+ import {AppRegistry, NativeEventEmitter, NativeModules, Platform} from 'react-native'
2
2
 
3
3
  const {RNNetmera, RNNetmeraRCTEventEmitter} = NativeModules;
4
4
 
5
5
  const netmeraRCTEventEmitter = new NativeEventEmitter(RNNetmeraRCTEventEmitter);
6
6
 
7
+
7
8
  class Netmera {
8
9
 
9
10
  static get PUSH_OBJECT_STATUS_READ() {
@@ -26,39 +27,55 @@ class Netmera {
26
27
  return 7
27
28
  }
28
29
 
29
- static addEventListener(type, handler) {
30
- if (Platform.OS === 'android') {
31
- DeviceEventEmitter.addListener(type, handler)
32
- } else if (Platform.OS === 'ios') {
33
- netmeraRCTEventEmitter.addListener(type, handler)
30
+ static initBroadcastReceiver(onPushRegister,
31
+ onPushReceive,
32
+ onPushOpen,
33
+ onPushDismiss,
34
+ onPushButtonClicked) {
35
+ if (onPushRegister) {
36
+ if (Platform.OS === 'android') {
37
+ AppRegistry.registerHeadlessTask("onPushRegister", () => onPushRegister);
38
+ } else {
39
+ netmeraRCTEventEmitter.addListener("onPushRegister", onPushRegister)
40
+ }
34
41
  }
35
- }
36
-
37
- static removeEventListener(type) {
38
- if (Platform.OS === 'android') {
39
- DeviceEventEmitter.removeListener(type)
40
- } else if (Platform.OS === 'ios') {
41
- netmeraRCTEventEmitter.removeListener(type)
42
+ if (onPushReceive) {
43
+ if (Platform.OS === 'android') {
44
+ AppRegistry.registerHeadlessTask("onPushReceive", () => onPushReceive);
45
+ } else {
46
+ netmeraRCTEventEmitter.addListener("onPushReceive", onPushReceive)
47
+ }
42
48
  }
43
- }
44
-
45
- static initNetmera(gcmSenderId = "", apiKey) {
46
- if (Platform.OS === "android") {
47
- RNNetmera.initNetmera(gcmSenderId, apiKey)
48
- } else if (Platform.OS === "ios") {
49
- RNNetmera.initNetmera(apiKey)
49
+ if (onPushOpen) {
50
+ if (Platform.OS === 'android') {
51
+ AppRegistry.registerHeadlessTask("onPushOpen", () => onPushOpen);
52
+ } else {
53
+ netmeraRCTEventEmitter.addListener("onPushOpen", onPushOpen)
54
+ }
55
+ }
56
+ if (onPushDismiss) {
57
+ if (Platform.OS === 'android') {
58
+ AppRegistry.registerHeadlessTask("onPushDismiss", () => onPushDismiss);
59
+ } else {
60
+ netmeraRCTEventEmitter.addListener("onPushDismiss", onPushDismiss)
61
+ }
62
+ }
63
+ if (onPushButtonClicked) {
64
+ if (Platform.OS === 'android') {
65
+ AppRegistry.registerHeadlessTask("onPushButtonClicked", () => onPushButtonClicked);
66
+ }
50
67
  }
51
68
  }
52
69
 
53
- static currentExternalId() {
70
+ static async currentExternalId(): Promise<string> {
54
71
  return RNNetmera.currentExternalId()
55
72
  }
56
73
 
57
- static logging(enabled) {
74
+ static logging(enabled: boolean) {
58
75
  RNNetmera.logging(enabled)
59
76
  }
60
77
 
61
- static setBaseUrl(baseUrl) {
78
+ static setBaseUrl(baseUrl: string) {
62
79
  RNNetmera.setBaseUrl(baseUrl)
63
80
  }
64
81
 
@@ -72,7 +89,7 @@ class Netmera {
72
89
  RNNetmera.requestPermissionsForLocation()
73
90
  }
74
91
 
75
- static setNetmeraMaxActiveRegions(maxActiveRegions) {
92
+ static setNetmeraMaxActiveRegions(maxActiveRegions: number) {
76
93
  RNNetmera.setNetmeraMaxActiveRegions(maxActiveRegions)
77
94
  }
78
95
 
@@ -84,7 +101,7 @@ class Netmera {
84
101
  RNNetmera.disablePopupPresentation()
85
102
  }
86
103
 
87
- static isPushEnabled() {
104
+ static async isPushEnabled(): Promise<boolean> {
88
105
  return RNNetmera.isPushEnabled()
89
106
  }
90
107
 
@@ -96,17 +113,17 @@ class Netmera {
96
113
  RNNetmera.disablePush()
97
114
  }
98
115
 
99
- static turnOffSendingEventAndUserUpdate(turnOff) {
116
+ static turnOffSendingEventAndUserUpdate(turnOff: boolean) {
100
117
  if (Platform.OS === 'android') {
101
118
  RNNetmera.turnOffSendingEventAndUserUpdate(turnOff)
102
119
  }
103
120
  }
104
121
 
105
- static fetchInbox(netmeraInboxFilter) {
122
+ static fetchInbox(netmeraInboxFilter: NetmeraInboxFilter): Promise<Array<NetmeraPushInbox>> {
106
123
  return RNNetmera.fetchInbox(netmeraInboxFilter)
107
124
  }
108
125
 
109
- static fetchNextPage() {
126
+ static fetchNextPage(): Promise<Array<NetmeraPushInbox>> {
110
127
  return RNNetmera.fetchNextPage();
111
128
  }
112
129
 
@@ -114,30 +131,49 @@ class Netmera {
114
131
  return RNNetmera.countForStatus(status)
115
132
  }
116
133
 
117
- static inboxUpdateStatus(fromIndex, toIndex, status = this.PUSH_OBJECT_STATUS_UNREAD) {
134
+ static inboxUpdateStatus(fromIndex: number, toIndex: number, status: number = this.PUSH_OBJECT_STATUS_UNREAD) {
118
135
  return RNNetmera.inboxUpdateStatus(fromIndex, toIndex, status)
119
136
  }
120
137
 
121
- // TODO
122
- // fetchCategory
123
- // fetchNextCategoryPage
138
+ static fetchCategory(categoryFilter: NetmeraCategoryFilter): Promise<Array<NetmeraCategory>> {
139
+ return RNNetmera.fetchCategory(categoryFilter)
140
+ }
141
+
142
+ static fetchNextCategoryPage(): Promise<Array<NetmeraCategory>> {
143
+ return RNNetmera.fetchNextCategoryPage();
144
+ }
124
145
 
125
146
  static sendEvent(event) {
126
147
  RNNetmera.sendEvent(event)
127
148
  }
128
149
 
129
- static updateUser(user) {
150
+ static updateUser(user: NetmeraUser) {
130
151
  RNNetmera.updateUser(user)
131
152
  }
132
153
 
133
- // TODO
134
- // initializeService
135
- // setApiKey
136
- // handlePushObject
137
- // handleLastMessage
138
- // handleInteractiveAction
139
- // updateStatusByCategories
140
- // updateAll
154
+ static updateAll(inboxStatus: number) {
155
+ return RNNetmera.updateAll(inboxStatus)
156
+ }
157
+
158
+ static handlePushObject(pushId: string) {
159
+ RNNetmera.handlePushObject(pushId)
160
+ }
161
+
162
+ static handleInteractiveAction(pushId: string) {
163
+ RNNetmera.handleInteractiveAction(pushId)
164
+ }
165
+
166
+ static setApiKey(apiKey: string) {
167
+ RNNetmera.setApiKey(apiKey)
168
+ }
169
+
170
+ static handleLastMessage(categoryName: string) {
171
+ RNNetmera.handleLastMessage(categoryName)
172
+ }
173
+
174
+ static updateStatusByCategories(fromIndex: number, toIndex: number, status: number = this.PUSH_OBJECT_STATUS_UNREAD) {
175
+ return RNNetmera.updateStatusByCategories(fromIndex, toIndex, status)
176
+ }
141
177
  }
142
178
 
143
179
 
@@ -243,4 +279,42 @@ class NetmeraInboxFilter {
243
279
  }
244
280
  }
245
281
 
246
- module.exports = {Netmera, NetmeraUser, NetmeraInboxFilter};
282
+ class NetmeraCategoryFilter {
283
+ constructor() {
284
+ this.pageSize = undefined;
285
+ this.status = undefined;
286
+ this.includeExpiredObjects = false;
287
+ }
288
+ }
289
+
290
+ class NetmeraPushInbox {
291
+ title: string
292
+ subtitle: string
293
+ body: string
294
+ pushType: number
295
+ pushId: string
296
+ pushInstanceId: string
297
+ sendDate: string
298
+ inboxStatus: number
299
+ deepLink: string
300
+ webPage: string
301
+ externalId: string
302
+ customJson: any
303
+ pushAction: string
304
+ carousel: any
305
+ mediaAttachmentURL: string
306
+ category: string
307
+ categories: any
308
+ interactiveActions: string
309
+ expireTime: string
310
+ }
311
+
312
+ class NetmeraCategory {
313
+ categoryName: string
314
+ lastMessage: NetmeraPushInbox
315
+ readCount: number
316
+ deletedCount: number
317
+ unreadCount: number
318
+ }
319
+
320
+ module.exports = {Netmera, NetmeraUser, NetmeraInboxFilter, NetmeraCategoryFilter, NetmeraPushInbox, NetmeraCategory};
package/ios/RNNetmera.h CHANGED
@@ -20,7 +20,13 @@
20
20
 
21
21
  @interface RNNetmera : NSObject <RCTBridgeModule>
22
22
 
23
+ +(void)initNetmera:(nullable NSString *)apiKey;
24
+ +(void)logging:(BOOL)enabled;
25
+ +(void)setPushDelegate:(nonnull NSObject<NetmeraPushDelegate> *)delegate;
26
+ +(void)requestPushNotificationAuthorization;
27
+
23
28
  @property (nonatomic, strong) NetmeraInbox *netmeraInbox;
29
+ @property (nonatomic, strong) NetmeraInboxCategory *netmeraInboxCategory;
24
30
 
25
31
  @end
26
32