Skip to content

Commit de81dc6

Browse files
authored
Merge pull request #351 from qonversion/noCodes
2 parents a5789cd + 78527ed commit de81dc6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+14880
-7175
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,8 @@ buck-out/
4242
*.keystore
4343

4444
# vscode
45-
.vscode
45+
.vscode
46+
47+
# CocoaPods
48+
Pods/
49+
Podfile.lock

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ repositories {
6565
dependencies {
6666
//noinspection GradleDynamicVersion
6767
implementation 'com.facebook.react:react-native:+' // From node_modules
68-
implementation "io.qonversion.sandwich:sandwich:5.2.0"
68+
implementation "io.qonversion:sandwich:6.0.6"
6969
}
7070

7171
afterEvaluate { project ->
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
#Wed Jun 18 14:18:27 MSK 2025
12
distributionBase=GRADLE_USER_HOME
23
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
45
zipStoreBase=GRADLE_USER_HOME
56
zipStorePath=wrapper/dists

android/src/main/java/com/reactlibrary/AutomationsModule.java

Lines changed: 0 additions & 137 deletions
This file was deleted.
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
package com.reactlibrary;
2+
3+
import androidx.annotation.NonNull;
4+
import androidx.annotation.Nullable;
5+
6+
import com.facebook.react.bridge.Promise;
7+
import com.facebook.react.bridge.ReactApplicationContext;
8+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
9+
import com.facebook.react.bridge.ReactMethod;
10+
import com.facebook.react.bridge.ReadableMap;
11+
import com.facebook.react.bridge.WritableMap;
12+
import com.facebook.react.bridge.Arguments;
13+
import com.facebook.react.modules.core.DeviceEventManagerModule;
14+
import com.facebook.react.module.annotations.ReactModule;
15+
import io.qonversion.sandwich.NoCodesSandwich;
16+
import io.qonversion.sandwich.NoCodesEventListener;
17+
18+
import java.util.HashMap;
19+
import java.util.Map;
20+
21+
public class NoCodesModule extends ReactContextBaseJavaModule {
22+
private final ReactApplicationContext reactContext;
23+
private final NoCodesSandwich noCodesSandwich;
24+
private final NoCodesEventListener noCodesEventListener;
25+
private DeviceEventManagerModule.RCTDeviceEventEmitter eventEmitter = null;
26+
27+
public NoCodesModule(ReactApplicationContext reactContext) {
28+
super(reactContext);
29+
this.reactContext = reactContext;
30+
this.noCodesSandwich = new NoCodesSandwich();
31+
32+
this.noCodesEventListener = (event, payload) -> {
33+
WritableMap payloadMap = null;
34+
if (payload != null) {
35+
payloadMap = EntitiesConverter.convertMapToWritableMap(payload);
36+
}
37+
38+
sendEvent(event.getKey(), payloadMap);
39+
};
40+
}
41+
42+
@Override
43+
public void initialize() {
44+
super.initialize();
45+
46+
eventEmitter = getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class);
47+
}
48+
49+
@NonNull
50+
@Override
51+
public String getName() {
52+
return "RNNoCodes";
53+
}
54+
55+
@ReactMethod
56+
public void initialize(String projectKey) {
57+
noCodesSandwich.initialize(reactContext, projectKey, null, null, null);
58+
noCodesSandwich.setDelegate(noCodesEventListener);
59+
noCodesSandwich.setScreenCustomizationDelegate();
60+
}
61+
62+
@ReactMethod
63+
public void setScreenPresentationConfig(ReadableMap configData, String contextKey, final Promise promise) {
64+
try {
65+
Map<String, Object> config = EntitiesConverter.convertReadableMapToHashMap(configData);
66+
noCodesSandwich.setScreenPresentationConfig(config, contextKey);
67+
Utils.resolveWithSuccess(promise);
68+
} catch (Exception e) {
69+
promise.reject(e);
70+
}
71+
}
72+
73+
@ReactMethod
74+
public void showScreen(String contextKey, final Promise promise) {
75+
try {
76+
noCodesSandwich.showScreen(contextKey);
77+
Utils.resolveWithSuccess(promise);
78+
} catch (Exception e) {
79+
promise.reject(e);
80+
}
81+
}
82+
83+
@ReactMethod
84+
public void close(final Promise promise) {
85+
try {
86+
noCodesSandwich.close();
87+
Utils.resolveWithSuccess(promise);
88+
} catch (Exception e) {
89+
promise.reject(e);
90+
}
91+
}
92+
93+
private void sendEvent(String eventName, WritableMap params) {
94+
if (eventEmitter != null) {
95+
eventEmitter.emit(eventName, params);
96+
}
97+
}
98+
}

android/src/main/java/com/reactlibrary/QonversionModule.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,9 +223,8 @@ public void isFallbackFileAccessible(final Promise promise) {
223223

224224
@Override
225225
public void onEntitlementsUpdated(@NonNull Map<String, ?> map) {
226-
final WritableMap payload = EntitiesConverter.convertMapToWritableMap(map);
227226
if (eventEmitter != null) {
228-
eventEmitter.emit(EVENT_ENTITLEMENTS_UPDATED, payload);
227+
eventEmitter.emit(EVENT_ENTITLEMENTS_UPDATED, EntitiesConverter.convertMapToWritableMap(map));
229228
}
230229
}
231230
}

android/src/main/java/com/reactlibrary/QonversionPackage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ public class QonversionPackage implements ReactPackage {
1616
@Override
1717
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
1818
return Arrays.asList(
19-
new QonversionModule(reactContext),
20-
new AutomationsModule(reactContext)
19+
new NoCodesModule(reactContext),
20+
new QonversionModule(reactContext)
2121
);
2222
}
2323

android/src/main/java/com/reactlibrary/Utils.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import androidx.annotation.Nullable;
55

66
import java.util.Map;
7+
8+
import com.facebook.react.bridge.Arguments;
79
import com.facebook.react.bridge.Promise;
810
import com.facebook.react.bridge.WritableMap;
911

@@ -26,6 +28,12 @@ public void onError(@NonNull SandwichError error) {
2628
};
2729
}
2830

31+
static void resolveWithSuccess(final Promise promise) {
32+
WritableMap response = Arguments.createMap();
33+
response.putBoolean("success", true);
34+
promise.resolve(response);
35+
}
36+
2937
static void rejectWithError(@NonNull SandwichError sandwichError, final Promise promise) {
3038
rejectWithError(sandwichError, promise, null);
3139
}

0 commit comments

Comments
 (0)