reactnative-plugin-appice 1.7.25 → 1.7.26
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 +37 -37
- package/android/.idea/workspace.xml +103 -0
- package/android/README.md +14 -14
- package/android/build.gradle +158 -158
- package/android/gitignore +47 -47
- package/android/gradle/wrapper/gradle-wrapper.properties +5 -5
- package/android/gradlew +234 -234
- package/android/local.properties +8 -8
- package/android/src/main/AndroidManifest.xml +128 -164
- package/android/src/main/java/com/reactlibrary/AppICEUtils.java +274 -274
- package/android/src/main/java/com/reactlibrary/AppIceReactPluginModule.java +778 -778
- package/android/src/main/java/com/reactlibrary/AppIceReactPluginPackage.java +28 -28
- package/android/src/main/java/com/reactlibrary/CampaignCampsReceiver.java +56 -56
- package/android/src/main/java/com/reactlibrary/EnumConstants.java +282 -282
- package/android/src/main/java/com/reactlibrary/NotificationEventService.java +59 -59
- package/android/src/main/java/com/reactlibrary/StringConstants.java +24 -24
- package/campaign.js +25 -25
- package/example/App.js +332 -332
- package/example/Gemfile +6 -6
- package/example/PageA.tsx +15 -15
- package/example/__tests__/App-test.js +14 -14
- package/example/ancilliary.js +486 -486
- package/example/android/app/_BUCK +55 -55
- package/example/android/app/build.gradle +320 -320
- package/example/android/app/build_defs.bzl +19 -19
- package/example/android/app/proguard-rules.pro +10 -10
- package/example/android/app/src/debug/AndroidManifest.xml +13 -13
- package/example/android/app/src/debug/java/com/example/ReactNativeFlipper.java +73 -73
- package/example/android/app/src/main/AndroidManifest.xml +72 -72
- package/example/android/app/src/main/java/com/example/MainActivity.java +48 -48
- package/example/android/app/src/main/java/com/example/MainApplication.java +91 -91
- package/example/android/app/src/main/java/com/example/newarchitecture/MainApplicationReactNativeHost.java +116 -116
- package/example/android/app/src/main/java/com/example/newarchitecture/components/MainComponentsRegistry.java +36 -36
- package/example/android/app/src/main/java/com/example/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +48 -48
- package/example/android/app/src/main/jni/Android.mk +48 -48
- package/example/android/app/src/main/jni/MainApplicationModuleProvider.cpp +24 -24
- package/example/android/app/src/main/jni/MainApplicationModuleProvider.h +16 -16
- package/example/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +45 -45
- package/example/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +38 -38
- package/example/android/app/src/main/jni/MainComponentsRegistry.cpp +61 -61
- package/example/android/app/src/main/jni/MainComponentsRegistry.h +32 -32
- package/example/android/app/src/main/jni/OnLoad.cpp +11 -11
- package/example/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -36
- package/example/android/app/src/main/res/values/strings.xml +3 -3
- package/example/android/app/src/main/res/values/styles.xml +9 -9
- package/example/android/build.gradle +73 -73
- package/example/android/gradle/wrapper/gradle-wrapper.properties +5 -5
- package/example/android/gradle.properties +40 -40
- package/example/android/gradlew +234 -234
- package/example/android/settings.gradle +11 -11
- package/example/app.json +3 -3
- package/example/babel.config.js +3 -3
- package/example/index.js +9 -9
- package/example/ios/Podfile +44 -44
- package/example/ios/Podfile.lock +561 -561
- package/example/ios/_xcode.env +11 -11
- package/example/ios/example/AppDelegate.h +8 -8
- package/example/ios/example/AppDelegate.mm +174 -174
- package/example/ios/example/Images.xcassets/AppIcon.appiconset/Contents.json +53 -53
- package/example/ios/example/Images.xcassets/Contents.json +6 -6
- package/example/ios/example/Info.plist +62 -62
- package/example/ios/example/LaunchScreen.storyboard +47 -47
- package/example/ios/example/example.entitlements +8 -8
- package/example/ios/example/main.m +10 -10
- package/example/ios/example.xcodeproj/project.pbxproj +712 -712
- package/example/ios/example.xcodeproj/xcshareddata/xcschemes/example.xcscheme +88 -88
- package/example/ios/example.xcworkspace/contents.xcworkspacedata +10 -10
- package/example/ios/example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -8
- package/example/ios/exampleTests/Info.plist +24 -24
- package/example/ios/exampleTests/exampleTests.m +66 -66
- package/example/metro.config.js +17 -17
- package/example/package.json +36 -36
- package/example/yarn.lock +7176 -7176
- package/index.js +590 -590
- package/ios/AppICEReactEvent.h +23 -23
- package/ios/AppICEReactEvent.m +86 -86
- package/ios/AppIceReactPlugin.h +65 -65
- package/ios/AppIceReactPlugin.m +683 -683
- package/ios/AppIceReactPlugin.xcodeproj/project.pbxproj +364 -364
- package/ios/AppIceReactPlugin.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -4
- package/ios/AppIceReactPlugin.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -8
- package/ios/AppIceReactPlugin.xcodeproj/xcuserdata/Adi.xcuserdatad/xcschemes/xcschememanagement.plist +14 -14
- package/ios/AppIceReactPlugin.xcodeproj/xcuserdata/artherajesh.xcuserdatad/xcschemes/xcschememanagement.plist +14 -14
- package/ios/AppIceReactPlugin.xcworkspace/contents.xcworkspacedata +10 -10
- package/ios/AppIceReactPlugin.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -8
- package/ios/Podfile +10 -10
- package/ios/Podfile.lock +3 -3
- package/ios/Pods/Manifest.lock +3 -3
- package/ios/Pods/Pods.xcodeproj/project.pbxproj +395 -395
- package/ios/Pods/Pods.xcodeproj/xcuserdata/Adi.xcuserdatad/xcschemes/Pods-AppIceReactPlugin.xcscheme +58 -58
- package/ios/Pods/Pods.xcodeproj/xcuserdata/Adi.xcuserdatad/xcschemes/xcschememanagement.plist +18 -18
- package/ios/Pods/Pods.xcodeproj/xcuserdata/artherajesh.xcuserdatad/xcschemes/xcschememanagement.plist +14 -14
- package/ios/Pods/Target Support Files/Pods-AppIceReactPlugin/Pods-AppIceReactPlugin-Info.plist +26 -26
- package/ios/Pods/Target Support Files/Pods-AppIceReactPlugin/Pods-AppIceReactPlugin-acknowledgements.markdown +3 -3
- package/ios/Pods/Target Support Files/Pods-AppIceReactPlugin/Pods-AppIceReactPlugin-acknowledgements.plist +29 -29
- package/ios/Pods/Target Support Files/Pods-AppIceReactPlugin/Pods-AppIceReactPlugin-dummy.m +5 -5
- package/ios/Pods/Target Support Files/Pods-AppIceReactPlugin/Pods-AppIceReactPlugin-umbrella.h +16 -16
- package/ios/Pods/Target Support Files/Pods-AppIceReactPlugin/Pods-AppIceReactPlugin.debug.xcconfig +6 -6
- package/ios/Pods/Target Support Files/Pods-AppIceReactPlugin/Pods-AppIceReactPlugin.modulemap +6 -6
- package/ios/Pods/Target Support Files/Pods-AppIceReactPlugin/Pods-AppIceReactPlugin.release.xcconfig +6 -6
- package/package.json +42 -42
- package/reactnative-plugin-appice.podspec +30 -30
- 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
|
@@ -1,275 +1,275 @@
|
|
|
1
|
-
package com.reactlibrary;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.Arguments;
|
|
4
|
-
import com.facebook.react.bridge.ReadableArray;
|
|
5
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
6
|
-
import com.facebook.react.bridge.ReadableMapKeySetIterator;
|
|
7
|
-
import com.facebook.react.bridge.ReadableType;
|
|
8
|
-
import com.facebook.react.bridge.WritableArray;
|
|
9
|
-
import com.facebook.react.bridge.WritableMap;
|
|
10
|
-
|
|
11
|
-
import java.util.ArrayList;
|
|
12
|
-
import java.util.HashMap;
|
|
13
|
-
import java.util.Iterator;
|
|
14
|
-
import java.util.Map;
|
|
15
|
-
|
|
16
|
-
import org.json.JSONObject;
|
|
17
|
-
|
|
18
|
-
import semusi.context.ui.appInbox.AppICEInboxMessage;
|
|
19
|
-
import semusi.model.campaign.Campaign;
|
|
20
|
-
import semusi.model.user.User;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
public class AppICEUtils {
|
|
24
|
-
private static final String TAG = "AppICEUtils";
|
|
25
|
-
|
|
26
|
-
public static WritableMap convertClassToWritableMap(AppICEInboxMessage inboxMessage) {
|
|
27
|
-
WritableMap inboxObject = Arguments.createMap();
|
|
28
|
-
try {
|
|
29
|
-
if (inboxMessage != null) {
|
|
30
|
-
inboxObject.putString(EnumConstants.INBOX_MESSAGE_ID.getValue(), inboxMessage.getMessageId());
|
|
31
|
-
inboxObject.putString(EnumConstants.INBOX_CAMPAIGN_ID.getValue(), inboxMessage.getCampId());
|
|
32
|
-
inboxObject.putString(EnumConstants.INBOX_CAMPAIGN_TYPE.getValue(), inboxMessage.getMessageCampType());
|
|
33
|
-
inboxObject.putString(EnumConstants.INBOX_MESSAGE_CATEGORY.getValue(), inboxMessage.getCategory());
|
|
34
|
-
inboxObject.putString(EnumConstants.INBOX_MESSAGE_STATUS.getValue(), inboxMessage.getMessageStatus());
|
|
35
|
-
inboxObject.putString(EnumConstants.INBOX_MESSAGE_LANGUAGE.getValue(), inboxMessage.getMessageLanguage());
|
|
36
|
-
inboxObject.putString(EnumConstants.INBOX_TITLE.getValue(), inboxMessage.getMessageTitle());
|
|
37
|
-
inboxObject.putString(EnumConstants.INBOX_MESSAGE.getValue(), inboxMessage.getMessageBody());
|
|
38
|
-
inboxObject.putString(EnumConstants.INBOX_MESSAGE_ICON.getValue(), inboxMessage.getMessageIcon());
|
|
39
|
-
inboxObject.putMap(EnumConstants.INBOX_CUSTOM_DATA.getValue(), toWritableMap(inboxMessage.getCustomData()));
|
|
40
|
-
}
|
|
41
|
-
} catch (Throwable throwable) {
|
|
42
|
-
}
|
|
43
|
-
return inboxObject;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* This method accept object of native Campaign class (semusi.nativedisplay.Campaign)
|
|
48
|
-
* and convert to WritableMap for hybrid side
|
|
49
|
-
*
|
|
50
|
-
* @param campaign object of native Campaign class
|
|
51
|
-
* @return WritableMap
|
|
52
|
-
*/
|
|
53
|
-
public static WritableMap convertClassToWritableMap(Campaign campaign) {
|
|
54
|
-
WritableMap campaignMap = Arguments.createMap();
|
|
55
|
-
try {
|
|
56
|
-
if (campaign != null) {
|
|
57
|
-
campaignMap.putString(EnumConstants.CAMP_ID.getValue(), campaign.getCampId());
|
|
58
|
-
campaignMap.putString(EnumConstants.ACTION_URL.getValue(), campaign.getActionUrl());
|
|
59
|
-
campaignMap.putString(EnumConstants.ACTION_TYPE.getValue(), campaign.getActionType());
|
|
60
|
-
|
|
61
|
-
JSONObject cdata = campaign.getCustomDataObject();
|
|
62
|
-
Map<String, Object> customDataMap = new HashMap<>();
|
|
63
|
-
Iterator<String> keys = cdata.keys();
|
|
64
|
-
|
|
65
|
-
while (keys.hasNext()) {
|
|
66
|
-
String key = keys.next();
|
|
67
|
-
customDataMap.put(key, cdata.getString(key));
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
campaignMap.putMap(EnumConstants.CUSTOMDATA.getValue(), toWritableMap(customDataMap));
|
|
71
|
-
}
|
|
72
|
-
} catch (Throwable e) {
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
return campaignMap;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* This method accept object of native User class (semusi.activitysdk.User)
|
|
80
|
-
* and convert to WritableMap for hybrid side
|
|
81
|
-
*
|
|
82
|
-
* @param user object of native User class
|
|
83
|
-
* @return WritableMap
|
|
84
|
-
*/
|
|
85
|
-
public static WritableMap convertUserClassToWritableMap(User user) {
|
|
86
|
-
WritableMap userObject = Arguments.createMap();
|
|
87
|
-
try {
|
|
88
|
-
if (user != null) {
|
|
89
|
-
userObject.putString(EnumConstants.APPICE_USER_NAME.getValue(), user.getName());
|
|
90
|
-
userObject.putString(EnumConstants.APPICE_USER_PHONE.getValue(), user.getPhone());
|
|
91
|
-
userObject.putString(EnumConstants.APPICE_USER_EMAIL.getValue(), user.getEmail());
|
|
92
|
-
userObject.putDouble(EnumConstants.APPICE_DATE_OF_BIRTH.getValue(), user.getDob());
|
|
93
|
-
userObject.putInt(EnumConstants.APPICE_USER_AGE.getValue(), user.getAge());
|
|
94
|
-
userObject.putString(EnumConstants.APPICE_USER_EDUCATION_TYPE.getValue(), user.getEducationType());
|
|
95
|
-
userObject.putString(EnumConstants.APPICE_USER_GENDER.getValue(), user.getGender());
|
|
96
|
-
userObject.putBoolean(EnumConstants.APPICE_USER_IS_EMPLOYED.getValue(), user.isEmployed());
|
|
97
|
-
userObject.putString(EnumConstants.APPICE_USER_EMPLOYMENT_TYPE.getValue(), user.getEmploymentType());
|
|
98
|
-
userObject.putBoolean(EnumConstants.APPICE_USER_MARRIED.getValue(), user.isMarried());
|
|
99
|
-
if (user.getCustomProperties() != null && user.getCustomProperties().length() > 0) {
|
|
100
|
-
userObject.putString(EnumConstants.DEMOGRAPHIC_INFO.getValue(), user.getCustomProperties().toString());
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
} catch (Throwable e) {
|
|
104
|
-
}
|
|
105
|
-
return userObject;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
public static WritableMap toWritableMap(Map<String, Object> map) {
|
|
111
|
-
WritableMap writableMap = Arguments.createMap();
|
|
112
|
-
Iterator iterator = map.entrySet().iterator();
|
|
113
|
-
|
|
114
|
-
while (iterator.hasNext()) {
|
|
115
|
-
Map.Entry pair = (Map.Entry) iterator.next();
|
|
116
|
-
writableMap.merge(addValue((String) pair.getKey(), pair.getValue()));
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
return writableMap;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
public static WritableMap addValue(String key, Object value) {
|
|
123
|
-
WritableMap writableMap = Arguments.createMap();
|
|
124
|
-
if (value == null) {
|
|
125
|
-
writableMap.putNull(key);
|
|
126
|
-
} else if (value instanceof Boolean) {
|
|
127
|
-
writableMap.putBoolean(key, (Boolean) value);
|
|
128
|
-
} else if (value instanceof Double) {
|
|
129
|
-
writableMap.putDouble(key, (Double) value);
|
|
130
|
-
} else if (value instanceof Integer) {
|
|
131
|
-
writableMap.putInt(key, (Integer) value);
|
|
132
|
-
} else if (value instanceof String) {
|
|
133
|
-
writableMap.putString(key, (String) value);
|
|
134
|
-
} else if (value instanceof Map) {
|
|
135
|
-
writableMap.putMap(key, toWritableMap((Map<String, Object>) value));
|
|
136
|
-
} else if (value.getClass() != null && (value.getClass().isArray() || value instanceof ArrayList)) {
|
|
137
|
-
writableMap.putArray(key, toWritableArray((ArrayList) value));
|
|
138
|
-
}
|
|
139
|
-
return writableMap;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
public static WritableArray toWritableArray(ArrayList arrayList) {
|
|
143
|
-
WritableArray writableArray = Arguments.createArray();
|
|
144
|
-
|
|
145
|
-
for (int i = 0; i < arrayList.size(); i++) {
|
|
146
|
-
Object value = arrayList.get(i);
|
|
147
|
-
|
|
148
|
-
if (value == null) {
|
|
149
|
-
writableArray.pushNull();
|
|
150
|
-
}
|
|
151
|
-
if (value instanceof Boolean) {
|
|
152
|
-
writableArray.pushBoolean((Boolean) value);
|
|
153
|
-
}
|
|
154
|
-
if (value instanceof Double) {
|
|
155
|
-
writableArray.pushDouble((Double) value);
|
|
156
|
-
}
|
|
157
|
-
if (value instanceof Integer) {
|
|
158
|
-
writableArray.pushInt((Integer) value);
|
|
159
|
-
}
|
|
160
|
-
if (value instanceof String) {
|
|
161
|
-
writableArray.pushString((String) value);
|
|
162
|
-
}
|
|
163
|
-
if (value instanceof Map) {
|
|
164
|
-
writableArray.pushMap(toWritableMap((Map<String, Object>) value));
|
|
165
|
-
}
|
|
166
|
-
if (value.getClass().isArray()) {
|
|
167
|
-
writableArray.pushArray(toWritableArray((ArrayList) value));
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
return writableArray;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
public static ArrayList<String> arrayListStringFromReadableArray(ReadableArray readableArray) {
|
|
176
|
-
ArrayList<String> array = new ArrayList<>();
|
|
177
|
-
for (int i = 0; i < readableArray.size(); i++) {
|
|
178
|
-
switch (readableArray.getType(i)) {
|
|
179
|
-
case Null:
|
|
180
|
-
break;
|
|
181
|
-
case Boolean:
|
|
182
|
-
array.add(String.valueOf(readableArray.getBoolean(i)));
|
|
183
|
-
break;
|
|
184
|
-
case Number:
|
|
185
|
-
array.add(String.valueOf(readableArray.getDouble(i)));
|
|
186
|
-
break;
|
|
187
|
-
case String:
|
|
188
|
-
array.add(readableArray.getString(i));
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return array;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* @param propsMap took data from js and iterate it and store in hashmap
|
|
197
|
-
* @return map of the props data
|
|
198
|
-
*/
|
|
199
|
-
public static HashMap<String, Object> eventPropsFromReadableMap(ReadableMap propsMap) {
|
|
200
|
-
if (propsMap == null) return null;
|
|
201
|
-
|
|
202
|
-
HashMap<String, Object> props = new HashMap<>();
|
|
203
|
-
ReadableMapKeySetIterator iterator = propsMap.keySetIterator();
|
|
204
|
-
|
|
205
|
-
while (iterator.hasNextKey()) {
|
|
206
|
-
try {
|
|
207
|
-
String key = iterator.nextKey();
|
|
208
|
-
ReadableType readableType = propsMap.getType(key);
|
|
209
|
-
|
|
210
|
-
if (readableType == ReadableType.String) {
|
|
211
|
-
props.put(key, propsMap.getString(key));
|
|
212
|
-
} else if (readableType == ReadableType.Boolean) {
|
|
213
|
-
props.put(key, propsMap.getBoolean(key));
|
|
214
|
-
} else if (readableType == ReadableType.Number) {
|
|
215
|
-
try {
|
|
216
|
-
props.put(key, propsMap.getInt(key));
|
|
217
|
-
} catch (Throwable t) {
|
|
218
|
-
try {
|
|
219
|
-
props.put(key, propsMap.getDouble(key));
|
|
220
|
-
} catch (Throwable t1) {
|
|
221
|
-
AppICEUtils.printLog(TAG, "Unhandled ReadableType.Number from ReadableMap");
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
} else {
|
|
225
|
-
AppICEUtils.printLog(TAG, "Unhandled event property ReadableType");
|
|
226
|
-
}
|
|
227
|
-
} catch (Throwable t) {
|
|
228
|
-
AppICEUtils.printLog(TAG, t.getLocalizedMessage());
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
return props;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
public static JSONObject toJSONObject(ReadableMap readableMap) {
|
|
235
|
-
JSONObject jsonObject = new JSONObject();
|
|
236
|
-
|
|
237
|
-
try {
|
|
238
|
-
ReadableMapKeySetIterator iterator = readableMap.keySetIterator();
|
|
239
|
-
|
|
240
|
-
while (iterator.hasNextKey()) {
|
|
241
|
-
String key = iterator.nextKey();
|
|
242
|
-
ReadableType type = readableMap.getType(key);
|
|
243
|
-
|
|
244
|
-
switch (type) {
|
|
245
|
-
case Null:
|
|
246
|
-
jsonObject.put(key, null);
|
|
247
|
-
break;
|
|
248
|
-
case Boolean:
|
|
249
|
-
jsonObject.put(key, readableMap.getBoolean(key));
|
|
250
|
-
break;
|
|
251
|
-
case Number:
|
|
252
|
-
jsonObject.put(key, readableMap.getDouble(key));
|
|
253
|
-
break;
|
|
254
|
-
case String:
|
|
255
|
-
jsonObject.put(key, readableMap.getString(key));
|
|
256
|
-
break;
|
|
257
|
-
case Map:
|
|
258
|
-
jsonObject.put(key, toJSONObject(readableMap.getMap(key)));
|
|
259
|
-
break;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}catch (Throwable t){
|
|
263
|
-
return jsonObject;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
return jsonObject;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
public static void printLog(String TAG, String message) {
|
|
272
|
-
System.out.println(TAG + ", " + message);
|
|
273
|
-
}
|
|
274
|
-
|
|
1
|
+
package com.reactlibrary;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments;
|
|
4
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
6
|
+
import com.facebook.react.bridge.ReadableMapKeySetIterator;
|
|
7
|
+
import com.facebook.react.bridge.ReadableType;
|
|
8
|
+
import com.facebook.react.bridge.WritableArray;
|
|
9
|
+
import com.facebook.react.bridge.WritableMap;
|
|
10
|
+
|
|
11
|
+
import java.util.ArrayList;
|
|
12
|
+
import java.util.HashMap;
|
|
13
|
+
import java.util.Iterator;
|
|
14
|
+
import java.util.Map;
|
|
15
|
+
|
|
16
|
+
import org.json.JSONObject;
|
|
17
|
+
|
|
18
|
+
import semusi.context.ui.appInbox.AppICEInboxMessage;
|
|
19
|
+
import semusi.model.campaign.Campaign;
|
|
20
|
+
import semusi.model.user.User;
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
public class AppICEUtils {
|
|
24
|
+
private static final String TAG = "AppICEUtils";
|
|
25
|
+
|
|
26
|
+
public static WritableMap convertClassToWritableMap(AppICEInboxMessage inboxMessage) {
|
|
27
|
+
WritableMap inboxObject = Arguments.createMap();
|
|
28
|
+
try {
|
|
29
|
+
if (inboxMessage != null) {
|
|
30
|
+
inboxObject.putString(EnumConstants.INBOX_MESSAGE_ID.getValue(), inboxMessage.getMessageId());
|
|
31
|
+
inboxObject.putString(EnumConstants.INBOX_CAMPAIGN_ID.getValue(), inboxMessage.getCampId());
|
|
32
|
+
inboxObject.putString(EnumConstants.INBOX_CAMPAIGN_TYPE.getValue(), inboxMessage.getMessageCampType());
|
|
33
|
+
inboxObject.putString(EnumConstants.INBOX_MESSAGE_CATEGORY.getValue(), inboxMessage.getCategory());
|
|
34
|
+
inboxObject.putString(EnumConstants.INBOX_MESSAGE_STATUS.getValue(), inboxMessage.getMessageStatus());
|
|
35
|
+
inboxObject.putString(EnumConstants.INBOX_MESSAGE_LANGUAGE.getValue(), inboxMessage.getMessageLanguage());
|
|
36
|
+
inboxObject.putString(EnumConstants.INBOX_TITLE.getValue(), inboxMessage.getMessageTitle());
|
|
37
|
+
inboxObject.putString(EnumConstants.INBOX_MESSAGE.getValue(), inboxMessage.getMessageBody());
|
|
38
|
+
inboxObject.putString(EnumConstants.INBOX_MESSAGE_ICON.getValue(), inboxMessage.getMessageIcon());
|
|
39
|
+
inboxObject.putMap(EnumConstants.INBOX_CUSTOM_DATA.getValue(), toWritableMap(inboxMessage.getCustomData()));
|
|
40
|
+
}
|
|
41
|
+
} catch (Throwable throwable) {
|
|
42
|
+
}
|
|
43
|
+
return inboxObject;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* This method accept object of native Campaign class (semusi.nativedisplay.Campaign)
|
|
48
|
+
* and convert to WritableMap for hybrid side
|
|
49
|
+
*
|
|
50
|
+
* @param campaign object of native Campaign class
|
|
51
|
+
* @return WritableMap
|
|
52
|
+
*/
|
|
53
|
+
public static WritableMap convertClassToWritableMap(Campaign campaign) {
|
|
54
|
+
WritableMap campaignMap = Arguments.createMap();
|
|
55
|
+
try {
|
|
56
|
+
if (campaign != null) {
|
|
57
|
+
campaignMap.putString(EnumConstants.CAMP_ID.getValue(), campaign.getCampId());
|
|
58
|
+
campaignMap.putString(EnumConstants.ACTION_URL.getValue(), campaign.getActionUrl());
|
|
59
|
+
campaignMap.putString(EnumConstants.ACTION_TYPE.getValue(), campaign.getActionType());
|
|
60
|
+
|
|
61
|
+
JSONObject cdata = campaign.getCustomDataObject();
|
|
62
|
+
Map<String, Object> customDataMap = new HashMap<>();
|
|
63
|
+
Iterator<String> keys = cdata.keys();
|
|
64
|
+
|
|
65
|
+
while (keys.hasNext()) {
|
|
66
|
+
String key = keys.next();
|
|
67
|
+
customDataMap.put(key, cdata.getString(key));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
campaignMap.putMap(EnumConstants.CUSTOMDATA.getValue(), toWritableMap(customDataMap));
|
|
71
|
+
}
|
|
72
|
+
} catch (Throwable e) {
|
|
73
|
+
|
|
74
|
+
}
|
|
75
|
+
return campaignMap;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* This method accept object of native User class (semusi.activitysdk.User)
|
|
80
|
+
* and convert to WritableMap for hybrid side
|
|
81
|
+
*
|
|
82
|
+
* @param user object of native User class
|
|
83
|
+
* @return WritableMap
|
|
84
|
+
*/
|
|
85
|
+
public static WritableMap convertUserClassToWritableMap(User user) {
|
|
86
|
+
WritableMap userObject = Arguments.createMap();
|
|
87
|
+
try {
|
|
88
|
+
if (user != null) {
|
|
89
|
+
userObject.putString(EnumConstants.APPICE_USER_NAME.getValue(), user.getName());
|
|
90
|
+
userObject.putString(EnumConstants.APPICE_USER_PHONE.getValue(), user.getPhone());
|
|
91
|
+
userObject.putString(EnumConstants.APPICE_USER_EMAIL.getValue(), user.getEmail());
|
|
92
|
+
userObject.putDouble(EnumConstants.APPICE_DATE_OF_BIRTH.getValue(), user.getDob());
|
|
93
|
+
userObject.putInt(EnumConstants.APPICE_USER_AGE.getValue(), user.getAge());
|
|
94
|
+
userObject.putString(EnumConstants.APPICE_USER_EDUCATION_TYPE.getValue(), user.getEducationType());
|
|
95
|
+
userObject.putString(EnumConstants.APPICE_USER_GENDER.getValue(), user.getGender());
|
|
96
|
+
userObject.putBoolean(EnumConstants.APPICE_USER_IS_EMPLOYED.getValue(), user.isEmployed());
|
|
97
|
+
userObject.putString(EnumConstants.APPICE_USER_EMPLOYMENT_TYPE.getValue(), user.getEmploymentType());
|
|
98
|
+
userObject.putBoolean(EnumConstants.APPICE_USER_MARRIED.getValue(), user.isMarried());
|
|
99
|
+
if (user.getCustomProperties() != null && user.getCustomProperties().length() > 0) {
|
|
100
|
+
userObject.putString(EnumConstants.DEMOGRAPHIC_INFO.getValue(), user.getCustomProperties().toString());
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
} catch (Throwable e) {
|
|
104
|
+
}
|
|
105
|
+
return userObject;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
public static WritableMap toWritableMap(Map<String, Object> map) {
|
|
111
|
+
WritableMap writableMap = Arguments.createMap();
|
|
112
|
+
Iterator iterator = map.entrySet().iterator();
|
|
113
|
+
|
|
114
|
+
while (iterator.hasNext()) {
|
|
115
|
+
Map.Entry pair = (Map.Entry) iterator.next();
|
|
116
|
+
writableMap.merge(addValue((String) pair.getKey(), pair.getValue()));
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return writableMap;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
public static WritableMap addValue(String key, Object value) {
|
|
123
|
+
WritableMap writableMap = Arguments.createMap();
|
|
124
|
+
if (value == null) {
|
|
125
|
+
writableMap.putNull(key);
|
|
126
|
+
} else if (value instanceof Boolean) {
|
|
127
|
+
writableMap.putBoolean(key, (Boolean) value);
|
|
128
|
+
} else if (value instanceof Double) {
|
|
129
|
+
writableMap.putDouble(key, (Double) value);
|
|
130
|
+
} else if (value instanceof Integer) {
|
|
131
|
+
writableMap.putInt(key, (Integer) value);
|
|
132
|
+
} else if (value instanceof String) {
|
|
133
|
+
writableMap.putString(key, (String) value);
|
|
134
|
+
} else if (value instanceof Map) {
|
|
135
|
+
writableMap.putMap(key, toWritableMap((Map<String, Object>) value));
|
|
136
|
+
} else if (value.getClass() != null && (value.getClass().isArray() || value instanceof ArrayList)) {
|
|
137
|
+
writableMap.putArray(key, toWritableArray((ArrayList) value));
|
|
138
|
+
}
|
|
139
|
+
return writableMap;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
public static WritableArray toWritableArray(ArrayList arrayList) {
|
|
143
|
+
WritableArray writableArray = Arguments.createArray();
|
|
144
|
+
|
|
145
|
+
for (int i = 0; i < arrayList.size(); i++) {
|
|
146
|
+
Object value = arrayList.get(i);
|
|
147
|
+
|
|
148
|
+
if (value == null) {
|
|
149
|
+
writableArray.pushNull();
|
|
150
|
+
}
|
|
151
|
+
if (value instanceof Boolean) {
|
|
152
|
+
writableArray.pushBoolean((Boolean) value);
|
|
153
|
+
}
|
|
154
|
+
if (value instanceof Double) {
|
|
155
|
+
writableArray.pushDouble((Double) value);
|
|
156
|
+
}
|
|
157
|
+
if (value instanceof Integer) {
|
|
158
|
+
writableArray.pushInt((Integer) value);
|
|
159
|
+
}
|
|
160
|
+
if (value instanceof String) {
|
|
161
|
+
writableArray.pushString((String) value);
|
|
162
|
+
}
|
|
163
|
+
if (value instanceof Map) {
|
|
164
|
+
writableArray.pushMap(toWritableMap((Map<String, Object>) value));
|
|
165
|
+
}
|
|
166
|
+
if (value.getClass().isArray()) {
|
|
167
|
+
writableArray.pushArray(toWritableArray((ArrayList) value));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
return writableArray;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
public static ArrayList<String> arrayListStringFromReadableArray(ReadableArray readableArray) {
|
|
176
|
+
ArrayList<String> array = new ArrayList<>();
|
|
177
|
+
for (int i = 0; i < readableArray.size(); i++) {
|
|
178
|
+
switch (readableArray.getType(i)) {
|
|
179
|
+
case Null:
|
|
180
|
+
break;
|
|
181
|
+
case Boolean:
|
|
182
|
+
array.add(String.valueOf(readableArray.getBoolean(i)));
|
|
183
|
+
break;
|
|
184
|
+
case Number:
|
|
185
|
+
array.add(String.valueOf(readableArray.getDouble(i)));
|
|
186
|
+
break;
|
|
187
|
+
case String:
|
|
188
|
+
array.add(readableArray.getString(i));
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return array;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* @param propsMap took data from js and iterate it and store in hashmap
|
|
197
|
+
* @return map of the props data
|
|
198
|
+
*/
|
|
199
|
+
public static HashMap<String, Object> eventPropsFromReadableMap(ReadableMap propsMap) {
|
|
200
|
+
if (propsMap == null) return null;
|
|
201
|
+
|
|
202
|
+
HashMap<String, Object> props = new HashMap<>();
|
|
203
|
+
ReadableMapKeySetIterator iterator = propsMap.keySetIterator();
|
|
204
|
+
|
|
205
|
+
while (iterator.hasNextKey()) {
|
|
206
|
+
try {
|
|
207
|
+
String key = iterator.nextKey();
|
|
208
|
+
ReadableType readableType = propsMap.getType(key);
|
|
209
|
+
|
|
210
|
+
if (readableType == ReadableType.String) {
|
|
211
|
+
props.put(key, propsMap.getString(key));
|
|
212
|
+
} else if (readableType == ReadableType.Boolean) {
|
|
213
|
+
props.put(key, propsMap.getBoolean(key));
|
|
214
|
+
} else if (readableType == ReadableType.Number) {
|
|
215
|
+
try {
|
|
216
|
+
props.put(key, propsMap.getInt(key));
|
|
217
|
+
} catch (Throwable t) {
|
|
218
|
+
try {
|
|
219
|
+
props.put(key, propsMap.getDouble(key));
|
|
220
|
+
} catch (Throwable t1) {
|
|
221
|
+
AppICEUtils.printLog(TAG, "Unhandled ReadableType.Number from ReadableMap");
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
} else {
|
|
225
|
+
AppICEUtils.printLog(TAG, "Unhandled event property ReadableType");
|
|
226
|
+
}
|
|
227
|
+
} catch (Throwable t) {
|
|
228
|
+
AppICEUtils.printLog(TAG, t.getLocalizedMessage());
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return props;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
public static JSONObject toJSONObject(ReadableMap readableMap) {
|
|
235
|
+
JSONObject jsonObject = new JSONObject();
|
|
236
|
+
|
|
237
|
+
try {
|
|
238
|
+
ReadableMapKeySetIterator iterator = readableMap.keySetIterator();
|
|
239
|
+
|
|
240
|
+
while (iterator.hasNextKey()) {
|
|
241
|
+
String key = iterator.nextKey();
|
|
242
|
+
ReadableType type = readableMap.getType(key);
|
|
243
|
+
|
|
244
|
+
switch (type) {
|
|
245
|
+
case Null:
|
|
246
|
+
jsonObject.put(key, null);
|
|
247
|
+
break;
|
|
248
|
+
case Boolean:
|
|
249
|
+
jsonObject.put(key, readableMap.getBoolean(key));
|
|
250
|
+
break;
|
|
251
|
+
case Number:
|
|
252
|
+
jsonObject.put(key, readableMap.getDouble(key));
|
|
253
|
+
break;
|
|
254
|
+
case String:
|
|
255
|
+
jsonObject.put(key, readableMap.getString(key));
|
|
256
|
+
break;
|
|
257
|
+
case Map:
|
|
258
|
+
jsonObject.put(key, toJSONObject(readableMap.getMap(key)));
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}catch (Throwable t){
|
|
263
|
+
return jsonObject;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
return jsonObject;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
public static void printLog(String TAG, String message) {
|
|
272
|
+
System.out.println(TAG + ", " + message);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
275
|
}
|