Skip to content

Commit bcfa439

Browse files
5.0.0 (#89) (#90)
- Removed initialize method from native modules. In consequence Survicate SDK no longer initializes by itself. Added safety checks in Android native module (for existing methods) to prevent crashes in case where this change goes unnoticed. - Added setWorkspaceKey method. It is now possible to set workspace key in code without the need to provide it in AndroidManifest nor info.plist - Survicate SDK version bump to 5.0.0
1 parent 4f4306a commit bcfa439

File tree

10 files changed

+1175
-1143
lines changed

10 files changed

+1175
-1143
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ allprojects {
8686
import Survicate, {UserTrait} from '@survicate/react-native-survicate';
8787

8888
Survicate.initializeSdk();
89+
Survicate.setWorkspaceKey('WORKSPACE_KEY');
8990
Survicate.invokeEvent("eventName");
9091
const properties = {
9192
"property1": "value1",

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ repositories {
120120
dependencies {
121121
//noinspection GradleDynamicVersion
122122
implementation 'com.facebook.react:react-native:+' // From node_modules
123-
implementation ('com.survicate:survicate-sdk:4.4.0')
123+
implementation ('com.survicate:survicate-sdk:5.0.0')
124124
}
125125

126126
if (isNewArchitectureEnabled()) {

android/src/main/java/com/survicate/react/SurvicateModuleImpl.java

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class SurvicateModuleImpl extends SurvicateModule {
1919
private final SurvicateRNEventListener eventListener;
2020

2121
private int listenerCount = 0;
22+
private boolean isInitialized = false;
2223

2324
public SurvicateModuleImpl(ReactApplicationContext reactContext) {
2425
super(reactContext);
@@ -33,16 +34,25 @@ public String getName() {
3334

3435
@ReactMethod
3536
public void enterScreen(String screenName) {
37+
if (!isInitialized) {
38+
return;
39+
}
3640
Survicate.enterScreen(screenName);
3741
}
3842

3943
@ReactMethod
4044
public void leaveScreen(String screenName) {
45+
if (!isInitialized) {
46+
return;
47+
}
4148
Survicate.leaveScreen(screenName);
4249
}
4350

4451
@ReactMethod
4552
public void invokeEvent(String eventName, ReadableMap eventProperties) {
53+
if (!isInitialized) {
54+
return;
55+
}
4656
Map<String, String> properties = new HashMap<>();
4757
for (Map.Entry<String, Object> entry : eventProperties.toHashMap().entrySet()) {
4858
String key = entry.getKey();
@@ -55,26 +65,31 @@ public void invokeEvent(String eventName, ReadableMap eventProperties) {
5565

5666
@ReactMethod
5767
public void setUserId(String userId) {
68+
if (!isInitialized) {
69+
return;
70+
}
5871
Survicate.setUserTrait(new UserTrait.UserId(userId));
5972
}
6073

6174
@ReactMethod
6275
public void setUserTrait(String userTrait, String value) {
76+
if (!isInitialized) {
77+
return;
78+
}
6379
Survicate.setUserTrait(new UserTrait(userTrait, value));
6480
}
6581

66-
@ReactMethod
67-
public void initialize() {
68-
Survicate.init(reactContext);
69-
}
70-
7182
@ReactMethod
7283
public void initializeSdk() {
7384
Survicate.init(reactContext);
85+
isInitialized = true;
7486
}
7587

7688
@ReactMethod
7789
public void reset() {
90+
if (!isInitialized) {
91+
return;
92+
}
7893
Survicate.reset();
7994
}
8095

@@ -85,6 +100,9 @@ public void setWorkspaceKey(String workspaceKey) {
85100

86101
@ReactMethod
87102
public void addListener(String eventName) {
103+
if (!isInitialized) {
104+
return;
105+
}
88106
if (listenerCount == 0) {
89107
Survicate.addEventListener(eventListener);
90108
}
@@ -94,6 +112,9 @@ public void addListener(String eventName) {
94112

95113
@ReactMethod
96114
public void removeListeners(int count) {
115+
if (!isInitialized) {
116+
return;
117+
}
97118
listenerCount -= count;
98119

99120
if (listenerCount == 0) {

android/src/oldarch/java/com/survicate/react/SurvicateModule.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ public SurvicateModule(@NonNull ReactApplicationContext reactContext) {
1717
public abstract void invokeEvent(String eventName, ReadableMap eventProperties);
1818
public abstract void setUserId(String userId);
1919
public abstract void setUserTrait(String userTrait, String value);
20-
public abstract void initialize();
2120
public abstract void initializeSdk();
2221
public abstract void reset();
2322
public abstract void setWorkspaceKey(String workspaceKey);

ios/SurvicateBindings.mm

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,6 @@ - (dispatch_queue_t)methodQueue
3838
[[SurvicateSdk shared] setUserTraitWithName:traitName value:traitValue];
3939
}
4040

41-
RCT_EXPORT_METHOD(initialize)
42-
{
43-
[[SurvicateSdk shared] initialize];
44-
}
45-
4641
RCT_EXPORT_METHOD(initializeSdk)
4742
{
4843
[[SurvicateSdk shared] initialize];

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@survicate/react-native-survicate",
33
"title": "React Native Survicate Bindings",
4-
"version": "4.4.0",
4+
"version": "5.0.0",
55
"description": "React Native bindings for Survicate Mobile SDK",
66
"main": "lib/commonjs/index.js",
77
"module": "lib/module/index.js",

react-native-survicate.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Pod::Spec.new do |s|
2121
s.requires_arc = true
2222

2323
s.dependency "React"
24-
s.dependency "Survicate", "4.4.0"
24+
s.dependency "Survicate", "5.0.0"
2525
# ...
2626
# s.dependency "..."
2727

src/NativeSurvicateModule.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import type { TurboModule } from "react-native";
22
import { TurboModuleRegistry } from "react-native";
33

44
export interface Spec extends TurboModule {
5-
initialize(): void;
65
initializeSdk(): void;
76
invokeEvent(eventName: string, eventProperties: Object): void;
87
enterScreen(screenName: string): void;

src/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ export class SurvicateIntegrations {}
1414
class Survicate {
1515
static integrations = new SurvicateIntegrations();
1616

17+
static setWorkspaceKey(workspaceKey: string): void {
18+
survicate.setWorkspaceKey(workspaceKey);
19+
}
20+
1721
static initializeSdk(): void {
1822
survicate.initializeSdk();
1923
}

0 commit comments

Comments
 (0)