reactnative-plugin-appice 1.7.1 → 1.7.4

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.
@@ -114,7 +114,7 @@ dependencies {
114
114
  annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.3.1"
115
115
 
116
116
  //appice
117
- implementation 'appice.io.android:sdk:2.5.73'
117
+ implementation 'appice.io.android:sdk:2.5.74'
118
118
 
119
119
  //glide
120
120
  implementation "com.github.bumptech.glide:glide:4.11.0"
package/example/App.js CHANGED
@@ -13,15 +13,52 @@ import { Alert,
13
13
  Image,
14
14
  Linking,
15
15
  Button,
16
- AppState,
17
- View
16
+ TextInput,
17
+ ScrollView,
18
+ View,
19
+ AppState
18
20
  } from 'react-native';
19
21
 
20
22
  const AppICE = require('reactnative-plugin-appice');
21
23
  const HelloWorldApp = () => {
22
- const certs = [];
24
+ const certs: never[] = [];
23
25
  if (AppICE) {
24
26
  console.log('AppICE is available');
27
+ AppICE.preInitialise();
28
+ console.log('preInitialize completed');
29
+
30
+ AppICE.startContext(
31
+
32
+ /* "63ff2f6656903ac80342836f",
33
+ "f77142c61559d217188336610f0d4e432063e0c8",
34
+ "869a33728bd9b54fb920cee790062f6c",
35
+ "",
36
+ "BOI-UAT",
37
+ "https://uaappiceuatapi.bankofindia.co.in:11443/uat/api",
38
+ certs*/
39
+
40
+ "5bebe93c25d705690ffbc758",
41
+ "9e9ec60197c8373a11ac15ce4dae80e973608ab2",
42
+ "e5aa4b293f3188fac9cb1a4017963604",
43
+ "",
44
+ "US",
45
+ "https://a.appice.io",
46
+ certs
47
+
48
+ /*
49
+ "63da0ecb29610f3d31365d55",
50
+ "2e0c99435744e47ee673f6105360c4d9c8b135e6",
51
+ "c5d88b2aadaea30d5e0c4f153125a12c",
52
+ "",
53
+ "BOI-SIT",
54
+ "https://uaappiceuatapi.bankofindia.co.in:11443/sit/api",
55
+ certs
56
+ */
57
+ );
58
+
59
+
60
+
61
+ /*
25
62
  AppICE.startContext(
26
63
  // '5bebe93c25d705690ffbc758',
27
64
  // '9e9ec60197c8373a11ac15ce4dae80e973608ab2',
@@ -31,25 +68,30 @@ const HelloWorldApp = () => {
31
68
  // "https://stagingapi.appice.io",
32
69
  "5bebe93c25d705690ffbc758",
33
70
  "9e9ec60197c8373a11ac15ce4dae80e973608ab2",
34
- "844770e0edf3b795cd7508fa71789572",
71
+ "e5aa4b293f3188fac9cb1a4017963604",
35
72
  "",
36
73
  "US",
37
74
  "https://a.appice.io",
38
75
 
39
76
  certs);
77
+ */
78
+ addAppICEAPIListeners();
79
+
80
+ AppState.addEventListener('change', (nextAppState) => {
81
+ if (nextAppState === 'active') {
82
+ AppICE.isDeviceReady(true);
83
+ }
84
+ else if (nextAppState === 'background'){
85
+ AppICE.isDeviceReady(false);
86
+ }
87
+ });
88
+
40
89
  }
41
-
42
- AppState.addEventListener('change', (nextAppState) => {
43
- if (nextAppState === 'active') {
44
- AppICE.isDeviceReady(true);
45
- }
46
- else if (nextAppState === 'background'){
47
- // this state handle both backgroung and kill state
48
- AppICE.isDeviceReady(false);
49
- }
50
- });
51
90
 
52
- addAppICEAPIListeners();
91
+
92
+
93
+
94
+
53
95
  return (
54
96
  <View
55
97
  style={{
@@ -60,6 +102,7 @@ addAppICEAPIListeners();
60
102
 
61
103
  }}>
62
104
  <Text>AppICE React Demo</Text>
105
+
63
106
  <Button
64
107
  onPress={sendEvent}
65
108
  title="Send Event"
@@ -70,61 +113,67 @@ addAppICEAPIListeners();
70
113
  >
71
114
 
72
115
  </View>
73
- <Button
74
- onPress={setUserProfile}
75
- title="set User Profile"
76
- color="#841584"
77
-
116
+ <TextInput
117
+ style={{ height: 30,width:150, borderColor: 'gray', borderWidth: 1, marginBottom: 5, paddingHorizontal: 10 }}
118
+ placeholder="setUserID"
119
+ onChangeText={handlesetIDText}
78
120
  />
121
+ <View style={{ flexDirection: 'row', marginTop: 5 }}>
122
+ <Button title="setUserID" onPress={setSampleUserID} />
123
+ <View style={{ marginLeft: 10 }}>
124
+ <Button title="getUserId" onPress={getUserId} />
125
+ </View>
126
+ </View>
79
127
 
80
- <Button
81
- onPress={setSampleUserID}
82
- title="set Sample User ID"
83
- color="#841584"
128
+ <View style={{ flexDirection: 'row', marginTop: 5 }}>
129
+ <Button title="setUserProfile" onPress={setUserProfile} />
130
+ <View style={{ marginLeft: 10 }}>
131
+ <Button title="getUserProfile" onPress={getUser} />
132
+ </View>
133
+ </View>
84
134
 
85
- />
86
- <Button
87
- onPress={setLanguage}
88
- title="set Language"
89
- color="#841584"
135
+ <View style={{ flexDirection: 'row', marginTop: 5 }}>
136
+ <Button title="set Custom Variable" onPress={setLanguage} />
137
+ <View style={{ marginLeft: 10 }}>
138
+ <Button title="Send View" onPress={sendView} />
139
+ </View>
140
+ </View>
90
141
 
142
+ <TextInput
143
+ style={{ height: 30,width:300, borderColor: 'gray', borderWidth: 1, marginBottom: 10, paddingHorizontal: 10 }}
144
+ placeholder="mid"
145
+ onChangeText={handleTextChange}
91
146
  />
92
- <Button
93
- onPress={sendView}
94
- title="Send View"
95
- color="#841584"
96
147
 
97
- />
98
- <Button
99
- onPress={getUserId}
100
- title="getUserId"
101
- color="#841584"
148
+ <View style={{ flexDirection: 'row', marginTop: 5 }}>
149
+ <Button title="getInboxMessage" onPress={getInboxMessage} />
150
+ <View style={{ marginLeft: 5 }}>
151
+ <Button title="getMessageCount" onPress={getMessageCount} />
152
+ </View>
153
+ <View style={{ marginLeft: 5 }}>
154
+ </View>
155
+ </View>
102
156
 
103
- />
104
- <Button
105
- onPress={getInboxMessage}
106
- title="getInboxMessage"
107
- color="#841584"
157
+ <View style={{ flexDirection: 'row', marginTop: 5 }}>
158
+ <Button title="getInboxMessageId" onPress={getInboxMessageForId} />
159
+ <View style={{ marginLeft: 10 }}>
160
+ <Button title="updateInbox" onPress={updateInboxMessage} />
161
+ </View>
162
+ </View>
108
163
 
109
- />
110
- <Button
111
- onPress={getMessageCount}
112
- title="getMessageCount"
113
- color="#841584"
114
- />
115
164
  <Button
116
- onPress={getInboxMessageForId}
117
- title="getInboxMessageForId"
165
+ onPress={synchronizeInbox}
166
+ title="synchronizeInbox"
118
167
  color="#841584"
119
168
  />
120
169
  <Button
121
- onPress={updateInboxMessage}
122
- title="updateInboxMessage"
170
+ onPress={getUserDetails}
171
+ title="getUserDetails"
123
172
  color="#841584"
124
173
  />
125
174
  <Button
126
- onPress={synchronizeInbox}
127
- title="synchronizeInbox"
175
+ onPress={getUserData}
176
+ title="getUserData"
128
177
  color="#841584"
129
178
  />
130
179
  </View>
@@ -133,23 +182,25 @@ addAppICEAPIListeners();
133
182
  }
134
183
 
135
184
  function addAppICEAPIListeners() {
136
-
137
- console.log('handleAppICETapEvent');
138
-
139
- AppICE.addListener(AppICE.AppICEPushNotificationClicked, (event) => {
140
- if (typeof event !== 'undefined'){
141
- console.log('handleAppICETapEvent', AppICE.AppICEPushNotificationClicked, event.AppICEPushNotificationClicked);
185
+ AppICE.addListener(AppICE.AppICEPushNotificationClicked, (event: { AppICEPushNotificationClicked: any; }) => {
186
+ if (typeof event !== 'undefined') {
187
+ console.log(
188
+ 'handleAppICETapEvent',
189
+ AppICE.AppICEPushNotificationClicked,
190
+ event.AppICEPushNotificationClicked,
191
+ );
142
192
  AppICE.pushNotificationClicked(event.AppICEPushNotificationClicked);
143
- //fetching custom data from push payload
144
- var data = AppICE.getCustomDataFromPayload(event.AppICEPushNotificationClicked);
145
- console.log(data);
146
193
  }
147
194
  });
148
195
 
149
- AppICE.addListener(AppICE.AppICEInAppClicked, (event) => {
150
- if (typeof event !== 'undefined'){
151
- console.log('handleAppICETapEvent', AppICE.AppICEInAppClicked, event.AppICEInAppClicked);
152
- // AppICE.pushNotificationClicked(event.AppICEInAppClicked);
196
+ AppICE.addListener(AppICE.AppICEInAppClicked, (event: { AppICEInAppClicked: any; }) => {
197
+ if (typeof event !== 'undefined') {
198
+ console.log("event AppICEInAppClicked: " + event);
199
+ console.log("event is from AppICEInAppClicked is " + event.AppICEInAppClicked);
200
+ console.log('handleAppICETapEvent', AppICE.AppICEInAppClicked);
201
+
202
+
203
+ callbackInApp(event.AppICEInAppClicked)
153
204
  }
154
205
  });
155
206
  }
@@ -161,117 +212,399 @@ const sendEvent = () => {
161
212
  "AppName": "ReactSampleApp"
162
213
  };
163
214
  AppICE.tagEvent("ReactSampleApp", dataObj);
164
- //Recording an Event
215
+
165
216
  }
166
217
 
167
218
 
168
219
  const setUserProfile = () => {
169
- AppICE.setUser({
170
- [AppICE.name]: 'testUserA1', [AppICE.phone]: '123456', [AppICE.email]: 'test@test.com', [AppICE.age]: 23
220
+ AppICE.setUser({
221
+ [AppICE.name]: 'arthe',
222
+ [AppICE.phone]: '',
223
+ [AppICE.email]: '',
224
+ [AppICE.age]: 0,
225
+ [AppICE.gender]: '',
226
+ [AppICE.dob]: 0,
227
+ [AppICE.educationType]: '',
228
+ [AppICE.employmentType]: '',
229
+ [AppICE.married]:1,
230
+ [AppICE.isEmployed]:1,
171
231
  });
232
+ console.log("[AppICE.name] "+[AppICE.name]);
233
+ console.log("[AppICE.phone] "+[AppICE.phone]);
234
+ console.log("[AppICE.email] "+[AppICE.email]);
235
+ console.log("[AppICE.age] "+[AppICE.age]);
236
+ console.log("[AppICE.gender] "+[AppICE.gender]);
172
237
  };
173
238
 
174
239
  const setSampleUserID = () => {
175
- AppICE.setUserId(['1232323','kuOEN8bCqdrROmJPVCeKSg==']);
240
+ AppICE.setUserId(['16084015600']);
241
+ //181166344
242
+ //AppICE.setUserId(['181166344']);
243
+ //AppICE.setUserId(['kuOEN8bCqdrROmJPVCeKSg==']);
244
+
245
+ };
246
+
247
+ const getUserId = () => {
248
+ AppICE.getUserId((userIds: any[]) => {
249
+ console.log('User IDs:', userIds);
250
+ const inboxMessageString = JSON.stringify(userIds, null, 2);
176
251
 
252
+ Alert.alert(`getInboxMessageForId: \n ${inboxMessageString}`);
253
+ });
177
254
  };
178
255
 
179
256
  const setLanguage = () => {
180
257
  AppICE.setCustomVariable("_lang", "ar-AE");
181
258
 
259
+ };
260
+ //getUserDetails
261
+ const getUserDetails = () => {
262
+ console.log('GET USER Details:');
263
+ AppICE.getUser((user:any) => {
182
264
 
183
- AppICE.sendClickCallback((value) => {
184
- console.log(`INAPP callback`, value);
185
- });
265
+ });
266
+
267
+ };
268
+ const getUser = () => {
269
+ console.log('GET USER:');
186
270
 
271
+ const userData = AppICE.getUser((res: any)=>{
272
+ console.log("userData getUser "+userData);
273
+
274
+ if(res){
275
+ var response;
276
+ const resData = JSON.stringify(res);
277
+ console.log("res "+resData);
278
+
279
+ const data = JSON.parse(resData);
280
+ response = data;
281
+
282
+
283
+ const customProperties = response[AppICE.DEMOGRAPHIC_INFO];
284
+ console.log("customProperties "+customProperties);
285
+
286
+ }
287
+ });
288
+ }
289
+
290
+
291
+ function callbackInApp(payload: any) {
292
+
293
+ console.log('Call BAck payload:', payload);
294
+
295
+ if (payload) {
296
+ const screen = JSON.parse(payload)
297
+ console.log('Call BAck Screen:',screen);
298
+
299
+ }
300
+
301
+ };
302
+
303
+ function callbackInApp1(payload: any) {
304
+
305
+ if (Platform.OS === 'ios') {
306
+ console.log('Call BAck Screen for IOS:');
307
+ console.log('Call BAck payload :',payload);
308
+
309
+ if (payload) {
310
+ const screen = JSON.parse(payload)
311
+ console.log('Call BAck Screen :',screen);
312
+ Alert.alert('Call BAck Screen : ' +screen);
313
+ }
314
+ }
315
+ else
316
+ {
317
+ console.log("Please use Android logic here.");
318
+ }
187
319
  };
320
+
188
321
  const sendView = () => {
189
322
  AppICE.tagEvent("HomeScreen", {});
190
323
  };
324
+ /*
325
+ ===================
326
+ APPINBOX
327
+ ===================
328
+ */
329
+ const type = 1;
330
+ //kuOEN8bCqdrROmJPVCeKSg==
331
+ const userIds = ['16084015600'];
332
+ let inputValue = '';
333
+ const handlesetIDText = (text: string) => {
191
334
 
192
- const getUserId = () => {
193
- AppICE.getUserId((userIds: any[]) => {
194
- console.log('User IDs:', userIds);
195
- });
196
335
  };
197
336
 
198
- const type = 1;
199
- const userIds = ['1232323' , 'kuOEN8bCqdrROmJPVCeKSg=='];
337
+ const handleTextChange = (text: string) => {
338
+ inputValue = text;
339
+ };
340
+
341
+ let textInput: TextInput | null = null;
200
342
 
201
343
  const getInboxMessage = () => {
202
- AppICE.getInboxMessages(type, userIds, (inboxMessages: any[]) => {
203
- console.log('Received Inbox Messages:', inboxMessages);
344
+ const userId = ['16084015600'];
345
+ getInboxMessages(1, userId, "Bank Communications", 10, 0, 10, false, (result:any) => {
346
+ console.log("Inbox data set: ", result);
347
+ Alert.alert(`Inbox Data: \n ${result}`);
348
+ })
349
+ };
350
+
351
+ function getInboxMessages(type: number, userids: string[], category: string, limit: number, offset: number, timeout: number, withServerHit: boolean, callback: { (result: any): void; (arg0: string): void; }) {
352
+
353
+ if (withServerHit) {
354
+ AppICE.synchronizeInbox(timeout, (res: any) => {
355
+ if (res) {
356
+ AppICE.getInboxMessages(type, userids, async (res: any) => {
357
+ console.log("getInboxMessages " + res)
358
+ if (res) {
359
+ const newData = JSON.stringify(res);
360
+ const result = await getFilteredData(newData, category, limit, offset);
361
+ console.log("getFilteredData 2: ", result);
362
+ const val = JSON.stringify(result);
363
+ console.log("getFilteredData 2: ", val);
364
+ if (val) {
365
+ console.log("internalGetInboxMessage 2" + val)
366
+ callback(val);
367
+ // getMediaDataKeys(res);
368
+ }
369
+ }
370
+ })
371
+ } else {
372
+ AppICE.getInboxMessages(type, userids, async (res: any) => {
373
+ console.log("getInboxMessages " + res)
374
+ if (res) {
375
+ const newData = JSON.stringify(res);
376
+ const result = await getFilteredData(newData, category, limit, offset);
377
+ console.log("getFilteredData 3: ", result);
378
+ const val = JSON.stringify(result);
379
+ console.log("getFilteredData 3: ", val);
380
+ if (val) {
381
+ console.log("internalGetInboxMessage 3" + val)
382
+ callback(val);
383
+
384
+ }
385
+ }
386
+ })
387
+ }
388
+ });
389
+ } else {
390
+ AppICE.getInboxMessages(type, userids,async (res: any) => {
391
+ if (res) {
392
+ try {
393
+ const newData = JSON.stringify(res);
394
+ console.log("getInboxMessages newData" + newData)
395
+ const result = await getFilteredData(newData, category, limit, offset);
396
+ console.log("getFilteredData result" + result)
397
+
398
+ const val = JSON.stringify(result);
399
+ console.log("getFilteredData stringify result val" + val)
400
+
401
+
402
+ if (val) {
403
+ console.log("internalGetInboxMessage 4" + val)
404
+ callback(val);
405
+
406
+ }
407
+ } catch (error) {
408
+ console.log("internalGetInboxMessage error" + error)
409
+ }
410
+
411
+ }
412
+ })
413
+ }
414
+ }
204
415
 
205
- inboxMessages.forEach((message) => {
206
- const mediaKey = 'imageUrl';
207
- AppICE.getMediaData(message, mediaKey, (mediaData: any) => {
208
- console.log('Media Data:', mediaData);
209
416
 
210
- AppICE.getMediaUrl(mediaData,(mediaUrl:any) => {
211
- console.log('getMediaUrl is :', mediaUrl);
212
- });
417
+ async function getMediaDataKeys(inboxMessages: any) {
418
+ const newInboxMessageData: any[] = [];
419
+
420
+ // Iterate over all messages in inboxMessages array
421
+ inboxMessages.forEach(async (message: any) => {
213
422
 
214
- AppICE.getMediaType(mediaData,(mediaType:any) => {
215
- console.log('getmediaType is:', mediaType);
216
- });
217
423
 
218
- AppICE.getMediaThumbnail(mediaData,(mediaThumbnail:any) => {
219
- console.log('getMediaThumbnail is:', mediaThumbnail);
424
+ const mediaKey = 'imageUrl'; // Adjust media key as needed
425
+ const singleInboxMessage = Object.assign({}, message);
426
+
427
+ console.log('from server ', singleInboxMessage);
428
+ try {
429
+ const mediaData = await new Promise((resolve, reject) => {
430
+ AppICE.getMediaData(message, mediaKey, (mediaData: any) => {
431
+ resolve(mediaData);
220
432
  });
221
433
  });
222
-
223
- });
224
- }
434
+ // We have to check mediaData if it is valid only then we should call rest of the functions
435
+ const mediaUrl = await new Promise((resolve, reject) => {
436
+ AppICE.getMediaUrl(message, mediaData, (mediaUrl: any) => {
437
+ resolve(mediaUrl);
438
+ });
439
+ });
440
+ const mediaType = await new Promise((resolve, reject) => {
441
+ AppICE.getMediaType(message, mediaData, (mediaType: any) => {
442
+ resolve(mediaType);
443
+ });
444
+ });
445
+ const mediaThumbnail = await new Promise((resolve, reject) => {
446
+ AppICE.getMediaThumbnail(message, mediaData, (mediaThumbnail: any) => {
447
+ resolve(mediaThumbnail);
448
+ });
449
+ });
450
+ console.log('==================================================',);
451
+ console.log('singleInboxMessage:', singleInboxMessage);
452
+ console.log('mediaUrl:', mediaUrl);
453
+ console.log('mediaType:', mediaType);
454
+ console.log('mediaThumbnail:', mediaThumbnail);
455
+ // Add media data to singleInboxMessage
456
+ singleInboxMessage.mediaUrl = mediaUrl;
457
+ singleInboxMessage.mediaType = mediaType;
458
+ singleInboxMessage.mediaThumbnail = mediaThumbnail;
459
+
460
+
461
+ // Push singleInboxMessage to newInboxMessageData
462
+ newInboxMessageData.push(singleInboxMessage);
463
+
464
+ console.log('final Media newInboxMessageData push:', newInboxMessageData);
465
+ console.log('==================================================',);
466
+ } catch (error) {
467
+ console.error('Error fetching media data:', error);
468
+ }
469
+ });
225
470
 
226
- const getMessageCount = () => {
227
- AppICE.getMessageCount(type, userIds, (count: number) => {
228
- console.log('Messages count :', count);
471
+ // Wait for all asynchronous operations to complete before returning
472
+ return new Promise((resolve) => {
473
+ setTimeout(() => {
474
+ resolve(newInboxMessageData);
475
+ console.log('Media newInboxMessageData promise:', newInboxMessageData);
476
+ }, 500); //millisecond
229
477
  });
230
- }
231
478
 
232
-
233
- const getInboxMessageForId = () => {
234
- const messageId = "df73e314-2a61-4615-9fa5-348419e3fc82";
235
- const userIds = ['1232323' , 'kuOEN8bCqdrROmJPVCeKSg=='];
479
+ }
236
480
 
237
- AppICE.getInboxMessageForId(messageId, userIds, (inboxMessage: any) => {
238
- console.log('getInboxMessageForId in JS:', inboxMessage);
239
- });
481
+ async function getFilteredData(newData: string, category: string, limit: number, offset: number | undefined) {
482
+ const jsonArray = JSON.parse(newData);
483
+ if (!jsonArray || !Array.isArray(jsonArray)) {
484
+ console.error('Invalid jsonArray:', jsonArray);
485
+ return null;
240
486
  }
241
487
 
242
-
488
+ // Convert the provided category to lowercase for case-insensitive comparison
489
+ const lowerCaseCategory = category.toLowerCase();
243
490
 
244
- const updateInboxMessage = () => {
245
- const messageId = "df73e314-2a61-4615-9fa5-348419e3fc82";
246
- const userId = ['1232323' , 'kuOEN8bCqdrROmJPVCeKSg=='];
247
- AppICE.updateInboxMessage(messageId, 1, userId, (isSuccess: boolean) => {
248
- console.log('Update Inbox Message Success:', isSuccess);
249
- });
250
- }
491
+ // Count occurrences of each category with original case for the entire array
492
+ const categoryCount = jsonArray.reduce((acc, item) => {
493
+ const categoryName = item?.cdata?.category; // Added null checks
494
+ if (categoryName) {
495
+ acc[categoryName] = (acc[categoryName] || 0) + 1;
496
+ }
497
+ return acc;
498
+ }, {});
251
499
 
252
-
500
+ // Ensure that "chip A" and "chip B" are in the count array, even if they are not present in the filtered array
501
+ ["Offers & Promotions", "Bank Communications"].forEach(chip => {
502
+ if (!categoryCount[chip]) {
503
+ categoryCount[chip] = 0;
504
+ }
505
+ });
506
+
507
+ // Filter the array based on the provided category (case-insensitive)
508
+ const filteredArray = jsonArray.filter(item => item?.cdata?.category?.toLowerCase() === lowerCaseCategory);
509
+ console.log("slicedArray filteredArray " +filteredArray);
510
+
511
+ // Apply limit and offset to the filtered array
512
+ const slicedArray = filteredArray.slice(offset, offset + limit);
513
+ console.log("slicedArray " + JSON.stringify(slicedArray));
514
+
515
+ // Prepare the result object without assigning new values
516
+ const result = {
517
+ count: Object.entries(categoryCount).map(([key, value]) => ({ [key]: value })),
518
+ inboxData: await getMediaDataKeys(slicedArray)
519
+ /*slicedArray.map(item => ({
520
+ cdata: item?.cdata,
521
+ campId: item?.campId,
522
+ campType: item?.campType,
523
+ icon: item?.icon,
524
+ id: item?.id,
525
+ message: item?.message,
526
+ messageExpiryTime: item?.messageExpiryTime,
527
+ messageLanguage: item?.messageLanguage,
528
+ messageStatus: item?.messageStatus,
529
+ title: item?.title
530
+
531
+ }))*/
532
+ };
533
+ console.log("filtered data " + JSON.stringify(result));
534
+ return result;
535
+ }
253
536
 
254
- const synchronizeInbox = () => {
255
- AppICE.synchronizeInbox(10, (success: boolean) => {
256
- console.log('Inbox synchronization success:', success);
257
- const userIds = ['1232323' , 'kuOEN8bCqdrROmJPVCeKSg=='];
258
- AppICE.getInboxMessages( 1, userIds, (inboxMessages: any[]) => {
259
- console.log('Inbox Messages:', inboxMessages);
260
- // everytime will return next set of data from payload
261
- // var inbox = getInboxFilteredData (inbox, key= "Transaction", limit=10, offset=1 );
537
+
538
+ const getMessageCount = () => {
539
+ const userId = ['16084015600'];
540
+ const count = getMessageCounts(1, userId, 10, (result: number) => {
541
+ Alert.alert(`getMessageCounts count : \n ${result}`);
542
+ })
543
+ }
544
+ function getMessageCounts(type: number, userids:string[], timeout: number, callback: { (result: number): void; (arg0: any): void; }) {
545
+ AppICE.synchronizeInbox(timeout, (res: any) => {
546
+ if (res) {
547
+ console.log("getMessageCounts inside the sync type = "+type+", userid = "+userids)
548
+ AppICE.getMessageCount(1, userids, (res: string) => {
549
+ if (res) {
550
+ console.log("getMessageCounts inside the sync res = "+res)
551
+ callback(res);
552
+ }
553
+ });
554
+ } else {
555
+ console.log("getMessageCounts outside the sync type = "+type+", userid = "+userids)
556
+ console.log("inbox is not synced with server, showing old stored data")
557
+ AppICE.getMessageCount(1, userids, (res: any) => {
558
+ if (res) {
559
+ callback(res);
560
+ }
262
561
  });
562
+ }
563
+ })
564
+ }
565
+
566
+ const getInboxMessageForId = () => {
567
+ const messageId = "2808bed2-11e7-4352-ac5a-b22a7dec9ca5";
568
+ const useIds = 'kuOEN8bCqdrROmJPVCeKSg==';
263
569
 
570
+ AppICE.getInboxMessageForId(messageId, useIds, (inboxMessage: any) => {
571
+ console.log('getInboxMessageForId in JS:', inboxMessage);
572
+ });
573
+ }
574
+
575
+ const updateInboxMessage = () => {
576
+ const messageId = "13f6a43b-6618-4918-addf-d9d341984e23";
577
+ updatedInboxMessage(messageId, 3, 'kuOEN8bCqdrROmJPVCeKSg==', (result: boolean) => {
578
+ Alert.alert('Update Inbox Message:', `Entered value: ${inputValue} \n ${result}`);
579
+ });
580
+ }
581
+ function updatedInboxMessage(messageId: string, type: number, userid: string, callback: { (result: boolean): void; (arg0: any): void; }) {
582
+ AppICE.updateInboxMessage(messageId, type, userid, (res: boolean) => {
583
+ callback(res);
584
+ console.log("updateInboxMessage res : " + res)
264
585
  });
265
586
  }
266
587
 
267
- const getUserData = () => {
588
+ const synchronizeInbox = () => {
589
+ AppICE.synchronizeInbox(10, (success: boolean) => {
590
+ console.log('Inbox synchronization success:', success);
591
+ const useIds = ['16084015600'];
592
+ AppICE.getInboxMessages( 1, useIds, (inboxMessages: any[]) => {
593
+ console.log('Inbox Messages:', inboxMessages);
594
+ });
595
+
596
+ });
597
+ }
598
+
599
+ const getUserData = () => {
268
600
  AppICE.synchronizeData(10,(success: boolean) => {
269
601
  console.log('Profile synchronization success:', success);
270
602
  Alert.alert(`synchronizeData: \n ${success}`);
271
- const userIds = ['160840156'];
272
- AppICE.getUserForIds(userIds, (res:any[]) => {
603
+ const userIds = ['16084015600'];
604
+ AppICE.getUserForIds(userIds, (res:any) => {
273
605
 
274
606
  console.log('Receive getUser:', res);
607
+ Alert.alert('Receive getUser Alert:' + JSON.stringify(res));
275
608
  for (var index = 0; index < res.length; index++) {
276
609
  let userData = res[index];
277
610
  console.log('Received Inbox:', userData);
@@ -286,25 +619,42 @@ const getMessageCount = () => {
286
619
  const marriage = userData[AppICE.married];
287
620
  const isEmployed = userData[AppICE.isEmployed];
288
621
 
289
- console.log('GetUser name:', name);
290
- console.log('GetUser phone:', phone);
622
+ console.log('GetUser Name:', name);
623
+ console.log('GetUser PHONE:', phone);
291
624
  console.log('GetUser gender:', gender);
292
625
  console.log('GetUser dob:', dob);
293
- console.log('GetUser educationType:', edt);
626
+ console.log('GetUser edt:', edt);
294
627
  console.log('GetUser email:', email);
295
628
  console.log('GetUser employment:', employment);
296
629
  console.log('GetUser age:', age);
297
630
  console.log('GetUser marriage:', marriage);
298
- console.log('GetUser isEmployed:', isEmployed);
631
+ console.log('GetUser ISEMPLOYED:', isEmployed);
299
632
 
300
633
 
301
634
  const customProperties = userData[AppICE.DEMOGRAPHIC_INFO];
302
- const customPropertiesObj = JSON.parse(customProperties);
303
- console.log("user Profile, top_n_product_viewed = "+customPropertiesObj[AppICE.TOP_N_PRODUCTS_VIEWED]);
304
-
305
- }
635
+ const customPropertiesObj = JSON.parse(customProperties);
636
+ console.log("customPropertiesObj "+customPropertiesObj);
637
+
638
+ console.log("user Profile, top_n_product_viewed = "+customPropertiesObj[AppICE.TOP_N_PRODUCTS_VIEWED]);
639
+
640
+
641
+
642
+ }
306
643
  });
644
+
645
+
307
646
  });
308
647
  }
309
648
 
649
+
310
650
  export default HelloWorldApp;
651
+
652
+ function showAlert(arg0: string, arg1: string) {
653
+ throw new Error('Function not implemented.');
654
+ }
655
+
656
+
657
+ function callback(arg0: string) {
658
+ throw new Error('Function not implemented.');
659
+ }
660
+
File without changes
File without changes
@@ -20,6 +20,16 @@ buildscript {
20
20
  repositories {
21
21
  google()
22
22
  mavenCentral()
23
+ maven {
24
+ url "https://gitlab.com/api/v4/projects/10636887/packages/maven"
25
+ credentials(HttpHeaderCredentials) {
26
+ name = "Deploy-Token"
27
+ value = "PJMsxXdArqsmqDx4x5B6"
28
+ }
29
+ authentication {
30
+ header(HttpHeaderAuthentication)
31
+ }
32
+ }
23
33
  }
24
34
  dependencies {
25
35
  classpath("com.android.tools.build:gradle:7.1.1")
@@ -49,5 +59,15 @@ allprojects {
49
59
  }
50
60
  google()
51
61
  maven { url 'https://www.jitpack.io' }
62
+ maven {
63
+ url "https://gitlab.com/api/v4/projects/10636887/packages/maven"
64
+ credentials(HttpHeaderCredentials) {
65
+ name = "Deploy-Token"
66
+ value = "PJMsxXdArqsmqDx4x5B6"
67
+ }
68
+ authentication {
69
+ header(HttpHeaderAuthentication)
70
+ }
71
+ }
52
72
  }
53
73
  }
@@ -209,7 +209,7 @@ RCT_EXPORT_METHOD(setUser:(NSDictionary*)userProfile)
209
209
  app.age = [userProfile[items[i] ]intValue];
210
210
  break;
211
211
  case 6:
212
- app.is_user_employed = userProfile[items[i]];
212
+ app.is_user_employed = [userProfile[items[i]]boolValue];
213
213
  break;
214
214
  case 7:
215
215
  app.employment_type = userProfile[items[i]];
@@ -218,7 +218,7 @@ RCT_EXPORT_METHOD(setUser:(NSDictionary*)userProfile)
218
218
  app.education_type = userProfile[items[i]];
219
219
  break;
220
220
  case 9:
221
- app.is_user_married = userProfile[items[i]];
221
+ app.is_user_married = [userProfile[items[i]]boolValue];
222
222
  break;
223
223
  default:
224
224
  break;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reactnative-plugin-appice",
3
- "version": "1.7.1",
3
+ "version": "1.7.4",
4
4
  "description": "appICE React Native SDK",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -1,8 +0,0 @@
1
- ## This file must *NOT* be checked into Version Control Systems,
2
- # as it contains information specific to your local configuration.
3
- #
4
- # Location of the SDK. This is only used by Gradle.
5
- # For customization when using a Version Control System, please read the
6
- # header note.
7
- #Thu Feb 01 13:23:35 IST 2024
8
- sdk.dir=/Users/amit/Library/Android/sdk