clevertap-react-native 0.9.3 → 1.0.0
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/CHANGELOG.md +15 -0
- package/README.md +5 -0
- package/android/.gradle/6.1.1/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/6.1.1/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.1.1/fileChanges/last-build.bin +0 -0
- package/android/.gradle/6.1.1/fileContent/fileContent.lock +0 -0
- package/android/.gradle/6.1.1/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.1.1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/6.1.1/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/6.1.1/gc.properties +0 -0
- package/android/.gradle/6.1.1/javaCompile/classAnalysis.bin +0 -0
- package/android/.gradle/6.1.1/javaCompile/jarAnalysis.bin +0 -0
- package/android/.gradle/6.1.1/javaCompile/javaCompile.lock +0 -0
- package/android/.gradle/6.1.1/javaCompile/taskHistory.bin +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build/generated/source/buildConfig/debug/com/clevertap/react/BuildConfig.java +12 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +14 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output.json +27 -0
- package/android/build/intermediates/aar_main_jar/debug/classes.jar +0 -0
- package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +1 -0
- package/android/build/intermediates/annotations_typedef_file/debug/typedefs.txt +0 -0
- package/android/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/R.txt +5732 -0
- package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
- package/android/build/intermediates/incremental/debug-mergeNativeLibs/merge-state +0 -0
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
- package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
- package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/packageDebugResources/merger.xml +2 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/BuildConfig.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/CleverTapApplication$1$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/CleverTapApplication$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/CleverTapApplication.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/CleverTapModule$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/CleverTapModule$2.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/CleverTapModule$ErrorMessages.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/CleverTapModule$InBoxMessages.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/CleverTapModule.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/CleverTapPackage.class +0 -0
- package/android/build/intermediates/javac/debug/classes/com/clevertap/react/CleverTapUtils.class +0 -0
- package/android/build/intermediates/library_manifest/debug/AndroidManifest.xml +14 -0
- package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +2 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +17 -0
- package/android/build/intermediates/merged_java_res/debug/out.jar +0 -0
- package/android/build/intermediates/merged_manifests/debug/output.json +27 -0
- package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +3965 -0
- package/android/build/outputs/aar/android-debug.aar +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +39 -0
- package/android/build.gradle +7 -7
- package/android/local.properties +2 -2
- package/android/src/main/java/com/clevertap/react/CleverTapModule.java +240 -12
- package/clevertap-react-native.podspec +1 -1
- package/docs/iospushtemplates.md +449 -0
- package/docs/pushprimer.md +97 -0
- package/docs/usage.md +4 -0
- package/index.d.ts +51 -4
- package/index.js +41 -4
- package/ios/CleverTapReact/CleverTapReact.h +2 -0
- package/ios/CleverTapReact/CleverTapReact.m +204 -63
- package/ios/CleverTapReact/CleverTapReactEventEmitter.h +0 -1
- package/ios/CleverTapReact/CleverTapReactEventEmitter.m +6 -3
- package/ios/CleverTapReact/CleverTapReactManager.h +3 -0
- package/ios/CleverTapReact/CleverTapReactManager.m +23 -11
- package/package.json +1 -1
- package/static/Finder.png +0 -0
- package/static/GenerateSpecs.png +0 -0
- package/static/NotificationContent.png +0 -0
- package/static/NotificationContentTarget.png +0 -0
|
Binary file
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
-- Merging decision tree log ---
|
|
2
|
+
manifest
|
|
3
|
+
ADDED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:1:1-5:12
|
|
4
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:1:1-5:12
|
|
5
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:1:1-5:12
|
|
6
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:1:1-5:12
|
|
7
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:1:1-5:12
|
|
8
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:1:1-5:12
|
|
9
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:1:1-5:12
|
|
10
|
+
package
|
|
11
|
+
ADDED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:2:5-34
|
|
12
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
13
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
14
|
+
android:versionName
|
|
15
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
16
|
+
ADDED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:1:1-5:12
|
|
17
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
18
|
+
android:versionCode
|
|
19
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
20
|
+
ADDED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:1:1-5:12
|
|
21
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
22
|
+
xmlns:android
|
|
23
|
+
ADDED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:1:11-69
|
|
24
|
+
application
|
|
25
|
+
ADDED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml:3:5-4:19
|
|
26
|
+
uses-sdk
|
|
27
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml reason: use-sdk injection requested
|
|
28
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
29
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
30
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
31
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
32
|
+
android:targetSdkVersion
|
|
33
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
34
|
+
ADDED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
35
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
36
|
+
android:minSdkVersion
|
|
37
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
38
|
+
ADDED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
|
39
|
+
INJECTED from /Users/shivam.sharma/Desktop/clevertap-react-native/android/src/main/AndroidManifest.xml
|
package/android/build.gradle
CHANGED
|
@@ -15,14 +15,14 @@ buildscript {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
android {
|
|
18
|
-
compileSdkVersion
|
|
19
|
-
buildToolsVersion '
|
|
18
|
+
compileSdkVersion 33
|
|
19
|
+
buildToolsVersion '33.0.0'
|
|
20
20
|
|
|
21
21
|
defaultConfig {
|
|
22
|
-
minSdkVersion
|
|
23
|
-
targetSdkVersion
|
|
24
|
-
versionCode
|
|
25
|
-
versionName "0.
|
|
22
|
+
minSdkVersion 19
|
|
23
|
+
targetSdkVersion 33
|
|
24
|
+
versionCode 95
|
|
25
|
+
versionName "1.0.0"
|
|
26
26
|
}
|
|
27
27
|
buildTypes {
|
|
28
28
|
release {
|
|
@@ -39,7 +39,7 @@ dependencies {
|
|
|
39
39
|
maven { url "$rootDir/../node_modules/react-native/android" }
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
api 'com.clevertap.android:clevertap-android-sdk:4.
|
|
42
|
+
api 'com.clevertap.android:clevertap-android-sdk:4.7.2'
|
|
43
43
|
implementation 'com.android.installreferrer:installreferrer:2.2'
|
|
44
44
|
//compile 'com.android.support:appcompat-v7:28.0.0'
|
|
45
45
|
implementation 'com.facebook.react:react-native:+'
|
package/android/local.properties
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
# Location of the SDK. This is only used by Gradle.
|
|
5
5
|
# For customization when using a Version Control System, please read the
|
|
6
6
|
# header note.
|
|
7
|
-
#
|
|
8
|
-
sdk.dir=/Users/
|
|
7
|
+
#Mon Dec 26 16:37:20 IST 2022
|
|
8
|
+
sdk.dir=/Users/shivam.sharma/Library/Android/sdk
|
|
@@ -2,6 +2,7 @@ package com.clevertap.react;
|
|
|
2
2
|
|
|
3
3
|
import static com.clevertap.react.CleverTapUtils.getWritableMapFromMap;
|
|
4
4
|
|
|
5
|
+
import android.annotation.SuppressLint;
|
|
5
6
|
import android.location.Location;
|
|
6
7
|
import android.net.Uri;
|
|
7
8
|
import android.os.Build.VERSION;
|
|
@@ -19,12 +20,15 @@ import com.clevertap.android.sdk.InAppNotificationListener;
|
|
|
19
20
|
import com.clevertap.android.sdk.InboxMessageButtonListener;
|
|
20
21
|
import com.clevertap.android.sdk.InboxMessageListener;
|
|
21
22
|
import com.clevertap.android.sdk.Logger;
|
|
23
|
+
import com.clevertap.android.sdk.PushPermissionResponseListener;
|
|
22
24
|
import com.clevertap.android.sdk.SyncListener;
|
|
23
25
|
import com.clevertap.android.sdk.UTMDetail;
|
|
24
26
|
import com.clevertap.android.sdk.displayunits.DisplayUnitListener;
|
|
25
27
|
import com.clevertap.android.sdk.displayunits.model.CleverTapDisplayUnit;
|
|
26
28
|
import com.clevertap.android.sdk.events.EventDetail;
|
|
27
29
|
import com.clevertap.android.sdk.featureFlags.CTFeatureFlagsController;
|
|
30
|
+
import com.clevertap.android.sdk.inapp.CTInAppNotification;
|
|
31
|
+
import com.clevertap.android.sdk.inapp.CTLocalInApp;
|
|
28
32
|
import com.clevertap.android.sdk.inbox.CTInboxMessage;
|
|
29
33
|
import com.clevertap.android.sdk.interfaces.OnInitCleverTapIDListener;
|
|
30
34
|
import com.clevertap.android.sdk.product_config.CTProductConfigController;
|
|
@@ -60,7 +64,7 @@ public class CleverTapModule extends ReactContextBaseJavaModule implements SyncL
|
|
|
60
64
|
InAppNotificationListener, CTInboxListener,
|
|
61
65
|
InboxMessageButtonListener, InboxMessageListener,
|
|
62
66
|
InAppNotificationButtonListener, DisplayUnitListener, CTProductConfigListener,
|
|
63
|
-
CTFeatureFlagsListener, CTPushNotificationListener {
|
|
67
|
+
CTFeatureFlagsListener, CTPushNotificationListener, PushPermissionResponseListener {
|
|
64
68
|
|
|
65
69
|
@SuppressWarnings("FieldCanBeLocal")
|
|
66
70
|
private enum InBoxMessages {
|
|
@@ -104,6 +108,8 @@ public class CleverTapModule extends ReactContextBaseJavaModule implements SyncL
|
|
|
104
108
|
|
|
105
109
|
private static final String CLEVERTAP_IN_APP_NOTIFICATION_DISMISSED = "CleverTapInAppNotificationDismissed";
|
|
106
110
|
|
|
111
|
+
private static final String CLEVERTAP_IN_APP_NOTIFICATION_SHOWED = "CleverTapInAppNotificationShowed";
|
|
112
|
+
|
|
107
113
|
private static final String FCM = "FCM";
|
|
108
114
|
|
|
109
115
|
private static final String XPS = "XPS";
|
|
@@ -133,6 +139,8 @@ public class CleverTapModule extends ReactContextBaseJavaModule implements SyncL
|
|
|
133
139
|
|
|
134
140
|
private static final String CLEVERTAP_PUSH_NOTIFICATION_CLICKED = "CleverTapPushNotificationClicked";
|
|
135
141
|
|
|
142
|
+
private static final String CLEVERTAP_ON_PUSH_PERMISSION_RESPONSE = "CleverTapPushPermissionResponseReceived";
|
|
143
|
+
|
|
136
144
|
private final ReactApplicationContext context;
|
|
137
145
|
|
|
138
146
|
private CleverTapAPI mCleverTap;
|
|
@@ -161,6 +169,17 @@ public class CleverTapModule extends ReactContextBaseJavaModule implements SyncL
|
|
|
161
169
|
return true;
|
|
162
170
|
}
|
|
163
171
|
|
|
172
|
+
@SuppressLint("RestrictedApi")
|
|
173
|
+
@Override
|
|
174
|
+
public void onShow(CTInAppNotification inAppNotification) {
|
|
175
|
+
WritableMap params = Arguments.createMap();
|
|
176
|
+
JSONObject data = inAppNotification.getJsonDescription();
|
|
177
|
+
if (data != null) {
|
|
178
|
+
params.putString("data", data.toString());
|
|
179
|
+
}
|
|
180
|
+
sendEvent(CLEVERTAP_IN_APP_NOTIFICATION_SHOWED, params);
|
|
181
|
+
}
|
|
182
|
+
|
|
164
183
|
//Custom Push Notification
|
|
165
184
|
@ReactMethod
|
|
166
185
|
public void createNotification(ReadableMap extras) {
|
|
@@ -282,6 +301,48 @@ public class CleverTapModule extends ReactContextBaseJavaModule implements SyncL
|
|
|
282
301
|
Log.i(TAG, "Notification Channel Group Id " + groupId + " deleted");
|
|
283
302
|
}
|
|
284
303
|
|
|
304
|
+
//Push permission methods
|
|
305
|
+
@ReactMethod
|
|
306
|
+
public void promptForPushPermission(boolean showFallbackSettings) {
|
|
307
|
+
CleverTapAPI cleverTap = getCleverTapAPI();
|
|
308
|
+
if (cleverTap != null) {
|
|
309
|
+
cleverTap.promptForPushPermission(showFallbackSettings);
|
|
310
|
+
} else {
|
|
311
|
+
Log.e(TAG, ErrorMessages.CLEVERTAP_NOT_INITIALIZED.getErrorMessage());
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
@ReactMethod
|
|
316
|
+
public void promptPushPrimer(ReadableMap localInAppConfig) {
|
|
317
|
+
CleverTapAPI cleverTap = getCleverTapAPI();
|
|
318
|
+
if (cleverTap != null) {
|
|
319
|
+
JSONObject jsonObject = localInAppConfigFromReadableMap(localInAppConfig);
|
|
320
|
+
cleverTap.promptPushPrimer(jsonObject);
|
|
321
|
+
} else {
|
|
322
|
+
Log.e(TAG, ErrorMessages.CLEVERTAP_NOT_INITIALIZED.getErrorMessage());
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
@ReactMethod
|
|
327
|
+
public void isPushPermissionGranted(final Callback callback) {
|
|
328
|
+
final CleverTapAPI clevertap = getCleverTapAPI();
|
|
329
|
+
if (clevertap != null) {
|
|
330
|
+
boolean isPushPermissionGranted = clevertap.isPushPermissionGranted();
|
|
331
|
+
callbackWithErrorAndResult(callback, null, isPushPermissionGranted);
|
|
332
|
+
} else {
|
|
333
|
+
String error = ErrorMessages.CLEVERTAP_NOT_INITIALIZED.getErrorMessage();
|
|
334
|
+
callbackWithErrorAndResult(callback, error, null);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
@Override
|
|
339
|
+
public void onPushPermissionResponse(boolean accepted) {
|
|
340
|
+
Log.i(TAG, "onPushPermissionResponse result: " + accepted);
|
|
341
|
+
WritableMap params = Arguments.createMap();
|
|
342
|
+
params.putBoolean("accepted", accepted);
|
|
343
|
+
sendEvent(CLEVERTAP_ON_PUSH_PERMISSION_RESPONSE, params);
|
|
344
|
+
}
|
|
345
|
+
|
|
285
346
|
@ReactMethod
|
|
286
347
|
public void disablePersonalization() {
|
|
287
348
|
CleverTapAPI clevertap = getCleverTapAPI();
|
|
@@ -456,6 +517,7 @@ public class CleverTapModule extends ReactContextBaseJavaModule implements SyncL
|
|
|
456
517
|
constants.put(CLEVERTAP_PROFILE_DID_INITIALIZE, CLEVERTAP_PROFILE_DID_INITIALIZE);
|
|
457
518
|
constants.put(CLEVERTAP_PROFILE_SYNC, CLEVERTAP_PROFILE_SYNC);
|
|
458
519
|
constants.put(CLEVERTAP_IN_APP_NOTIFICATION_DISMISSED, CLEVERTAP_IN_APP_NOTIFICATION_DISMISSED);
|
|
520
|
+
constants.put(CLEVERTAP_IN_APP_NOTIFICATION_SHOWED, CLEVERTAP_IN_APP_NOTIFICATION_SHOWED);
|
|
459
521
|
constants.put(FCM, FCM);
|
|
460
522
|
constants.put(XPS, XPS);
|
|
461
523
|
constants.put(BPS, BPS);
|
|
@@ -471,6 +533,7 @@ public class CleverTapModule extends ReactContextBaseJavaModule implements SyncL
|
|
|
471
533
|
constants.put(CLEVERTAP_PRODUCT_CONFIG_DID_FETCH, CLEVERTAP_PRODUCT_CONFIG_DID_FETCH);
|
|
472
534
|
constants.put(CLEVERTAP_PRODUCT_CONFIG_DID_ACTIVATE, CLEVERTAP_PRODUCT_CONFIG_DID_ACTIVATE);
|
|
473
535
|
constants.put(CLEVERTAP_PUSH_NOTIFICATION_CLICKED, CLEVERTAP_PUSH_NOTIFICATION_CLICKED);
|
|
536
|
+
constants.put(CLEVERTAP_ON_PUSH_PERMISSION_RESPONSE, CLEVERTAP_ON_PUSH_PERMISSION_RESPONSE);
|
|
474
537
|
return constants;
|
|
475
538
|
}
|
|
476
539
|
|
|
@@ -1373,21 +1436,26 @@ public class CleverTapModule extends ReactContextBaseJavaModule implements SyncL
|
|
|
1373
1436
|
return props;
|
|
1374
1437
|
}
|
|
1375
1438
|
|
|
1439
|
+
private void registerListeners(CleverTapAPI clevertap) {
|
|
1440
|
+
clevertap.registerPushPermissionNotificationResponseListener(this);
|
|
1441
|
+
clevertap.setCTPushNotificationListener(this);
|
|
1442
|
+
clevertap.setInAppNotificationListener(this);
|
|
1443
|
+
clevertap.setSyncListener(this);
|
|
1444
|
+
clevertap.setCTNotificationInboxListener(this);
|
|
1445
|
+
clevertap.setInboxMessageButtonListener(this);
|
|
1446
|
+
clevertap.setCTInboxMessageListener(this);
|
|
1447
|
+
clevertap.setInAppNotificationButtonListener(this);
|
|
1448
|
+
clevertap.setDisplayUnitListener(this);
|
|
1449
|
+
clevertap.setCTProductConfigListener(this);
|
|
1450
|
+
clevertap.setCTFeatureFlagsListener(this);
|
|
1451
|
+
clevertap.setLibrary("React-Native");
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1376
1454
|
private CleverTapAPI getCleverTapAPI() {
|
|
1377
1455
|
if (mCleverTap == null) {
|
|
1378
1456
|
CleverTapAPI clevertap = CleverTapAPI.getDefaultInstance(this.context);
|
|
1379
1457
|
if (clevertap != null) {
|
|
1380
|
-
clevertap
|
|
1381
|
-
clevertap.setInAppNotificationListener(this);
|
|
1382
|
-
clevertap.setSyncListener(this);
|
|
1383
|
-
clevertap.setCTNotificationInboxListener(this);
|
|
1384
|
-
clevertap.setInboxMessageButtonListener(this);
|
|
1385
|
-
clevertap.setCTInboxMessageListener(this);
|
|
1386
|
-
clevertap.setInAppNotificationButtonListener(this);
|
|
1387
|
-
clevertap.setDisplayUnitListener(this);
|
|
1388
|
-
clevertap.setCTProductConfigListener(this);
|
|
1389
|
-
clevertap.setCTFeatureFlagsListener(this);
|
|
1390
|
-
clevertap.setLibrary("React-Native");
|
|
1458
|
+
registerListeners(clevertap);
|
|
1391
1459
|
}
|
|
1392
1460
|
mCleverTap = clevertap;
|
|
1393
1461
|
}
|
|
@@ -1395,6 +1463,18 @@ public class CleverTapModule extends ReactContextBaseJavaModule implements SyncL
|
|
|
1395
1463
|
return mCleverTap;
|
|
1396
1464
|
}
|
|
1397
1465
|
|
|
1466
|
+
@ReactMethod
|
|
1467
|
+
public void setInstanceWithAccountId(String accountId) {
|
|
1468
|
+
if (mCleverTap == null || !accountId.equals(mCleverTap.getAccountId())) {
|
|
1469
|
+
CleverTapAPI cleverTap = CleverTapAPI.getGlobalInstance(this.context, accountId);
|
|
1470
|
+
if (cleverTap != null) {
|
|
1471
|
+
registerListeners(cleverTap);
|
|
1472
|
+
mCleverTap = cleverTap;
|
|
1473
|
+
Log.i(TAG, "CleverTap instance changed for accountId " + accountId);
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1398
1478
|
private CTProductConfigController getCtProductConfigController() {
|
|
1399
1479
|
CleverTapAPI clevertap = getCleverTapAPI();
|
|
1400
1480
|
if (clevertap == null) {
|
|
@@ -1504,6 +1584,154 @@ public class CleverTapModule extends ReactContextBaseJavaModule implements SyncL
|
|
|
1504
1584
|
}
|
|
1505
1585
|
}
|
|
1506
1586
|
|
|
1587
|
+
/**
|
|
1588
|
+
* retrieves the localInAppConfig from the given ReadableMap.
|
|
1589
|
+
* @param readableMap - the map config, received from the host application
|
|
1590
|
+
* @return the Json of the localInAppConfig
|
|
1591
|
+
*/
|
|
1592
|
+
private JSONObject localInAppConfigFromReadableMap(ReadableMap readableMap) {
|
|
1593
|
+
if (readableMap == null) {
|
|
1594
|
+
return null;
|
|
1595
|
+
}
|
|
1596
|
+
CTLocalInApp.InAppType inAppType = null;
|
|
1597
|
+
String titleText = null, messageText = null, positiveBtnText = null, negativeBtnText = null,
|
|
1598
|
+
backgroundColor = null, btnBorderColor = null, titleTextColor = null, messageTextColor = null,
|
|
1599
|
+
btnTextColor = null, imageUrl = null, btnBackgroundColor = null, btnBorderRadius = null;
|
|
1600
|
+
boolean fallbackToSettings = false, followDeviceOrientation = false;
|
|
1601
|
+
|
|
1602
|
+
ReadableMapKeySetIterator iterator = readableMap.keySetIterator();
|
|
1603
|
+
while (iterator.hasNextKey()) {
|
|
1604
|
+
try {
|
|
1605
|
+
String configKey = iterator.nextKey();
|
|
1606
|
+
ReadableType readableType = readableMap.getType(configKey);
|
|
1607
|
+
if ("inAppType".equals(configKey) && readableType == ReadableType.String) {
|
|
1608
|
+
inAppType = inAppTypeFromString(readableMap.getString(configKey));
|
|
1609
|
+
}
|
|
1610
|
+
if ("titleText".equals(configKey) && readableType == ReadableType.String) {
|
|
1611
|
+
titleText = readableMap.getString(configKey);
|
|
1612
|
+
}
|
|
1613
|
+
if ("messageText".equals(configKey) && readableType == ReadableType.String) {
|
|
1614
|
+
messageText = readableMap.getString(configKey);
|
|
1615
|
+
}
|
|
1616
|
+
if ("followDeviceOrientation".equals(configKey) && readableType == ReadableType.Boolean) {
|
|
1617
|
+
followDeviceOrientation = readableMap.getBoolean(configKey);
|
|
1618
|
+
}
|
|
1619
|
+
if ("positiveBtnText".equals(configKey) && readableType == ReadableType.String) {
|
|
1620
|
+
positiveBtnText = readableMap.getString(configKey);
|
|
1621
|
+
}
|
|
1622
|
+
if ("negativeBtnText".equals(configKey) && readableType == ReadableType.String) {
|
|
1623
|
+
negativeBtnText = readableMap.getString(configKey);
|
|
1624
|
+
}
|
|
1625
|
+
if ("fallbackToSettings".equals(configKey) && readableType == ReadableType.Boolean) {
|
|
1626
|
+
fallbackToSettings = readableMap.getBoolean(configKey);
|
|
1627
|
+
}
|
|
1628
|
+
if ("backgroundColor".equals(configKey) && readableType == ReadableType.String) {
|
|
1629
|
+
backgroundColor = readableMap.getString(configKey);
|
|
1630
|
+
}
|
|
1631
|
+
if ("btnBorderColor".equals(configKey) && readableType == ReadableType.String) {
|
|
1632
|
+
btnBorderColor = readableMap.getString(configKey);
|
|
1633
|
+
}
|
|
1634
|
+
if ("titleTextColor".equals(configKey) && readableType == ReadableType.String) {
|
|
1635
|
+
titleTextColor = readableMap.getString(configKey);
|
|
1636
|
+
}
|
|
1637
|
+
if ("messageTextColor".equals(configKey) && readableType == ReadableType.String) {
|
|
1638
|
+
messageTextColor = readableMap.getString(configKey);
|
|
1639
|
+
}
|
|
1640
|
+
if ("btnTextColor".equals(configKey) && readableType == ReadableType.String) {
|
|
1641
|
+
btnTextColor = readableMap.getString(configKey);
|
|
1642
|
+
}
|
|
1643
|
+
if ("imageUrl".equals(configKey) && readableType == ReadableType.String) {
|
|
1644
|
+
imageUrl = readableMap.getString(configKey);
|
|
1645
|
+
}
|
|
1646
|
+
if ("btnBackgroundColor".equals(configKey) && readableType == ReadableType.String) {
|
|
1647
|
+
btnBackgroundColor = readableMap.getString(configKey);
|
|
1648
|
+
}
|
|
1649
|
+
if ("btnBorderRadius".equals(configKey) && readableType == ReadableType.String) {
|
|
1650
|
+
btnBorderRadius = readableMap.getString(configKey);
|
|
1651
|
+
}
|
|
1652
|
+
} catch (Throwable t) {
|
|
1653
|
+
Log.e(TAG, "invalid parameters in push primer config" + t.getLocalizedMessage());
|
|
1654
|
+
return null;
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1657
|
+
|
|
1658
|
+
//creates the builder instance of localInApp with all the required parameters
|
|
1659
|
+
CTLocalInApp.Builder.Builder6 builderWithRequiredParams = getLocalInAppBuilderWithRequiredParam(
|
|
1660
|
+
inAppType, titleText, messageText, followDeviceOrientation, positiveBtnText, negativeBtnText
|
|
1661
|
+
);
|
|
1662
|
+
|
|
1663
|
+
//adds the optional parameters to the builder instance
|
|
1664
|
+
if(backgroundColor != null) {
|
|
1665
|
+
builderWithRequiredParams.setBackgroundColor(backgroundColor);
|
|
1666
|
+
}
|
|
1667
|
+
if(btnBorderColor != null) {
|
|
1668
|
+
builderWithRequiredParams.setBtnBorderColor(btnBorderColor);
|
|
1669
|
+
}
|
|
1670
|
+
if(titleTextColor != null) {
|
|
1671
|
+
builderWithRequiredParams.setTitleTextColor(titleTextColor);
|
|
1672
|
+
}
|
|
1673
|
+
if(messageTextColor != null) {
|
|
1674
|
+
builderWithRequiredParams.setMessageTextColor(messageTextColor);
|
|
1675
|
+
}
|
|
1676
|
+
if(btnTextColor != null) {
|
|
1677
|
+
builderWithRequiredParams.setBtnTextColor(btnTextColor);
|
|
1678
|
+
}
|
|
1679
|
+
if(imageUrl != null) {
|
|
1680
|
+
builderWithRequiredParams.setImageUrl(imageUrl);
|
|
1681
|
+
}
|
|
1682
|
+
if(btnBackgroundColor != null) {
|
|
1683
|
+
builderWithRequiredParams.setBtnBackgroundColor(btnBackgroundColor);
|
|
1684
|
+
}
|
|
1685
|
+
if(btnBorderRadius != null) {
|
|
1686
|
+
builderWithRequiredParams.setBtnBorderRadius(btnBorderRadius);
|
|
1687
|
+
}
|
|
1688
|
+
builderWithRequiredParams.setFallbackToSettings(fallbackToSettings);
|
|
1689
|
+
|
|
1690
|
+
JSONObject localInAppConfig = builderWithRequiredParams.build();
|
|
1691
|
+
Log.i(TAG, "LocalInAppConfig for push primer prompt: " + localInAppConfig);
|
|
1692
|
+
return localInAppConfig;
|
|
1693
|
+
}
|
|
1694
|
+
|
|
1695
|
+
/**
|
|
1696
|
+
* Creates an instance of the {@link CTLocalInApp.Builder.Builder6} with the required parameters.
|
|
1697
|
+
* @return the {@link CTLocalInApp.Builder.Builder6} instance
|
|
1698
|
+
*/
|
|
1699
|
+
private CTLocalInApp.Builder.Builder6 getLocalInAppBuilderWithRequiredParam(CTLocalInApp.InAppType inAppType,
|
|
1700
|
+
String titleText,
|
|
1701
|
+
String messageText,
|
|
1702
|
+
boolean followDeviceOrientation,
|
|
1703
|
+
String positiveBtnText,
|
|
1704
|
+
String negativeBtnText) {
|
|
1705
|
+
//throws exception if any of the required parameter is missing
|
|
1706
|
+
if (inAppType == null || titleText == null || messageText == null || positiveBtnText == null
|
|
1707
|
+
|| negativeBtnText == null) {
|
|
1708
|
+
throw new IllegalArgumentException("mandatory parameters are missing in push primer config");
|
|
1709
|
+
}
|
|
1710
|
+
|
|
1711
|
+
CTLocalInApp.Builder builder = CTLocalInApp.builder();
|
|
1712
|
+
return builder.setInAppType(inAppType)
|
|
1713
|
+
.setTitleText(titleText)
|
|
1714
|
+
.setMessageText(messageText)
|
|
1715
|
+
.followDeviceOrientation(followDeviceOrientation)
|
|
1716
|
+
.setPositiveBtnText(positiveBtnText)
|
|
1717
|
+
.setNegativeBtnText(negativeBtnText);
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
//returns InAppType type from the given string
|
|
1721
|
+
private CTLocalInApp.InAppType inAppTypeFromString(String inAppType) {
|
|
1722
|
+
if(inAppType == null) {
|
|
1723
|
+
return null;
|
|
1724
|
+
}
|
|
1725
|
+
switch (inAppType) {
|
|
1726
|
+
case "half-interstitial":
|
|
1727
|
+
return CTLocalInApp.InAppType.HALF_INTERSTITIAL;
|
|
1728
|
+
case "alert":
|
|
1729
|
+
return CTLocalInApp.InAppType.ALERT;
|
|
1730
|
+
default:
|
|
1731
|
+
return null;
|
|
1732
|
+
}
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1507
1735
|
private CTInboxStyleConfig styleConfigFromReadableMap(ReadableMap styleConfig) {
|
|
1508
1736
|
if (styleConfig == null) {
|
|
1509
1737
|
return new CTInboxStyleConfig();
|
|
@@ -18,6 +18,6 @@ Pod::Spec.new do |s|
|
|
|
18
18
|
s.preserve_paths = 'LICENSE.md', 'README.md', 'package.json', 'index.js'
|
|
19
19
|
s.source_files = 'ios/CleverTapReact/*.{h,m}'
|
|
20
20
|
|
|
21
|
-
s.dependency 'CleverTap-iOS-SDK', '4.
|
|
21
|
+
s.dependency 'CleverTap-iOS-SDK', '4.2.0'
|
|
22
22
|
s.dependency 'React-Core'
|
|
23
23
|
end
|