reactnative-plugin-appice 1.7.30 → 1.7.31
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/android/.gradle/8.5/checksums/checksums.lock +0 -0
- package/android/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/8.5/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.5/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.5/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.5/gc.properties +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/appice/react/AppICEUtils.java +201 -0
- package/android/src/main/java/com/appice/react/AppIceReactPluginModule.java +73 -47
- package/android/src/main/java/com/appice/react/EnumConstants.java +45 -48
- package/campaign.js +98 -11
- package/example/App.js +21 -16
- package/example/android/.gradle/7.3.3/checksums/checksums.lock +0 -0
- package/example/android/.gradle/7.3.3/fileChanges/last-build.bin +0 -0
- package/example/android/.gradle/7.3.3/fileHashes/fileHashes.lock +0 -0
- package/example/android/.gradle/7.3.3/gc.properties +0 -0
- package/example/android/.gradle/vcs-1/gc.properties +0 -0
- package/example/android/app/build.gradle +4 -0
- package/example/android/app/src/main/AndroidManifest.xml +9 -0
- package/example/android/app/src/main/java/com/example/MainActivity.java +12 -0
- package/example/yarn.lock +7176 -0
- package/index.js +28 -0
- package/package.json +1 -1
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
package/android/build.gradle
CHANGED
|
@@ -94,7 +94,7 @@ dependencies {
|
|
|
94
94
|
annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.3.1"
|
|
95
95
|
|
|
96
96
|
//appice
|
|
97
|
-
implementation "appice.io.android:sdk:2.6.
|
|
97
|
+
implementation "appice.io.android:sdk:2.6.26-release"
|
|
98
98
|
|
|
99
99
|
//glide
|
|
100
100
|
implementation "com.github.bumptech.glide:glide:4.11.0"
|
|
@@ -1,27 +1,212 @@
|
|
|
1
1
|
package com.appice.react;
|
|
2
2
|
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.content.Intent;
|
|
5
|
+
import android.os.Bundle;
|
|
6
|
+
|
|
7
|
+
import androidx.annotation.NonNull;
|
|
8
|
+
import androidx.annotation.Nullable;
|
|
9
|
+
|
|
3
10
|
import com.facebook.react.bridge.Arguments;
|
|
11
|
+
import com.facebook.react.bridge.ReactContext;
|
|
4
12
|
import com.facebook.react.bridge.ReadableArray;
|
|
5
13
|
import com.facebook.react.bridge.ReadableMap;
|
|
6
14
|
import com.facebook.react.bridge.ReadableMapKeySetIterator;
|
|
7
15
|
import com.facebook.react.bridge.ReadableType;
|
|
8
16
|
import com.facebook.react.bridge.WritableArray;
|
|
9
17
|
import com.facebook.react.bridge.WritableMap;
|
|
18
|
+
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
10
19
|
|
|
20
|
+
import java.util.ArrayDeque;
|
|
11
21
|
import java.util.ArrayList;
|
|
22
|
+
import java.util.Deque;
|
|
12
23
|
import java.util.HashMap;
|
|
13
24
|
import java.util.Iterator;
|
|
14
25
|
import java.util.Map;
|
|
26
|
+
import java.util.concurrent.atomic.AtomicBoolean;
|
|
15
27
|
|
|
16
28
|
import org.json.JSONObject;
|
|
17
29
|
|
|
18
30
|
import semusi.context.ui.appInbox.AppICEInboxMessage;
|
|
31
|
+
import semusi.context.utility.PushClickData;
|
|
19
32
|
import semusi.model.campaign.Campaign;
|
|
20
33
|
import semusi.model.user.User;
|
|
21
34
|
|
|
22
35
|
|
|
23
36
|
public class AppICEUtils {
|
|
24
37
|
private static final String TAG = "AppICEUtils";
|
|
38
|
+
static final Deque<Event> EVENT_QUEUE = new ArrayDeque<>();
|
|
39
|
+
static final AtomicBoolean IS_FLUSHING = new AtomicBoolean(false);
|
|
40
|
+
|
|
41
|
+
static class Event {
|
|
42
|
+
final String name;
|
|
43
|
+
final WritableMap params;
|
|
44
|
+
|
|
45
|
+
Event(String name, @Nullable WritableMap params) {
|
|
46
|
+
this.name = name;
|
|
47
|
+
this.params = params;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static void sendEventHelper(String eventName, @Nullable WritableMap params, ReactContext context) {
|
|
52
|
+
if (context == null || !context.hasActiveCatalystInstance()) {
|
|
53
|
+
synchronized (EVENT_QUEUE) {
|
|
54
|
+
WritableMap queued = null;
|
|
55
|
+
if (params != null) {
|
|
56
|
+
try {
|
|
57
|
+
queued = cloneReadableMap(params);
|
|
58
|
+
} catch (Exception ex) {
|
|
59
|
+
printLog(TAG, "sendEvent: failed to clone params for queue " + eventName + " - " + ex.getMessage());
|
|
60
|
+
queued = null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
EVENT_QUEUE.add(new Event(eventName, queued));
|
|
64
|
+
}
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
WritableMap emitCopy = null;
|
|
69
|
+
if (params != null) {
|
|
70
|
+
try {
|
|
71
|
+
emitCopy = cloneReadableMap(params);
|
|
72
|
+
} catch (Exception ex) {
|
|
73
|
+
emitCopy = null;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
try {
|
|
78
|
+
context.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
79
|
+
.emit(eventName, emitCopy);
|
|
80
|
+
printLog(TAG, "Successfully emitted event: " + eventName);
|
|
81
|
+
} catch (Exception e) {
|
|
82
|
+
printLog(TAG, "emit failed for " + eventName + " - " + e.getMessage());
|
|
83
|
+
synchronized (EVENT_QUEUE) {
|
|
84
|
+
WritableMap queued = null;
|
|
85
|
+
if (params != null) {
|
|
86
|
+
try {
|
|
87
|
+
queued = cloneReadableMap(params);
|
|
88
|
+
} catch (Exception ex) {
|
|
89
|
+
queued = null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
EVENT_QUEUE.add(new Event(eventName, queued));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
static void flushEventQueue(ReactContext reactContext) {
|
|
98
|
+
if (reactContext == null || !reactContext.hasActiveCatalystInstance()) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (!IS_FLUSHING.compareAndSet(false, true)) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
try {
|
|
107
|
+
synchronized (EVENT_QUEUE) {
|
|
108
|
+
int initialSize = EVENT_QUEUE.size();
|
|
109
|
+
while (!EVENT_QUEUE.isEmpty()) {
|
|
110
|
+
Event event = EVENT_QUEUE.poll();
|
|
111
|
+
try {
|
|
112
|
+
WritableMap toEmit = null;
|
|
113
|
+
if (event.params != null) {
|
|
114
|
+
try {
|
|
115
|
+
toEmit = cloneReadableMap(event.params);
|
|
116
|
+
} catch (Exception ex) {
|
|
117
|
+
toEmit = event.params;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
121
|
+
.emit(event.name, toEmit);
|
|
122
|
+
printLog(TAG, "Successfully flushed event: " + event.name + ". Remaining in queue: " + EVENT_QUEUE.size());
|
|
123
|
+
} catch (Exception e) {
|
|
124
|
+
EVENT_QUEUE.addFirst(event);
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
} finally {
|
|
130
|
+
IS_FLUSHING.set(false);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
public static WritableMap cloneReadableMap(@NonNull ReadableMap source) {
|
|
135
|
+
WritableMap result = Arguments.createMap();
|
|
136
|
+
ReadableMapKeySetIterator iterator = source.keySetIterator();
|
|
137
|
+
while (iterator.hasNextKey()) {
|
|
138
|
+
String key = iterator.nextKey();
|
|
139
|
+
ReadableType type = source.getType(key);
|
|
140
|
+
try {
|
|
141
|
+
switch (type) {
|
|
142
|
+
case String:
|
|
143
|
+
result.putString(key, source.getString(key));
|
|
144
|
+
break;
|
|
145
|
+
case Number:
|
|
146
|
+
result.putDouble(key, source.getDouble(key));
|
|
147
|
+
break;
|
|
148
|
+
case Boolean:
|
|
149
|
+
result.putBoolean(key, source.getBoolean(key));
|
|
150
|
+
break;
|
|
151
|
+
case Map:
|
|
152
|
+
ReadableMap nested = source.getMap(key);
|
|
153
|
+
if (nested != null) result.putMap(key, cloneReadableMap(nested));
|
|
154
|
+
else result.putNull(key);
|
|
155
|
+
break;
|
|
156
|
+
case Array:
|
|
157
|
+
ReadableArray arr = source.getArray(key);
|
|
158
|
+
if (arr != null) result.putArray(key, cloneReadableArray(arr));
|
|
159
|
+
else result.putNull(key);
|
|
160
|
+
break;
|
|
161
|
+
case Null:
|
|
162
|
+
default:
|
|
163
|
+
result.putNull(key);
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
} catch (Exception ex) {
|
|
167
|
+
AppICEUtils.printLog(TAG, "cloneReadableMap: failed to copy key '" + key + "' - " + ex.getMessage());
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return result;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
public static WritableArray cloneReadableArray(@NonNull ReadableArray source) {
|
|
174
|
+
WritableArray result = Arguments.createArray();
|
|
175
|
+
for (int i = 0; i < source.size(); i++) {
|
|
176
|
+
try {
|
|
177
|
+
ReadableType t = source.getType(i);
|
|
178
|
+
switch (t) {
|
|
179
|
+
case String:
|
|
180
|
+
result.pushString(source.getString(i));
|
|
181
|
+
break;
|
|
182
|
+
case Number:
|
|
183
|
+
result.pushDouble(source.getDouble(i));
|
|
184
|
+
break;
|
|
185
|
+
case Boolean:
|
|
186
|
+
result.pushBoolean(source.getBoolean(i));
|
|
187
|
+
break;
|
|
188
|
+
case Map:
|
|
189
|
+
ReadableMap m = source.getMap(i);
|
|
190
|
+
if (m != null) result.pushMap(cloneReadableMap(m));
|
|
191
|
+
else result.pushNull();
|
|
192
|
+
break;
|
|
193
|
+
case Array:
|
|
194
|
+
ReadableArray a = source.getArray(i);
|
|
195
|
+
if (a != null) result.pushArray(cloneReadableArray(a));
|
|
196
|
+
else result.pushNull();
|
|
197
|
+
break;
|
|
198
|
+
case Null:
|
|
199
|
+
default:
|
|
200
|
+
result.pushNull();
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
} catch (Exception ex) {
|
|
204
|
+
AppICEUtils.printLog(TAG, "cloneReadableArray: failed at index '" + i + "' - " + ex.getMessage());
|
|
205
|
+
result.pushNull();
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return result;
|
|
209
|
+
}
|
|
25
210
|
|
|
26
211
|
public static WritableMap convertClassToWritableMap(AppICEInboxMessage inboxMessage) {
|
|
27
212
|
WritableMap inboxObject = Arguments.createMap();
|
|
@@ -272,4 +457,20 @@ public class AppICEUtils {
|
|
|
272
457
|
System.out.println(TAG + ", " + message);
|
|
273
458
|
}
|
|
274
459
|
|
|
460
|
+
public static boolean handleAppICEPayload(@NonNull Intent intent, Context context){
|
|
461
|
+
try {
|
|
462
|
+
if (intent.getExtras() != null){
|
|
463
|
+
Bundle bundle = intent.getExtras();
|
|
464
|
+
boolean isAppICEPush = bundle.getBoolean("ai_push", false);
|
|
465
|
+
if (isAppICEPush) {
|
|
466
|
+
CampaignCampsReceiver campsReceiver = new CampaignCampsReceiver();
|
|
467
|
+
campsReceiver.sendCallback(bundle, context);
|
|
468
|
+
intent.removeExtra("ai_push");
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}catch (Throwable t){
|
|
472
|
+
printLog("PUSH", " exception in click "+t);
|
|
473
|
+
}
|
|
474
|
+
return false;
|
|
475
|
+
}
|
|
275
476
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package com.appice.react;
|
|
2
2
|
|
|
3
|
+
import static com.appice.react.AppICEUtils.*;
|
|
3
4
|
import static com.appice.react.AppICEUtils.arrayListStringFromReadableArray;
|
|
4
5
|
import static com.appice.react.AppICEUtils.eventPropsFromReadableMap;
|
|
5
6
|
import static com.appice.react.StringConstants.MEDIA_DATA;
|
|
@@ -37,18 +38,16 @@ import androidx.annotation.NonNull;
|
|
|
37
38
|
import androidx.annotation.Nullable;
|
|
38
39
|
|
|
39
40
|
import com.facebook.react.bridge.ReadableArray;
|
|
40
|
-
import com.facebook.react.bridge.ReadableMapKeySetIterator;
|
|
41
41
|
import com.facebook.react.bridge.WritableArray;
|
|
42
42
|
import com.facebook.react.bridge.WritableMap;
|
|
43
|
-
import com.facebook.react.
|
|
43
|
+
import com.facebook.react.module.annotations.ReactModule;
|
|
44
44
|
|
|
45
|
-
import org.json.JSONException;
|
|
46
45
|
import org.json.JSONObject;
|
|
47
46
|
|
|
48
|
-
|
|
47
|
+
@ReactModule(name = AppIceReactPluginModule.NAME)
|
|
49
48
|
public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
50
49
|
private static ReactApplicationContext context = null;
|
|
51
|
-
|
|
50
|
+
public static final String NAME = "AppIceReactPlugin";
|
|
52
51
|
|
|
53
52
|
public AppIceReactPluginModule(ReactApplicationContext reactContext) {
|
|
54
53
|
super(reactContext);
|
|
@@ -58,7 +57,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
58
57
|
@NonNull
|
|
59
58
|
@Override
|
|
60
59
|
public String getName() {
|
|
61
|
-
return
|
|
60
|
+
return NAME;
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
|
|
@@ -80,7 +79,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
80
79
|
String region, String baseUrl, ReadableArray certs
|
|
81
80
|
) {
|
|
82
81
|
Context context = getReactApplicationContext();
|
|
83
|
-
|
|
82
|
+
printLog(NAME, "in startContext : appID : " + appID + ", appkey : " + appKey + ", apiKey : " + apiKey);
|
|
84
83
|
try {
|
|
85
84
|
SdkConfig config = new SdkConfig();
|
|
86
85
|
config.setAnalyticsTrackingAllowedState(true);
|
|
@@ -98,7 +97,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
98
97
|
Api.startContext(context, config);
|
|
99
98
|
|
|
100
99
|
} catch (Exception e) {
|
|
101
|
-
|
|
100
|
+
printLog(NAME, "Exception in startContext : " + e);
|
|
102
101
|
}
|
|
103
102
|
}
|
|
104
103
|
|
|
@@ -115,29 +114,29 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
115
114
|
receiverIntent.setClass(ctx, CampaignCampsReceiver.class);
|
|
116
115
|
List<ResolveInfo> receivers = pm.queryBroadcastReceivers(receiverIntent, 0);
|
|
117
116
|
if (receivers == null || receivers.size() <= 0) {
|
|
118
|
-
|
|
117
|
+
printLog(NAME, "Missing Receiver entry in AndroidManifest : CampaignCampsReceiver");
|
|
119
118
|
}
|
|
120
119
|
Intent serviceIntent = new Intent();
|
|
121
120
|
serviceIntent.setClass(ctx, NotificationEventService.class);
|
|
122
121
|
ResolveInfo services = pm.resolveService(serviceIntent, 0);
|
|
123
122
|
if (services == null) {
|
|
124
|
-
|
|
123
|
+
printLog(NAME, "Missing Service entry in AndroidManifest : NotificationEventService");
|
|
125
124
|
}
|
|
126
125
|
|
|
127
126
|
ContextSdk sdk = new ContextSdk(ctx);
|
|
128
127
|
if (sdk.getAppId() == null || sdk.getAppId().length() <= 0 || sdk.getAppId().trim().length() <= 0) {
|
|
129
|
-
|
|
128
|
+
printLog(NAME, "Missing Meta-data entry : AppID");
|
|
130
129
|
}
|
|
131
130
|
|
|
132
131
|
if (sdk.getAppKey() == null || sdk.getAppKey().length() <= 0 || sdk.getAppKey().trim().length() <= 0) {
|
|
133
|
-
|
|
132
|
+
printLog(NAME, "Missing Meta-data entry : AppKey");
|
|
134
133
|
}
|
|
135
134
|
|
|
136
135
|
if (sdk.getApiKey() == null || sdk.getApiKey().length() <= 0 || sdk.getApiKey().trim().length() <= 0) {
|
|
137
|
-
|
|
136
|
+
printLog(NAME, "Missing Meta-data entry : ApiKey");
|
|
138
137
|
}
|
|
139
138
|
} catch (Exception e) {
|
|
140
|
-
|
|
139
|
+
printLog(NAME, "validateIntegration: " + e.getMessage());
|
|
141
140
|
}
|
|
142
141
|
}
|
|
143
142
|
|
|
@@ -171,7 +170,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
171
170
|
ContextSdk.tagEventObj(eventName, mapData, context);
|
|
172
171
|
}
|
|
173
172
|
} catch (Exception e) {
|
|
174
|
-
|
|
173
|
+
printLog(NAME, "Exception in tagEvent : " + e);
|
|
175
174
|
}
|
|
176
175
|
}
|
|
177
176
|
|
|
@@ -183,7 +182,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
183
182
|
ContextSdk.setCustomVariable(eventName, (String) value, context);
|
|
184
183
|
}
|
|
185
184
|
} catch (Exception e) {
|
|
186
|
-
|
|
185
|
+
printLog(NAME, "Exception in customVar : " + e);
|
|
187
186
|
}
|
|
188
187
|
}
|
|
189
188
|
|
|
@@ -194,7 +193,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
194
193
|
public void setUser(ReadableMap userDetails) {
|
|
195
194
|
Context context = getReactApplicationContext();
|
|
196
195
|
|
|
197
|
-
|
|
196
|
+
printLog(NAME, "setUser called (userDetails present: " + (userDetails != null) + ")");
|
|
198
197
|
HashMap<String, Object> map = eventPropsFromReadableMap(userDetails);
|
|
199
198
|
|
|
200
199
|
if (map != null) {
|
|
@@ -208,7 +207,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
208
207
|
}
|
|
209
208
|
}
|
|
210
209
|
} catch (Exception e) {
|
|
211
|
-
|
|
210
|
+
printLog(NAME, "setUser: name issue " + e.getMessage());
|
|
212
211
|
}
|
|
213
212
|
|
|
214
213
|
try {
|
|
@@ -219,7 +218,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
219
218
|
}
|
|
220
219
|
}
|
|
221
220
|
} catch (Exception e) {
|
|
222
|
-
|
|
221
|
+
printLog(NAME, "setUser: phone issue " + e.getMessage());
|
|
223
222
|
}
|
|
224
223
|
|
|
225
224
|
try {
|
|
@@ -230,7 +229,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
230
229
|
}
|
|
231
230
|
}
|
|
232
231
|
} catch (Exception e) {
|
|
233
|
-
|
|
232
|
+
printLog(NAME, "setUser: email issue " + e.getMessage());
|
|
234
233
|
}
|
|
235
234
|
|
|
236
235
|
try {
|
|
@@ -241,7 +240,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
241
240
|
}
|
|
242
241
|
}
|
|
243
242
|
} catch (Exception e) {
|
|
244
|
-
|
|
243
|
+
printLog(NAME, "setUser: age issue " + e.getMessage());
|
|
245
244
|
}
|
|
246
245
|
|
|
247
246
|
try {
|
|
@@ -252,7 +251,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
252
251
|
}
|
|
253
252
|
}
|
|
254
253
|
} catch (Exception e) {
|
|
255
|
-
|
|
254
|
+
printLog(NAME, "setUser: dob issue " + e.getMessage());
|
|
256
255
|
}
|
|
257
256
|
try {
|
|
258
257
|
if (map.containsKey(EnumConstants.APPICE_USER_EDUCATION_TYPE.getValue())) {
|
|
@@ -262,7 +261,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
262
261
|
}
|
|
263
262
|
}
|
|
264
263
|
} catch (Exception e) {
|
|
265
|
-
|
|
264
|
+
printLog(NAME, "setEducationType: edt issue " + e.getMessage());
|
|
266
265
|
}
|
|
267
266
|
|
|
268
267
|
|
|
@@ -274,7 +273,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
274
273
|
}
|
|
275
274
|
}
|
|
276
275
|
} catch (Exception e) {
|
|
277
|
-
|
|
276
|
+
printLog(NAME, "setUser: gender issue " + e.getMessage());
|
|
278
277
|
}
|
|
279
278
|
|
|
280
279
|
|
|
@@ -286,7 +285,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
286
285
|
}
|
|
287
286
|
}
|
|
288
287
|
} catch (Exception e) {
|
|
289
|
-
|
|
288
|
+
printLog(NAME, "setUser: setEmployed issue " + e.getMessage());
|
|
290
289
|
}
|
|
291
290
|
|
|
292
291
|
try {
|
|
@@ -297,7 +296,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
297
296
|
}
|
|
298
297
|
}
|
|
299
298
|
} catch (Exception e) {
|
|
300
|
-
|
|
299
|
+
printLog(NAME, "setUser: et issue " + e.getMessage());
|
|
301
300
|
}
|
|
302
301
|
|
|
303
302
|
try {
|
|
@@ -308,7 +307,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
308
307
|
}
|
|
309
308
|
}
|
|
310
309
|
} catch (Exception e) {
|
|
311
|
-
|
|
310
|
+
printLog(NAME, "setUser: married issue " + e.getMessage());
|
|
312
311
|
}
|
|
313
312
|
ContextSdk.setUser(user, context);
|
|
314
313
|
} catch (Exception e) {
|
|
@@ -323,7 +322,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
323
322
|
try {
|
|
324
323
|
User user = ContextSdk.getUser(context);
|
|
325
324
|
if (user != null) {
|
|
326
|
-
userObject =
|
|
325
|
+
userObject = convertUserClassToWritableMap(user);
|
|
327
326
|
callback.invoke(userObject);
|
|
328
327
|
}
|
|
329
328
|
} catch (Throwable t) {
|
|
@@ -376,7 +375,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
376
375
|
|
|
377
376
|
|
|
378
377
|
/**
|
|
379
|
-
* To get Media URL from getMediaData
|
|
378
|
+
* To get Media URL from getMediaData
|
|
380
379
|
* inboxMessage {AppICEInboxMessage as a ReadableMap}
|
|
381
380
|
* mediaData customData
|
|
382
381
|
* @callback callback will receive mediaUrl{string}
|
|
@@ -462,7 +461,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
462
461
|
List<AppICEInboxMessage> appICEInboxMessage = ContextSdk.getInboxMessage(type, usersId, context);
|
|
463
462
|
for (int i = 0; i < appICEInboxMessage.size(); i++) {
|
|
464
463
|
AppICEInboxMessage inboxMessage = appICEInboxMessage.get(i);
|
|
465
|
-
writableArray.pushMap(
|
|
464
|
+
writableArray.pushMap(convertClassToWritableMap(inboxMessage));
|
|
466
465
|
}
|
|
467
466
|
}
|
|
468
467
|
callback.invoke(writableArray);
|
|
@@ -472,10 +471,10 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
472
471
|
}
|
|
473
472
|
/**
|
|
474
473
|
* This method is to get user details from the given user id
|
|
475
|
-
* this method takes user id in form of Array and return User class objects and return them
|
|
474
|
+
* this method takes user id in form of Array and return User class objects and return them
|
|
476
475
|
* from callback
|
|
477
476
|
* @param userIds An array of user IDs
|
|
478
|
-
* @param callback will return instance of User class
|
|
477
|
+
* @param callback will return instance of User class
|
|
479
478
|
*/
|
|
480
479
|
@ReactMethod
|
|
481
480
|
public void getUserForIds(ReadableArray userIds, Callback callback) {
|
|
@@ -492,7 +491,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
492
491
|
for (int i = 0; i < users.size(); i++) {
|
|
493
492
|
User user = users.get(i);
|
|
494
493
|
// conver native object to WritableMap
|
|
495
|
-
writableArray.pushMap(
|
|
494
|
+
writableArray.pushMap(convertUserClassToWritableMap(user));
|
|
496
495
|
}
|
|
497
496
|
// return callback
|
|
498
497
|
callback.invoke(writableArray);
|
|
@@ -563,7 +562,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
563
562
|
Context context = getReactApplicationContext();
|
|
564
563
|
try {
|
|
565
564
|
AppICEInboxMessage inboxMessage = ContextSdk.getInboxMessageForId(messageId, userId, context);
|
|
566
|
-
callback.invoke(
|
|
565
|
+
callback.invoke(convertClassToWritableMap(inboxMessage));
|
|
567
566
|
} catch (Throwable e) {
|
|
568
567
|
callback.invoke(e.getMessage());
|
|
569
568
|
}
|
|
@@ -638,7 +637,10 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
638
637
|
}
|
|
639
638
|
@ReactMethod
|
|
640
639
|
public void isDeviceReady(Boolean flag){
|
|
641
|
-
|
|
640
|
+
if (flag){
|
|
641
|
+
ReactApplicationContext ctx = getReactApplicationContext();
|
|
642
|
+
flushEventQueue(ctx);
|
|
643
|
+
}
|
|
642
644
|
}
|
|
643
645
|
|
|
644
646
|
@Nullable
|
|
@@ -685,15 +687,12 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
685
687
|
|
|
686
688
|
//=====================================
|
|
687
689
|
public static void sendEvent(String eventName, @Nullable WritableMap params) {
|
|
688
|
-
|
|
689
|
-
context.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(eventName, params);
|
|
690
|
-
} catch (RuntimeException e) {
|
|
691
|
-
AppICEUtils.printLog(TAG, "java.lang.RuntimeException: Trying to invoke JS before CatalystInstance has been set!" + e);
|
|
692
|
-
}
|
|
690
|
+
AppICEUtils.sendEventHelper(eventName, params, context);
|
|
693
691
|
}
|
|
692
|
+
|
|
694
693
|
private static AppICEInboxMessage getMediaPreProcessing(ReadableMap inboxMessage,Context context) {
|
|
695
694
|
AppICEInboxMessage appICEInboxMessage = null;
|
|
696
|
-
JSONObject inboxJSON =
|
|
695
|
+
JSONObject inboxJSON = toJSONObject(inboxMessage);
|
|
697
696
|
if (inboxJSON != null && inboxJSON.length()>0) {
|
|
698
697
|
appICEInboxMessage = AppICEInboxMessage.getAppICEInboxMessage(inboxJSON.toString(), context);
|
|
699
698
|
if (appICEInboxMessage != null) {
|
|
@@ -710,7 +709,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
710
709
|
switch (type) {
|
|
711
710
|
case "mediaType": {
|
|
712
711
|
if (mediaData != null){
|
|
713
|
-
String mediaType = appICEInboxMessage.getMediaType(
|
|
712
|
+
String mediaType = appICEInboxMessage.getMediaType(eventPropsFromReadableMap(mediaData));
|
|
714
713
|
callback.invoke(mediaType, null);
|
|
715
714
|
}else
|
|
716
715
|
callback.invoke(null, StringConstants.FAILED_RETRIVE_MEDIA_DATA);
|
|
@@ -719,7 +718,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
719
718
|
|
|
720
719
|
case "mediaUrl": {
|
|
721
720
|
if (mediaData != null) {
|
|
722
|
-
String mediaUrl = appICEInboxMessage.getMediaUrl(
|
|
721
|
+
String mediaUrl = appICEInboxMessage.getMediaUrl(eventPropsFromReadableMap(mediaData));
|
|
723
722
|
callback.invoke(mediaUrl, null);
|
|
724
723
|
}else
|
|
725
724
|
callback.invoke(null, StringConstants.FAILED_RETRIVE_MEDIA_DATA);
|
|
@@ -728,7 +727,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
728
727
|
|
|
729
728
|
case "mediaThumbnail": {
|
|
730
729
|
if (mediaData != null) {
|
|
731
|
-
String mediaThumbnail = appICEInboxMessage.getMediaThumbnail(
|
|
730
|
+
String mediaThumbnail = appICEInboxMessage.getMediaThumbnail(eventPropsFromReadableMap(mediaData));
|
|
732
731
|
callback.invoke(mediaThumbnail, null);
|
|
733
732
|
}else
|
|
734
733
|
callback.invoke(null, StringConstants.FAILED_RETRIVE_MEDIA_DATA);
|
|
@@ -739,7 +738,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
739
738
|
if (mediayKey != null) {
|
|
740
739
|
Map<String, Object> map = appICEInboxMessage.getMediaData(mediayKey);
|
|
741
740
|
if (map != null) {
|
|
742
|
-
callback.invoke(
|
|
741
|
+
callback.invoke(toWritableMap(map), null);
|
|
743
742
|
} else {
|
|
744
743
|
callback.invoke(null, StringConstants.FAILED_RETRIVE_MEDIA_DATA);
|
|
745
744
|
}
|
|
@@ -761,7 +760,7 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
761
760
|
List<Campaign> campaigns = ContextSdk.getCampaigns(type, context);
|
|
762
761
|
for (int i = 0; i < campaigns.size(); i++) {
|
|
763
762
|
Campaign campaign = campaigns.get(i);
|
|
764
|
-
writableArray.pushMap(
|
|
763
|
+
writableArray.pushMap(convertClassToWritableMap(campaign));
|
|
765
764
|
}
|
|
766
765
|
callback.invoke(writableArray);
|
|
767
766
|
}
|
|
@@ -774,6 +773,33 @@ public class AppIceReactPluginModule extends ReactContextBaseJavaModule {
|
|
|
774
773
|
public void getCampaignById(String cmpId,Callback callback) {
|
|
775
774
|
Context context = getReactApplicationContext();
|
|
776
775
|
Campaign campaign = ContextSdk.getCampaignById(cmpId, context);
|
|
777
|
-
callback.invoke(
|
|
776
|
+
callback.invoke(convertClassToWritableMap(campaign));
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
//==============================
|
|
780
|
+
// LANGUAGE SETTING
|
|
781
|
+
//==============================
|
|
782
|
+
@ReactMethod
|
|
783
|
+
public void setAppLanguage(String language) {
|
|
784
|
+
Context context = getReactApplicationContext();
|
|
785
|
+
ContextSdk.setAppLanguage(language, context);
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
@ReactMethod
|
|
789
|
+
public void subscribeAppLanguage(String language) {
|
|
790
|
+
Context context = getReactApplicationContext();
|
|
791
|
+
ContextSdk.subscribeAppLang(language, context);
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
@ReactMethod
|
|
795
|
+
public void setDeviceLanguage(String language) {
|
|
796
|
+
Context context = getReactApplicationContext();
|
|
797
|
+
ContextSdk.setDeviceLanguage(language, context);
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
@ReactMethod
|
|
801
|
+
public void subscribeDeviceLanguage(String language) {
|
|
802
|
+
Context context = getReactApplicationContext();
|
|
803
|
+
ContextSdk.subscribeDeviceLang(language, context);
|
|
778
804
|
}
|
|
779
805
|
}
|