react-native-gleapsdk 6.4.4 → 6.4.5-beta.1
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/android/build.gradle +1 -1
- package/android/src/main/java/com/reactnativegleapsdk/GleapsdkModule.java +232 -198
- package/ios/Gleapsdk.m +14 -0
- package/ios/Gleapsdk.xcodeproj/project.xcworkspace/xcuserdata/lukasboehler.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/package.json +1 -1
- package/react-native-gleapsdk.podspec +1 -1
- package/src/index.tsx +5 -0
package/android/build.gradle
CHANGED
|
@@ -56,5 +56,5 @@ dependencies {
|
|
|
56
56
|
//noinspection GradleDynamicVersion
|
|
57
57
|
implementation "com.facebook.react:react-native:+" // From node_modules
|
|
58
58
|
// https://mvnrepository.com/artifact/io.gleap/gleap-android-sdk
|
|
59
|
-
implementation group: 'io.gleap', name: 'gleap-android-sdk', version: '6.4.
|
|
59
|
+
implementation group: 'io.gleap', name: 'gleap-android-sdk', version: '6.4.11-hotfix'
|
|
60
60
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
package com.reactnativegleapsdk;
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
import android.app.Activity;
|
|
5
4
|
import android.os.Build;
|
|
6
5
|
import android.os.Handler;
|
|
@@ -36,6 +35,7 @@ import io.gleap.CustomActionCallback;
|
|
|
36
35
|
import io.gleap.FeedbackSentCallback;
|
|
37
36
|
import io.gleap.FeedbackSentWithDataCallback;
|
|
38
37
|
import io.gleap.FeedbackWillBeSentCallback;
|
|
38
|
+
import io.gleap.GetActivityCallback;
|
|
39
39
|
import io.gleap.Gleap;
|
|
40
40
|
import io.gleap.GleapActivationMethod;
|
|
41
41
|
import io.gleap.GleapUserProperties;
|
|
@@ -49,6 +49,12 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
49
49
|
|
|
50
50
|
public GleapsdkModule(ReactApplicationContext reactContext) {
|
|
51
51
|
super(reactContext);
|
|
52
|
+
Gleap.getInstance().setGetActivityCallback(new GetActivityCallback() {
|
|
53
|
+
@Override
|
|
54
|
+
public Activity getActivity() {
|
|
55
|
+
return reactContext.getCurrentActivity();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
52
58
|
}
|
|
53
59
|
|
|
54
60
|
@Override
|
|
@@ -65,85 +71,86 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
65
71
|
@ReactMethod
|
|
66
72
|
public void initialize(String sdkKey) {
|
|
67
73
|
getCurrentActivity().runOnUiThread(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
new Runnable() {
|
|
75
|
+
@Override
|
|
76
|
+
public void run() {
|
|
77
|
+
try {
|
|
78
|
+
Activity activity = getReactApplicationContext()
|
|
79
|
+
.getCurrentActivity();
|
|
80
|
+
if (activity != null && !invalidated) {
|
|
81
|
+
Gleap.getInstance().setApplicationType(APPLICATIONTYPE.REACTNATIVE);
|
|
82
|
+
Gleap.getInstance().setFeedbackWillBeSentCallback(new FeedbackWillBeSentCallback() {
|
|
83
|
+
@Override
|
|
84
|
+
public void flowInvoced() {
|
|
85
|
+
if (!invalidated) {
|
|
86
|
+
getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
87
|
+
.emit("feedbackWillBeSent", null);
|
|
88
|
+
}
|
|
81
89
|
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
Gleap.initialize(sdkKey, activity.getApplication());
|
|
93
|
+
Gleap.getInstance().setConfigLoadedCallback(new ConfigLoadedCallback() {
|
|
94
|
+
@Override
|
|
95
|
+
public void configLoaded(JSONObject jsonObject) {
|
|
96
|
+
if (!invalidated) {
|
|
97
|
+
getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
98
|
+
.emit("configLoaded", jsonObject.toString());
|
|
99
|
+
}
|
|
91
100
|
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
Gleap.getInstance().registerCustomAction(new CustomActionCallback() {
|
|
104
|
+
@Override
|
|
105
|
+
public void invoke(String message) {
|
|
106
|
+
JSONObject obj = new JSONObject();
|
|
107
|
+
try {
|
|
108
|
+
obj.put("name", message);
|
|
109
|
+
} catch (JSONException e) {
|
|
110
|
+
e.printStackTrace();
|
|
111
|
+
}
|
|
112
|
+
if (!invalidated) {
|
|
113
|
+
getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
114
|
+
.emit("customActionTriggered", obj.toString());
|
|
115
|
+
}
|
|
103
116
|
}
|
|
104
|
-
|
|
105
|
-
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
Gleap.getInstance().setFeedbackSentWithDataCallback(new FeedbackSentWithDataCallback() {
|
|
120
|
+
@Override
|
|
121
|
+
public void close(JSONObject jsonObject) {
|
|
122
|
+
getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
123
|
+
.emit("feedbackSent", jsonObject.toString());
|
|
124
|
+
new java.util.Timer().schedule(
|
|
125
|
+
new java.util.TimerTask() {
|
|
126
|
+
@Override
|
|
127
|
+
public void run() {
|
|
128
|
+
showDevMenu();
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
500);
|
|
106
132
|
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
Gleap.getInstance().setFeedbackSentCallback(new FeedbackSentCallback() {
|
|
127
|
-
@Override
|
|
128
|
-
public void close() {
|
|
129
|
-
new java.util.Timer().schedule(
|
|
130
|
-
new java.util.TimerTask() {
|
|
131
|
-
@Override
|
|
132
|
-
public void run() {
|
|
133
|
-
showDevMenu();
|
|
134
|
-
}
|
|
135
|
-
},
|
|
136
|
-
500
|
|
137
|
-
);
|
|
138
|
-
}
|
|
139
|
-
});
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
Gleap.getInstance().setFeedbackSentCallback(new FeedbackSentCallback() {
|
|
136
|
+
@Override
|
|
137
|
+
public void close() {
|
|
138
|
+
new java.util.Timer().schedule(
|
|
139
|
+
new java.util.TimerTask() {
|
|
140
|
+
@Override
|
|
141
|
+
public void run() {
|
|
142
|
+
showDevMenu();
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
500);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
} catch (Exception ex) {
|
|
150
|
+
System.out.println(ex);
|
|
140
151
|
}
|
|
141
|
-
} catch (Exception ex) {
|
|
142
|
-
System.out.println(ex);
|
|
143
152
|
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
);
|
|
153
|
+
});
|
|
147
154
|
}
|
|
148
155
|
|
|
149
156
|
@ReactMethod
|
|
@@ -162,34 +169,33 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
162
169
|
@ReactMethod
|
|
163
170
|
public void open() {
|
|
164
171
|
getCurrentActivity().runOnUiThread(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
187
|
-
})
|
|
188
|
-
|
|
189
|
-
|
|
172
|
+
new Runnable() {
|
|
173
|
+
@Override
|
|
174
|
+
public void run() {
|
|
175
|
+
try {
|
|
176
|
+
Gleap.getInstance().startFeedbackFlow();
|
|
177
|
+
Gleap.getInstance().setFeedbackSentCallback(new FeedbackSentCallback() {
|
|
178
|
+
@Override
|
|
179
|
+
public void close() {
|
|
180
|
+
new java.util.Timer().schedule(
|
|
181
|
+
new java.util.TimerTask() {
|
|
182
|
+
@Override
|
|
183
|
+
public void run() {
|
|
184
|
+
if (!isSilentBugReport) {
|
|
185
|
+
showDevMenu();
|
|
186
|
+
} else {
|
|
187
|
+
isSilentBugReport = false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
500);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
} catch (Exception e) {
|
|
195
|
+
System.out.println(e);
|
|
196
|
+
}
|
|
190
197
|
}
|
|
191
|
-
}
|
|
192
|
-
});
|
|
198
|
+
});
|
|
193
199
|
}
|
|
194
200
|
|
|
195
201
|
/**
|
|
@@ -198,34 +204,33 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
198
204
|
@ReactMethod
|
|
199
205
|
public void startFeedbackFlow(String feedbackFlow) {
|
|
200
206
|
getCurrentActivity().runOnUiThread(
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
}
|
|
223
|
-
})
|
|
224
|
-
|
|
225
|
-
|
|
207
|
+
new Runnable() {
|
|
208
|
+
@Override
|
|
209
|
+
public void run() {
|
|
210
|
+
try {
|
|
211
|
+
Gleap.getInstance().startFeedbackFlow(feedbackFlow);
|
|
212
|
+
Gleap.getInstance().setFeedbackSentCallback(new FeedbackSentCallback() {
|
|
213
|
+
@Override
|
|
214
|
+
public void close() {
|
|
215
|
+
new java.util.Timer().schedule(
|
|
216
|
+
new java.util.TimerTask() {
|
|
217
|
+
@Override
|
|
218
|
+
public void run() {
|
|
219
|
+
if (!isSilentBugReport) {
|
|
220
|
+
showDevMenu();
|
|
221
|
+
} else {
|
|
222
|
+
isSilentBugReport = false;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
500);
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
} catch (Exception e) {
|
|
230
|
+
System.out.println(e);
|
|
231
|
+
}
|
|
226
232
|
}
|
|
227
|
-
}
|
|
228
|
-
});
|
|
233
|
+
});
|
|
229
234
|
}
|
|
230
235
|
|
|
231
236
|
/**
|
|
@@ -233,24 +238,48 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
233
238
|
*/
|
|
234
239
|
@ReactMethod
|
|
235
240
|
public void sendSilentBugReport(
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
) {
|
|
241
|
+
String description,
|
|
242
|
+
String priority) {
|
|
239
243
|
getCurrentActivity().runOnUiThread(
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
244
|
+
new Runnable() {
|
|
245
|
+
@Override
|
|
246
|
+
public void run() {
|
|
247
|
+
isSilentBugReport = true;
|
|
248
|
+
Gleap.SEVERITY severity = Gleap.SEVERITY.LOW;
|
|
249
|
+
if (priority == "MEDIUM") {
|
|
250
|
+
severity = Gleap.SEVERITY.MEDIUM;
|
|
251
|
+
}
|
|
252
|
+
if (priority == "HIGH") {
|
|
253
|
+
severity = Gleap.SEVERITY.HIGH;
|
|
254
|
+
}
|
|
255
|
+
Gleap.getInstance().sendSilentBugReport(description, severity);
|
|
247
256
|
}
|
|
248
|
-
|
|
249
|
-
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Manually start a silent bug reporting workflow.
|
|
262
|
+
*/
|
|
263
|
+
@ReactMethod
|
|
264
|
+
public void sendSilentBugReportWithType(
|
|
265
|
+
String description,
|
|
266
|
+
String priority,
|
|
267
|
+
String type) {
|
|
268
|
+
getCurrentActivity().runOnUiThread(
|
|
269
|
+
new Runnable() {
|
|
270
|
+
@Override
|
|
271
|
+
public void run() {
|
|
272
|
+
isSilentBugReport = true;
|
|
273
|
+
Gleap.SEVERITY severity = Gleap.SEVERITY.LOW;
|
|
274
|
+
if (priority == "MEDIUM") {
|
|
275
|
+
severity = Gleap.SEVERITY.MEDIUM;
|
|
276
|
+
}
|
|
277
|
+
if (priority == "HIGH") {
|
|
278
|
+
severity = Gleap.SEVERITY.HIGH;
|
|
279
|
+
}
|
|
280
|
+
Gleap.getInstance().sendSilentBugReport(description, severity, type);
|
|
250
281
|
}
|
|
251
|
-
|
|
252
|
-
}
|
|
253
|
-
});
|
|
282
|
+
});
|
|
254
283
|
}
|
|
255
284
|
|
|
256
285
|
@ReactMethod
|
|
@@ -259,32 +288,33 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
259
288
|
}
|
|
260
289
|
|
|
261
290
|
@ReactMethod
|
|
262
|
-
public void enableDebugConsoleLog() {
|
|
291
|
+
public void enableDebugConsoleLog() {
|
|
292
|
+
}
|
|
263
293
|
|
|
264
294
|
@ReactMethod
|
|
265
295
|
public void identify(String userid, ReadableMap data) {
|
|
266
296
|
getCurrentActivity().runOnUiThread(
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
297
|
+
new Runnable() {
|
|
298
|
+
@Override
|
|
299
|
+
public void run() {
|
|
300
|
+
JSONObject jsonObject = null;
|
|
301
|
+
String name = "";
|
|
302
|
+
String email = "";
|
|
303
|
+
try {
|
|
304
|
+
jsonObject = GleapUtil.convertMapToJson(data);
|
|
305
|
+
if (jsonObject.has("name")) {
|
|
306
|
+
name = jsonObject.getString("name");
|
|
307
|
+
}
|
|
308
|
+
if (jsonObject.has("email")) {
|
|
309
|
+
email = jsonObject.getString("email");
|
|
310
|
+
}
|
|
311
|
+
} catch (JSONException e) {
|
|
312
|
+
e.printStackTrace();
|
|
280
313
|
}
|
|
281
|
-
|
|
282
|
-
|
|
314
|
+
GleapUserProperties gleapUserSession = new GleapUserProperties(name, email);
|
|
315
|
+
Gleap.getInstance().identifyUser(userid, gleapUserSession);
|
|
283
316
|
}
|
|
284
|
-
|
|
285
|
-
Gleap.getInstance().identifyUser(userid, gleapUserSession);
|
|
286
|
-
}
|
|
287
|
-
});
|
|
317
|
+
});
|
|
288
318
|
}
|
|
289
319
|
|
|
290
320
|
@ReactMethod
|
|
@@ -293,7 +323,8 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
293
323
|
}
|
|
294
324
|
|
|
295
325
|
/**
|
|
296
|
-
* Attaches custom data, which can be viewed in the BugBattle dashboard. New
|
|
326
|
+
* Attaches custom data, which can be viewed in the BugBattle dashboard. New
|
|
327
|
+
* data will be merged with existing custom data.
|
|
297
328
|
*
|
|
298
329
|
* @param customData The data to attach to a bug report.
|
|
299
330
|
* @author BugBattle
|
|
@@ -338,7 +369,8 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
338
369
|
}
|
|
339
370
|
|
|
340
371
|
/**
|
|
341
|
-
* Attaches custom data, which can be viewed in the Gleap dashboard. New data
|
|
372
|
+
* Attaches custom data, which can be viewed in the Gleap dashboard. New data
|
|
373
|
+
* will be merged with existing custom data.
|
|
342
374
|
*
|
|
343
375
|
* @param customData The data to attach to a bug report.
|
|
344
376
|
* @author Gleap
|
|
@@ -365,7 +397,6 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
365
397
|
Gleap.getInstance().setCustomData(key, value);
|
|
366
398
|
}
|
|
367
399
|
|
|
368
|
-
|
|
369
400
|
/**
|
|
370
401
|
* Removes one key from existing custom data.
|
|
371
402
|
*
|
|
@@ -377,7 +408,6 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
377
408
|
Gleap.getInstance().removeCustomDataForKey(key);
|
|
378
409
|
}
|
|
379
410
|
|
|
380
|
-
|
|
381
411
|
/**
|
|
382
412
|
* Sets an array of activation methods.
|
|
383
413
|
*
|
|
@@ -395,10 +425,10 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
395
425
|
internalActivationMethods.add(GleapActivationMethod.SCREENSHOT);
|
|
396
426
|
}
|
|
397
427
|
}
|
|
398
|
-
Gleap.getInstance().setActivationMethods(
|
|
428
|
+
Gleap.getInstance().setActivationMethods(
|
|
429
|
+
internalActivationMethods.toArray(new GleapActivationMethod[internalActivationMethods.size()]));
|
|
399
430
|
}
|
|
400
431
|
|
|
401
|
-
|
|
402
432
|
/**
|
|
403
433
|
* Clears all custom data.
|
|
404
434
|
*/
|
|
@@ -423,7 +453,9 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
423
453
|
if (currentRequest.has("request")) {
|
|
424
454
|
request = (JSONObject) currentRequest.get("request");
|
|
425
455
|
}
|
|
426
|
-
Gleap.getInstance().logNetwork(currentRequest.getString("url"),
|
|
456
|
+
Gleap.getInstance().logNetwork(currentRequest.getString("url"),
|
|
457
|
+
RequestType.valueOf(currentRequest.getString("type")), response.getInt("status"),
|
|
458
|
+
currentRequest.getInt("duration"), request, response);
|
|
427
459
|
}
|
|
428
460
|
|
|
429
461
|
} catch (Exception ex) {
|
|
@@ -460,7 +492,6 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
460
492
|
}
|
|
461
493
|
}
|
|
462
494
|
|
|
463
|
-
|
|
464
495
|
@RequiresApi(api = Build.VERSION_CODES.O)
|
|
465
496
|
@ReactMethod
|
|
466
497
|
/**
|
|
@@ -541,7 +572,7 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
541
572
|
|
|
542
573
|
private boolean checkAllowedEndings(String fileName) {
|
|
543
574
|
String[] fileType = fileName.split("\\.");
|
|
544
|
-
String[] allowedTypes = {"jpeg", "svg", "png", "mp4", "webp", "xml", "plain", "xml", "json"};
|
|
575
|
+
String[] allowedTypes = { "jpeg", "svg", "png", "mp4", "webp", "xml", "plain", "xml", "json" };
|
|
545
576
|
if (fileType.length <= 1) {
|
|
546
577
|
return false;
|
|
547
578
|
}
|
|
@@ -560,40 +591,43 @@ public class GleapsdkModule extends ReactContextBaseJavaModule implements Lifecy
|
|
|
560
591
|
*/
|
|
561
592
|
private void showDevMenu() {
|
|
562
593
|
getCurrentActivity().runOnUiThread(
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
594
|
+
new Runnable() {
|
|
595
|
+
@Override
|
|
596
|
+
public void run() {
|
|
597
|
+
final ReactApplication application = (ReactApplication) getReactApplicationContext()
|
|
598
|
+
.getCurrentActivity()
|
|
599
|
+
.getApplication();
|
|
600
|
+
Handler mainHandler = new Handler(GleapsdkModule.this.getReactApplicationContext().getMainLooper());
|
|
601
|
+
Runnable myRunnable = new Runnable() {
|
|
602
|
+
@Override
|
|
603
|
+
public void run() {
|
|
604
|
+
try {
|
|
605
|
+
application
|
|
606
|
+
.getReactNativeHost()
|
|
607
|
+
.getReactInstanceManager()
|
|
608
|
+
.getDevSupportManager()
|
|
609
|
+
.showDevOptionsDialog();
|
|
610
|
+
} catch (Exception e) {
|
|
611
|
+
e.printStackTrace();
|
|
612
|
+
}
|
|
581
613
|
}
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
}
|
|
586
|
-
});
|
|
614
|
+
};
|
|
615
|
+
mainHandler.post(myRunnable);
|
|
616
|
+
}
|
|
617
|
+
});
|
|
587
618
|
}
|
|
588
619
|
|
|
589
620
|
@Override
|
|
590
|
-
public void onHostResume() {
|
|
621
|
+
public void onHostResume() {
|
|
622
|
+
}
|
|
591
623
|
|
|
592
624
|
@Override
|
|
593
|
-
public void onHostPause() {
|
|
625
|
+
public void onHostPause() {
|
|
626
|
+
}
|
|
594
627
|
|
|
595
628
|
@Override
|
|
596
|
-
public void onHostDestroy() {
|
|
629
|
+
public void onHostDestroy() {
|
|
630
|
+
}
|
|
597
631
|
|
|
598
632
|
@Override
|
|
599
633
|
public void onCatalystInstanceDestroy() {
|
package/ios/Gleapsdk.m
CHANGED
|
@@ -140,6 +140,20 @@ RCT_EXPORT_METHOD(sendSilentBugReport:(NSString *)description andSeverity:(NSStr
|
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
+
RCT_EXPORT_METHOD(sendSilentBugReportWithType:(NSString *)description andSeverity:(NSString *)priority andType:(NSString *)type)
|
|
144
|
+
{
|
|
145
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
146
|
+
GleapBugSeverity prio = MEDIUM;
|
|
147
|
+
if ([priority isEqualToString: @"LOW"]) {
|
|
148
|
+
prio = LOW;
|
|
149
|
+
}
|
|
150
|
+
if ([priority isEqualToString: @"HIGH"]) {
|
|
151
|
+
prio = HIGH;
|
|
152
|
+
}
|
|
153
|
+
[Gleap sendSilentBugReportWith: description andSeverity: prio andType: type];
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
|
|
143
157
|
RCT_EXPORT_METHOD(attachNetworkLog:(NSArray *)networkLogs)
|
|
144
158
|
{
|
|
145
159
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["LINKING_ERROR","Platform","select","ios","default","GleapSdk","NativeModules","Gleapsdk","Proxy","get","Error","touched","networkLogger","GleapNetworkIntercepter","startNetworkLogging","start","stopNetworkLogging","setStopped","callbacks","registerListener","eventType","callback","push","registerCustomAction","customActionCallback","notifyCallback","data","length","i","gleapEmitter","NativeEventEmitter","addListener","config","configJSON","Object","JSON","parse","enableNetworkLogs","exp","requests","getRequests","OS","attachNetworkLog","stringify","dataJSON","isJsonString","str","e","name","removeAllAttachments"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,MAAMA,aAAa,GAChB,gFAAD,GACAC,sBAASC,MAAT,CAAgB;AAAEC,EAAAA,GAAG,EAAE,gCAAP;AAAyCC,EAAAA,OAAO,EAAE;AAAlD,CAAhB,CADA,GAEA,sDAFA,GAGA,6CAJF;
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["LINKING_ERROR","Platform","select","ios","default","GleapSdk","NativeModules","Gleapsdk","Proxy","get","Error","touched","networkLogger","GleapNetworkIntercepter","startNetworkLogging","start","stopNetworkLogging","setStopped","callbacks","registerListener","eventType","callback","push","registerCustomAction","customActionCallback","notifyCallback","data","length","i","gleapEmitter","NativeEventEmitter","addListener","config","configJSON","Object","JSON","parse","enableNetworkLogs","exp","requests","getRequests","OS","attachNetworkLog","stringify","dataJSON","isJsonString","str","e","name","removeAllAttachments"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } from 'react-native';\nimport GleapNetworkIntercepter from './networklogger';\n\nconst LINKING_ERROR =\n `The package 'react-native-gleapsdk' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nexport type GleapUserProperty = {\n email?: string;\n name?: string;\n};\n\ntype GleapActivationMethod = 'SHAKE' | 'SCREENSHOT';\n\ntype GleapSdkType = {\n initialize(token: string): void;\n open(): void;\n startFeedbackFlow(feedbackFlow: string): void;\n sendSilentBugReport(\n description: string,\n severity: 'LOW' | 'MEDIUM' | 'HIGH'\n ): void;\n sendSilentBugReportWithType(\n description: string,\n severity: 'LOW' | 'MEDIUM' | 'HIGH',\n type: string\n ): void;\n identify(userId: string, userProperties: GleapUserProperty): void;\n clearIdentity(): void;\n setApiUrl(apiUrl: string): void;\n setWidgetUrl(widgetUrl: string): void;\n attachCustomData(customData: any): void;\n setCustomData(key: string, value: string): void;\n removeCustomDataForKey(key: string): void;\n clearCustomData(): void;\n registerCustomAction(\n customActionCallback: (data: { name: string }) => void\n ): void;\n registerListener(eventType: string, callback: (data?: any) => void): void;\n setLanguage(language: string): void;\n logEvent(name: string, data: any): void;\n addAttachment(base64file: string, fileName: string): void;\n removeAllAttachments(): void;\n startNetworkLogging(): void;\n stopNetworkLogging(): void;\n enableDebugConsoleLog(): void;\n setActivationMethods(activationMethods: GleapActivationMethod[]): void;\n};\n\nconst GleapSdk = NativeModules.Gleapsdk\n ? NativeModules.Gleapsdk\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nif (GleapSdk && !GleapSdk.touched) {\n const networkLogger = new GleapNetworkIntercepter();\n\n GleapSdk.startNetworkLogging = () => {\n networkLogger.start();\n };\n\n GleapSdk.stopNetworkLogging = () => {\n networkLogger.setStopped(true);\n };\n\n var callbacks: any = {};\n\n GleapSdk.registerListener = (eventType: string, callback: any) => {\n if (!callbacks[eventType]) {\n callbacks[eventType] = [];\n }\n callbacks[eventType].push(callback);\n };\n\n GleapSdk.registerCustomAction = (customActionCallback: any) => {\n GleapSdk.registerListener('customActionTriggered', customActionCallback);\n };\n\n const notifyCallback = function (eventType: string, data?: any) {\n if (callbacks && callbacks[eventType] && callbacks[eventType].length > 0) {\n for (var i = 0; i < callbacks[eventType].length; i++) {\n if (callbacks[eventType][i]) {\n callbacks[eventType][i](data);\n }\n }\n }\n };\n\n const gleapEmitter = new NativeEventEmitter(NativeModules.Gleapsdk);\n\n gleapEmitter.addListener('configLoaded', (config: any) => {\n try {\n const configJSON = config instanceof Object ? config : JSON.parse(config);\n if (configJSON.enableNetworkLogs) {\n GleapSdk.startNetworkLogging();\n }\n notifyCallback('configLoaded', configJSON);\n } catch (exp) {}\n });\n\n gleapEmitter.addListener('feedbackWillBeSent', () => {\n // Push the network log to the native SDK.\n const requests = networkLogger.getRequests();\n if (Platform.OS === 'android') {\n GleapSdk.attachNetworkLog(JSON.stringify(requests));\n } else {\n GleapSdk.attachNetworkLog(JSON.parse(JSON.stringify(requests)));\n }\n\n notifyCallback('feedbackWillBeSent');\n });\n\n gleapEmitter.addListener('feedbackSent', (data) => {\n try {\n const dataJSON = data instanceof Object ? data : JSON.parse(data);\n notifyCallback('feedbackSent', dataJSON);\n } catch (exp) {}\n });\n\n gleapEmitter.addListener('feedbackSendingFailed', () => {\n notifyCallback('feedbackSendingFailed');\n });\n\n function isJsonString(str: string) {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n gleapEmitter.addListener('customActionTriggered', (data: any) => {\n try {\n if (isJsonString(data)) {\n data = JSON.parse(data);\n }\n const { name } = data;\n if (name) {\n notifyCallback('customActionTriggered', {\n name,\n });\n }\n } catch (exp) {}\n });\n\n GleapSdk.removeAllAttachments();\n\n GleapSdk.touched = true;\n}\n\nexport default GleapSdk as GleapSdkType;\n"]}
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["NativeModules","NativeEventEmitter","Platform","GleapNetworkIntercepter","LINKING_ERROR","select","ios","default","GleapSdk","Gleapsdk","Proxy","get","Error","touched","networkLogger","startNetworkLogging","start","stopNetworkLogging","setStopped","callbacks","registerListener","eventType","callback","push","registerCustomAction","customActionCallback","notifyCallback","data","length","i","gleapEmitter","addListener","config","configJSON","Object","JSON","parse","enableNetworkLogs","exp","requests","getRequests","OS","attachNetworkLog","stringify","dataJSON","isJsonString","str","e","name","removeAllAttachments"],"mappings":"AAAA,SAASA,aAAT,EAAwBC,kBAAxB,EAA4CC,QAA5C,QAA4D,cAA5D;AACA,OAAOC,uBAAP,MAAoC,iBAApC;AAEA,MAAMC,aAAa,GAChB,gFAAD,GACAF,QAAQ,CAACG,MAAT,CAAgB;AAAEC,EAAAA,GAAG,EAAE,gCAAP;AAAyCC,EAAAA,OAAO,EAAE;AAAlD,CAAhB,CADA,GAEA,sDAFA,GAGA,6CAJF;
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["NativeModules","NativeEventEmitter","Platform","GleapNetworkIntercepter","LINKING_ERROR","select","ios","default","GleapSdk","Gleapsdk","Proxy","get","Error","touched","networkLogger","startNetworkLogging","start","stopNetworkLogging","setStopped","callbacks","registerListener","eventType","callback","push","registerCustomAction","customActionCallback","notifyCallback","data","length","i","gleapEmitter","addListener","config","configJSON","Object","JSON","parse","enableNetworkLogs","exp","requests","getRequests","OS","attachNetworkLog","stringify","dataJSON","isJsonString","str","e","name","removeAllAttachments"],"mappings":"AAAA,SAASA,aAAT,EAAwBC,kBAAxB,EAA4CC,QAA5C,QAA4D,cAA5D;AACA,OAAOC,uBAAP,MAAoC,iBAApC;AAEA,MAAMC,aAAa,GAChB,gFAAD,GACAF,QAAQ,CAACG,MAAT,CAAgB;AAAEC,EAAAA,GAAG,EAAE,gCAAP;AAAyCC,EAAAA,OAAO,EAAE;AAAlD,CAAhB,CADA,GAEA,sDAFA,GAGA,6CAJF;AAgDA,MAAMC,QAAQ,GAAGR,aAAa,CAACS,QAAd,GACbT,aAAa,CAACS,QADD,GAEb,IAAIC,KAAJ,CACE,EADF,EAEE;AACEC,EAAAA,GAAG,GAAG;AACJ,UAAM,IAAIC,KAAJ,CAAUR,aAAV,CAAN;AACD;;AAHH,CAFF,CAFJ;;AAWA,IAAII,QAAQ,IAAI,CAACA,QAAQ,CAACK,OAA1B,EAAmC;AACjC,QAAMC,aAAa,GAAG,IAAIX,uBAAJ,EAAtB;;AAEAK,EAAAA,QAAQ,CAACO,mBAAT,GAA+B,MAAM;AACnCD,IAAAA,aAAa,CAACE,KAAd;AACD,GAFD;;AAIAR,EAAAA,QAAQ,CAACS,kBAAT,GAA8B,MAAM;AAClCH,IAAAA,aAAa,CAACI,UAAd,CAAyB,IAAzB;AACD,GAFD;;AAIA,MAAIC,SAAc,GAAG,EAArB;;AAEAX,EAAAA,QAAQ,CAACY,gBAAT,GAA4B,CAACC,SAAD,EAAoBC,QAApB,KAAsC;AAChE,QAAI,CAACH,SAAS,CAACE,SAAD,CAAd,EAA2B;AACzBF,MAAAA,SAAS,CAACE,SAAD,CAAT,GAAuB,EAAvB;AACD;;AACDF,IAAAA,SAAS,CAACE,SAAD,CAAT,CAAqBE,IAArB,CAA0BD,QAA1B;AACD,GALD;;AAOAd,EAAAA,QAAQ,CAACgB,oBAAT,GAAiCC,oBAAD,IAA+B;AAC7DjB,IAAAA,QAAQ,CAACY,gBAAT,CAA0B,uBAA1B,EAAmDK,oBAAnD;AACD,GAFD;;AAIA,QAAMC,cAAc,GAAG,UAAUL,SAAV,EAA6BM,IAA7B,EAAyC;AAC9D,QAAIR,SAAS,IAAIA,SAAS,CAACE,SAAD,CAAtB,IAAqCF,SAAS,CAACE,SAAD,CAAT,CAAqBO,MAArB,GAA8B,CAAvE,EAA0E;AACxE,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGV,SAAS,CAACE,SAAD,CAAT,CAAqBO,MAAzC,EAAiDC,CAAC,EAAlD,EAAsD;AACpD,YAAIV,SAAS,CAACE,SAAD,CAAT,CAAqBQ,CAArB,CAAJ,EAA6B;AAC3BV,UAAAA,SAAS,CAACE,SAAD,CAAT,CAAqBQ,CAArB,EAAwBF,IAAxB;AACD;AACF;AACF;AACF,GARD;;AAUA,QAAMG,YAAY,GAAG,IAAI7B,kBAAJ,CAAuBD,aAAa,CAACS,QAArC,CAArB;AAEAqB,EAAAA,YAAY,CAACC,WAAb,CAAyB,cAAzB,EAA0CC,MAAD,IAAiB;AACxD,QAAI;AACF,YAAMC,UAAU,GAAGD,MAAM,YAAYE,MAAlB,GAA2BF,MAA3B,GAAoCG,IAAI,CAACC,KAAL,CAAWJ,MAAX,CAAvD;;AACA,UAAIC,UAAU,CAACI,iBAAf,EAAkC;AAChC7B,QAAAA,QAAQ,CAACO,mBAAT;AACD;;AACDW,MAAAA,cAAc,CAAC,cAAD,EAAiBO,UAAjB,CAAd;AACD,KAND,CAME,OAAOK,GAAP,EAAY,CAAE;AACjB,GARD;AAUAR,EAAAA,YAAY,CAACC,WAAb,CAAyB,oBAAzB,EAA+C,MAAM;AACnD;AACA,UAAMQ,QAAQ,GAAGzB,aAAa,CAAC0B,WAAd,EAAjB;;AACA,QAAItC,QAAQ,CAACuC,EAAT,KAAgB,SAApB,EAA+B;AAC7BjC,MAAAA,QAAQ,CAACkC,gBAAT,CAA0BP,IAAI,CAACQ,SAAL,CAAeJ,QAAf,CAA1B;AACD,KAFD,MAEO;AACL/B,MAAAA,QAAQ,CAACkC,gBAAT,CAA0BP,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACQ,SAAL,CAAeJ,QAAf,CAAX,CAA1B;AACD;;AAEDb,IAAAA,cAAc,CAAC,oBAAD,CAAd;AACD,GAVD;AAYAI,EAAAA,YAAY,CAACC,WAAb,CAAyB,cAAzB,EAA0CJ,IAAD,IAAU;AACjD,QAAI;AACF,YAAMiB,QAAQ,GAAGjB,IAAI,YAAYO,MAAhB,GAAyBP,IAAzB,GAAgCQ,IAAI,CAACC,KAAL,CAAWT,IAAX,CAAjD;AACAD,MAAAA,cAAc,CAAC,cAAD,EAAiBkB,QAAjB,CAAd;AACD,KAHD,CAGE,OAAON,GAAP,EAAY,CAAE;AACjB,GALD;AAOAR,EAAAA,YAAY,CAACC,WAAb,CAAyB,uBAAzB,EAAkD,MAAM;AACtDL,IAAAA,cAAc,CAAC,uBAAD,CAAd;AACD,GAFD;;AAIA,WAASmB,YAAT,CAAsBC,GAAtB,EAAmC;AACjC,QAAI;AACFX,MAAAA,IAAI,CAACC,KAAL,CAAWU,GAAX;AACD,KAFD,CAEE,OAAOC,CAAP,EAAU;AACV,aAAO,KAAP;AACD;;AACD,WAAO,IAAP;AACD;;AAEDjB,EAAAA,YAAY,CAACC,WAAb,CAAyB,uBAAzB,EAAmDJ,IAAD,IAAe;AAC/D,QAAI;AACF,UAAIkB,YAAY,CAAClB,IAAD,CAAhB,EAAwB;AACtBA,QAAAA,IAAI,GAAGQ,IAAI,CAACC,KAAL,CAAWT,IAAX,CAAP;AACD;;AACD,YAAM;AAAEqB,QAAAA;AAAF,UAAWrB,IAAjB;;AACA,UAAIqB,IAAJ,EAAU;AACRtB,QAAAA,cAAc,CAAC,uBAAD,EAA0B;AACtCsB,UAAAA;AADsC,SAA1B,CAAd;AAGD;AACF,KAVD,CAUE,OAAOV,GAAP,EAAY,CAAE;AACjB,GAZD;AAcA9B,EAAAA,QAAQ,CAACyC,oBAAT;AAEAzC,EAAAA,QAAQ,CAACK,OAAT,GAAmB,IAAnB;AACD;;AAED,eAAeL,QAAf","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } from 'react-native';\nimport GleapNetworkIntercepter from './networklogger';\n\nconst LINKING_ERROR =\n `The package 'react-native-gleapsdk' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nexport type GleapUserProperty = {\n email?: string;\n name?: string;\n};\n\ntype GleapActivationMethod = 'SHAKE' | 'SCREENSHOT';\n\ntype GleapSdkType = {\n initialize(token: string): void;\n open(): void;\n startFeedbackFlow(feedbackFlow: string): void;\n sendSilentBugReport(\n description: string,\n severity: 'LOW' | 'MEDIUM' | 'HIGH'\n ): void;\n sendSilentBugReportWithType(\n description: string,\n severity: 'LOW' | 'MEDIUM' | 'HIGH',\n type: string\n ): void;\n identify(userId: string, userProperties: GleapUserProperty): void;\n clearIdentity(): void;\n setApiUrl(apiUrl: string): void;\n setWidgetUrl(widgetUrl: string): void;\n attachCustomData(customData: any): void;\n setCustomData(key: string, value: string): void;\n removeCustomDataForKey(key: string): void;\n clearCustomData(): void;\n registerCustomAction(\n customActionCallback: (data: { name: string }) => void\n ): void;\n registerListener(eventType: string, callback: (data?: any) => void): void;\n setLanguage(language: string): void;\n logEvent(name: string, data: any): void;\n addAttachment(base64file: string, fileName: string): void;\n removeAllAttachments(): void;\n startNetworkLogging(): void;\n stopNetworkLogging(): void;\n enableDebugConsoleLog(): void;\n setActivationMethods(activationMethods: GleapActivationMethod[]): void;\n};\n\nconst GleapSdk = NativeModules.Gleapsdk\n ? NativeModules.Gleapsdk\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nif (GleapSdk && !GleapSdk.touched) {\n const networkLogger = new GleapNetworkIntercepter();\n\n GleapSdk.startNetworkLogging = () => {\n networkLogger.start();\n };\n\n GleapSdk.stopNetworkLogging = () => {\n networkLogger.setStopped(true);\n };\n\n var callbacks: any = {};\n\n GleapSdk.registerListener = (eventType: string, callback: any) => {\n if (!callbacks[eventType]) {\n callbacks[eventType] = [];\n }\n callbacks[eventType].push(callback);\n };\n\n GleapSdk.registerCustomAction = (customActionCallback: any) => {\n GleapSdk.registerListener('customActionTriggered', customActionCallback);\n };\n\n const notifyCallback = function (eventType: string, data?: any) {\n if (callbacks && callbacks[eventType] && callbacks[eventType].length > 0) {\n for (var i = 0; i < callbacks[eventType].length; i++) {\n if (callbacks[eventType][i]) {\n callbacks[eventType][i](data);\n }\n }\n }\n };\n\n const gleapEmitter = new NativeEventEmitter(NativeModules.Gleapsdk);\n\n gleapEmitter.addListener('configLoaded', (config: any) => {\n try {\n const configJSON = config instanceof Object ? config : JSON.parse(config);\n if (configJSON.enableNetworkLogs) {\n GleapSdk.startNetworkLogging();\n }\n notifyCallback('configLoaded', configJSON);\n } catch (exp) {}\n });\n\n gleapEmitter.addListener('feedbackWillBeSent', () => {\n // Push the network log to the native SDK.\n const requests = networkLogger.getRequests();\n if (Platform.OS === 'android') {\n GleapSdk.attachNetworkLog(JSON.stringify(requests));\n } else {\n GleapSdk.attachNetworkLog(JSON.parse(JSON.stringify(requests)));\n }\n\n notifyCallback('feedbackWillBeSent');\n });\n\n gleapEmitter.addListener('feedbackSent', (data) => {\n try {\n const dataJSON = data instanceof Object ? data : JSON.parse(data);\n notifyCallback('feedbackSent', dataJSON);\n } catch (exp) {}\n });\n\n gleapEmitter.addListener('feedbackSendingFailed', () => {\n notifyCallback('feedbackSendingFailed');\n });\n\n function isJsonString(str: string) {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n gleapEmitter.addListener('customActionTriggered', (data: any) => {\n try {\n if (isJsonString(data)) {\n data = JSON.parse(data);\n }\n const { name } = data;\n if (name) {\n notifyCallback('customActionTriggered', {\n name,\n });\n }\n } catch (exp) {}\n });\n\n GleapSdk.removeAllAttachments();\n\n GleapSdk.touched = true;\n}\n\nexport default GleapSdk as GleapSdkType;\n"]}
|
|
@@ -8,6 +8,7 @@ declare type GleapSdkType = {
|
|
|
8
8
|
open(): void;
|
|
9
9
|
startFeedbackFlow(feedbackFlow: string): void;
|
|
10
10
|
sendSilentBugReport(description: string, severity: 'LOW' | 'MEDIUM' | 'HIGH'): void;
|
|
11
|
+
sendSilentBugReportWithType(description: string, severity: 'LOW' | 'MEDIUM' | 'HIGH', type: string): void;
|
|
11
12
|
identify(userId: string, userProperties: GleapUserProperty): void;
|
|
12
13
|
clearIdentity(): void;
|
|
13
14
|
setApiUrl(apiUrl: string): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-gleapsdk",
|
|
3
|
-
"version": "6.4.
|
|
3
|
+
"version": "6.4.5-beta.1",
|
|
4
4
|
"description": "Know exactly why and how a bug happened. Get reports with screenshots, live action replays and all of the important metadata every time.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
package/src/index.tsx
CHANGED
|
@@ -22,6 +22,11 @@ type GleapSdkType = {
|
|
|
22
22
|
description: string,
|
|
23
23
|
severity: 'LOW' | 'MEDIUM' | 'HIGH'
|
|
24
24
|
): void;
|
|
25
|
+
sendSilentBugReportWithType(
|
|
26
|
+
description: string,
|
|
27
|
+
severity: 'LOW' | 'MEDIUM' | 'HIGH',
|
|
28
|
+
type: string
|
|
29
|
+
): void;
|
|
25
30
|
identify(userId: string, userProperties: GleapUserProperty): void;
|
|
26
31
|
clearIdentity(): void;
|
|
27
32
|
setApiUrl(apiUrl: string): void;
|