shakebug-react-native 2.4.7 → 2.4.8
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/package.json +1 -1
- package/src/Componanats/NavigationContext.js +8 -11
- package/src/Componanats/ShakeFunction.js +3 -2
- package/src/Screens/AddDetailsScreen.js +44 -44
- package/src/Screens/FirstScreen.js +249 -249
- package/src/Screens/Shakebug.js +76 -41
- package/src/index.tsx +15 -18
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shakebug-react-native",
|
|
3
3
|
"title": "shakebug-react-native",
|
|
4
|
-
"version": "2.4.
|
|
4
|
+
"version": "2.4.8",
|
|
5
5
|
"description": "Shakebug allows users to report the bug from your mobile phone for your application. Here users just need to shake their mobile and all the data regarding bugs & crashes can be seen by developers through their log in panel easily",
|
|
6
6
|
"main": "src/index.tsx",
|
|
7
7
|
"types": "src/index.tsx",
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// NavigationContext.js
|
|
2
2
|
import React, { createContext, useContext, useState } from 'react';
|
|
3
|
-
import { useFocusEffect } from '@react-navigation/native';
|
|
4
3
|
|
|
5
4
|
const NavigationContext = createContext();
|
|
6
5
|
|
|
@@ -23,16 +22,14 @@ export const NavigationProvider = ({ children }) => {
|
|
|
23
22
|
}
|
|
24
23
|
};
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}, [navigationState])
|
|
35
|
-
);
|
|
25
|
+
React.useEffect(() => {
|
|
26
|
+
if (navigationState && navigationState.length > 0) {
|
|
27
|
+
setFocusedScreen(navigationState[navigationState.length - 1].name);
|
|
28
|
+
}
|
|
29
|
+
return () => {
|
|
30
|
+
setFocusedScreen('');
|
|
31
|
+
};
|
|
32
|
+
}, [navigationState]);
|
|
36
33
|
|
|
37
34
|
return (
|
|
38
35
|
<NavigationContext.Provider value={{ navigationState, navigate, goBack, focusedScreen, goToScreenAtIndex}}>
|
|
@@ -316,6 +316,7 @@ const ShakeFunction = ({ children, themeColor, showTutorialScreen, SDKScreenTitl
|
|
|
316
316
|
subscription.unsubscribe();
|
|
317
317
|
global.IsBackground = false
|
|
318
318
|
global.isShakebugSDKOpen = true
|
|
319
|
+
// navigate('TestScreen');
|
|
319
320
|
navigate("FirstScreen", { img: `${ImgUrl}`, themeColor: `${themeColor}`, SDKScreenTitle: `${SDKScreenTitle}` })
|
|
320
321
|
}
|
|
321
322
|
else {
|
|
@@ -492,8 +493,8 @@ const ShakeFunction = ({ children, themeColor, showTutorialScreen, SDKScreenTitl
|
|
|
492
493
|
return (
|
|
493
494
|
<View
|
|
494
495
|
style={{
|
|
495
|
-
|
|
496
|
-
|
|
496
|
+
width: '100%',
|
|
497
|
+
height: '100%'
|
|
497
498
|
}}
|
|
498
499
|
>
|
|
499
500
|
|
|
@@ -285,11 +285,16 @@ const AddDetailsScreen = ({ media, updateParent, mediaType, themeColor, SDKScree
|
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
return (
|
|
288
|
-
<SafeAreaView style={{
|
|
289
|
-
<StatusBar backgroundColor={ThemeColor} hidden={false} />
|
|
290
|
-
<
|
|
291
|
-
|
|
292
|
-
|
|
288
|
+
<SafeAreaView style={{ flex: 1, backgroundColor: ThemeColor }}>
|
|
289
|
+
<StatusBar backgroundColor={ThemeColor} hidden={false} barStyle="dark-content" />
|
|
290
|
+
<View style={{
|
|
291
|
+
flex: 1,
|
|
292
|
+
backgroundColor: "#fff",
|
|
293
|
+
paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0,
|
|
294
|
+
paddingBottom: Platform.OS === 'android' ? 48 : 0 // Standard bottom navigation bar height
|
|
295
|
+
}}>
|
|
296
|
+
<KeyboardAvoidingWrapper>
|
|
297
|
+
<>
|
|
293
298
|
<View style={{ height: '6%', padding: 5, paddingHorizontal: 15, backgroundColor: ThemeColor, flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between' }}>
|
|
294
299
|
<TouchableOpacity
|
|
295
300
|
style={{
|
|
@@ -393,7 +398,7 @@ const AddDetailsScreen = ({ media, updateParent, mediaType, themeColor, SDKScree
|
|
|
393
398
|
</View>
|
|
394
399
|
<Text style={{ fontSize: 12, color: 'red', fontWeight: '500', marginRight: '6%', textAlign: 'right' }}>{EmailBorder == "red" ? Localization[global.ShakebugLanguage].EmailError : ""}</Text>
|
|
395
400
|
|
|
396
|
-
<TouchableOpacity activeOpacity={1} onPress={Keyboard.dismiss} style={{ height: Platform.OS == 'ios' ? Dimensions.get('window').height * 0.50 : '
|
|
401
|
+
<TouchableOpacity activeOpacity={1} onPress={Keyboard.dismiss} style={{ height: Platform.OS == 'ios' ? Dimensions.get('window').height * 0.50 : '50%', width: '100%', marginTop: '0%', justifyContent: 'center', alignItems: 'center' }}>
|
|
397
402
|
{type == "img" ?
|
|
398
403
|
path != "" && <Image source={{ uri: path }} resizeMode='contain' style={{ width: '100%', height: '100%' }} />
|
|
399
404
|
:
|
|
@@ -401,7 +406,8 @@ const AddDetailsScreen = ({ media, updateParent, mediaType, themeColor, SDKScree
|
|
|
401
406
|
{poster != "" && <VideoPlayer videoUri={path} img={poster} themeColor={ThemeColor} goToScreenAtIndex={goToScreenAtIndex} goBack={goBack} SDKScreenTitle={SDKScreenTitle} UpdateStatusBar={UpdateStatusBar} />}
|
|
402
407
|
</View>}
|
|
403
408
|
</TouchableOpacity>
|
|
404
|
-
|
|
409
|
+
|
|
410
|
+
<View style={{ marginTop: '2%', width: '100%'}}>
|
|
405
411
|
<View style={{ flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', marginHorizontal: 20 }}>
|
|
406
412
|
<TouchableOpacity onPress={() => openImagePicker()}>
|
|
407
413
|
<Text style={{ fontSize: 16, color: ThemeColor, fontWeight: '300' }}>{Localization[global.ShakebugLanguage].ReplaceImage}</Text>
|
|
@@ -426,46 +432,40 @@ const AddDetailsScreen = ({ media, updateParent, mediaType, themeColor, SDKScree
|
|
|
426
432
|
</View>
|
|
427
433
|
|
|
428
434
|
</View>
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
}}
|
|
446
|
-
/>
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
{isLoading &&
|
|
450
|
-
<View
|
|
451
|
-
style={{
|
|
452
|
-
...StyleSheet.absoluteFillObject,
|
|
453
|
-
backgroundColor: 'rgba(0, 0, 0, 0.4)',
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
<CustomeAlert
|
|
438
|
+
isVisible={isErrorInAPI || isBugReported}
|
|
439
|
+
text={apiMessage}
|
|
440
|
+
color={themeColor}
|
|
441
|
+
OnPrees={() => {
|
|
442
|
+
if (isBugReported) {
|
|
443
|
+
global.isScreenShotDetected = false;
|
|
444
|
+
setIsScreenShot(false)
|
|
445
|
+
setIsRecordingStart(false)
|
|
446
|
+
goToScreenAtIndex(0)
|
|
447
|
+
}
|
|
448
|
+
setIsBugReported(false)
|
|
449
|
+
setErrorInAPI(false)
|
|
450
|
+
setIsLoading(false)
|
|
454
451
|
}}
|
|
455
452
|
/>
|
|
456
|
-
}
|
|
457
453
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
454
|
+
|
|
455
|
+
{isLoading &&
|
|
456
|
+
<View
|
|
457
|
+
style={{
|
|
458
|
+
...StyleSheet.absoluteFillObject,
|
|
459
|
+
backgroundColor: 'rgba(0, 0, 0, 0.4)',
|
|
460
|
+
}}
|
|
461
|
+
/>
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
{isLoading &&
|
|
465
|
+
<ActivityIndicator size={'large'} color={themeColor} collapsable={true} style={{ position: 'absolute', top: 0, bottom: 0, left: 0, right: 0, elevation: 2 }} />}
|
|
466
|
+
</>
|
|
467
|
+
</KeyboardAvoidingWrapper>
|
|
468
|
+
</View>
|
|
469
469
|
|
|
470
470
|
</SafeAreaView>
|
|
471
471
|
)
|
|
@@ -43,7 +43,7 @@ const FirstScreen = ({ img, themeColor, SDKScreenTitle }) => {
|
|
|
43
43
|
|
|
44
44
|
useEffect(() => {
|
|
45
45
|
StatusBar.setHidden(false, 'slide');
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
global.isScreenShotDetected = true;
|
|
48
48
|
const backAction = () => {
|
|
49
49
|
global.isTrigger = false
|
|
@@ -60,6 +60,7 @@ const FirstScreen = ({ img, themeColor, SDKScreenTitle }) => {
|
|
|
60
60
|
const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);
|
|
61
61
|
|
|
62
62
|
return () => backHandler.remove(); // Clean up the event listener on unmount
|
|
63
|
+
|
|
63
64
|
}, []);
|
|
64
65
|
|
|
65
66
|
const { RNCameraPermission } = NativeModules
|
|
@@ -132,8 +133,8 @@ const FirstScreen = ({ img, themeColor, SDKScreenTitle }) => {
|
|
|
132
133
|
}
|
|
133
134
|
}
|
|
134
135
|
});
|
|
135
|
-
};
|
|
136
136
|
|
|
137
|
+
};
|
|
137
138
|
|
|
138
139
|
// For update image while change from Add details screen
|
|
139
140
|
const updateImage = (data) => {
|
|
@@ -142,7 +143,6 @@ const FirstScreen = ({ img, themeColor, SDKScreenTitle }) => {
|
|
|
142
143
|
setImage(data)
|
|
143
144
|
}
|
|
144
145
|
|
|
145
|
-
|
|
146
146
|
useEffect(() => {
|
|
147
147
|
global.IsBackground = 'false'
|
|
148
148
|
Keyboard.addListener('keyboardDidShow', () => {
|
|
@@ -273,8 +273,8 @@ const FirstScreen = ({ img, themeColor, SDKScreenTitle }) => {
|
|
|
273
273
|
}
|
|
274
274
|
]
|
|
275
275
|
)
|
|
276
|
-
}
|
|
277
276
|
|
|
277
|
+
}
|
|
278
278
|
|
|
279
279
|
const pan = useRef(new Animated.ValueXY()).current;
|
|
280
280
|
|
|
@@ -304,272 +304,272 @@ const FirstScreen = ({ img, themeColor, SDKScreenTitle }) => {
|
|
|
304
304
|
pan.setValue({ x: 0, y: 0 });
|
|
305
305
|
}
|
|
306
306
|
})
|
|
307
|
+
|
|
307
308
|
).current;
|
|
308
309
|
|
|
309
310
|
// backgroundColor: "#181818"
|
|
310
311
|
|
|
311
312
|
return (
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
global.isShakebugSDKOpen = false
|
|
332
|
-
}}
|
|
333
|
-
>
|
|
334
|
-
<Image source={require('../Assets/images/close.png')} resizeMode='contain' style={{ width: 35, height: 35 }} />
|
|
335
|
-
</TouchableOpacity>
|
|
336
|
-
<Text style={{ width: '80%', height: '80%', fontSize: 18, fontWeight: '300', color: 'white', textAlign: 'center' }}>
|
|
337
|
-
{title}
|
|
338
|
-
</Text>
|
|
339
|
-
<TouchableOpacity
|
|
340
|
-
style={{
|
|
341
|
-
width: '10%',
|
|
342
|
-
alignItems: 'center'
|
|
343
|
-
}}
|
|
344
|
-
onPress={async () => {
|
|
345
|
-
const ImgUrl = await ref.current.capture()
|
|
346
|
-
if (ImgUrl != undefined || ImgUrl != null) {
|
|
313
|
+
<SafeAreaView style={{ flex: 1, backgroundColor: ThemeColor }}>
|
|
314
|
+
<StatusBar backgroundColor={ThemeColor} barStyle="dark-content" />
|
|
315
|
+
|
|
316
|
+
<View style={{
|
|
317
|
+
flex: 1,
|
|
318
|
+
backgroundColor: "#e4fdfd",
|
|
319
|
+
paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0,
|
|
320
|
+
paddingBottom: Platform.OS === 'android' ? 48 : 0 // Standard bottom navigation bar height
|
|
321
|
+
}}>
|
|
322
|
+
|
|
323
|
+
<View style={{ height: '6%', padding: 5, paddingHorizontal: 15, backgroundColor: ThemeColor, flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between' }}>
|
|
324
|
+
<TouchableOpacity
|
|
325
|
+
style={{
|
|
326
|
+
width: '10%',
|
|
327
|
+
alignItems: 'center'
|
|
328
|
+
}}
|
|
329
|
+
onPress={() => {
|
|
330
|
+
global.isTrigger = false
|
|
331
|
+
global.isShakebugOpen = false
|
|
347
332
|
global.IsBackground = 'true'
|
|
348
|
-
|
|
349
|
-
|
|
333
|
+
global.isScreeenShotTaken = false
|
|
334
|
+
setIsScreenShot(false)
|
|
335
|
+
setIsRecordingStart(false)
|
|
336
|
+
goToScreenAtIndex(0)
|
|
337
|
+
global.isScreenShotDetected = false
|
|
338
|
+
global.isShakebugSDKOpen = false
|
|
339
|
+
}}
|
|
340
|
+
>
|
|
341
|
+
<Image source={require('../Assets/images/close.png')} resizeMode='contain' style={{ width: 35, height: 35 }} />
|
|
342
|
+
</TouchableOpacity>
|
|
343
|
+
<Text style={{ width: '80%', height: '80%', fontSize: 18, fontWeight: '300', color: 'white', textAlign: 'center' }}>
|
|
344
|
+
{title}
|
|
345
|
+
</Text>
|
|
346
|
+
<TouchableOpacity
|
|
347
|
+
style={{
|
|
348
|
+
width: '10%',
|
|
349
|
+
alignItems: 'center'
|
|
350
|
+
}}
|
|
351
|
+
onPress={async () => {
|
|
352
|
+
const ImgUrl = await ref.current.capture()
|
|
353
|
+
if (ImgUrl != undefined || ImgUrl != null) {
|
|
354
|
+
global.IsBackground = 'true'
|
|
355
|
+
navigate("AddDetailsScreen", { media: `${ImgUrl}`, updateParent: updateImage, mediaType: 'img', themeColor: ThemeColor, SDKScreenTitle: `${SDKScreenTitle}` })
|
|
356
|
+
}
|
|
350
357
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
358
|
+
}}
|
|
359
|
+
>
|
|
360
|
+
<Image source={require('../Assets/images/next.png')} resizeMode='contain' style={{ width: 25, height: 25 }} />
|
|
361
|
+
</TouchableOpacity>
|
|
362
|
+
</View>
|
|
363
|
+
<View style={{ position: 'relative', height: Platform.OS == 'android' ? '78%' : '79%', backgroundColor: '#e4fdfd', width: '100%', alignItems: 'center', paddingTop: 8 }}>
|
|
364
|
+
<ShakebugCapture ref={ref} options={{ format: "png", quality: 1 }} collapsable={false} style={{ width: Platform.OS == 'android' ? "77%" : '73%', height: '100%' }}>
|
|
365
|
+
|
|
366
|
+
{text.trim().length > 0 ?
|
|
367
|
+
<Animated.View
|
|
368
|
+
style={[
|
|
369
|
+
styles.card,
|
|
370
|
+
{
|
|
371
|
+
transform: pan.getTranslateTransform(),
|
|
372
|
+
opacity: 1,
|
|
373
|
+
borderWidth: isShow ? 1 : 0
|
|
374
|
+
},
|
|
375
|
+
]}
|
|
369
376
|
|
|
370
|
-
>
|
|
371
|
-
<TouchableOpacity
|
|
372
|
-
style={{
|
|
373
|
-
width: '100%',
|
|
374
|
-
height: '100%'
|
|
375
|
-
}}
|
|
376
|
-
activeOpacity={1}
|
|
377
|
-
onPress={() => setIsShow(!isShow)}
|
|
378
377
|
>
|
|
379
|
-
<
|
|
380
|
-
onLongPress={() => {
|
|
381
|
-
setIsShow(!isShow)
|
|
382
|
-
}}
|
|
383
|
-
{...panResponder.panHandlers}
|
|
378
|
+
<TouchableOpacity
|
|
384
379
|
style={{
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
380
|
+
width: '100%',
|
|
381
|
+
height: '100%'
|
|
382
|
+
}}
|
|
383
|
+
activeOpacity={1}
|
|
384
|
+
onPress={() => setIsShow(!isShow)}
|
|
385
|
+
>
|
|
386
|
+
<Text
|
|
387
|
+
onLongPress={() => {
|
|
388
|
+
setIsShow(!isShow)
|
|
389
|
+
}}
|
|
390
|
+
{...panResponder.panHandlers}
|
|
391
|
+
style={{
|
|
392
|
+
fontSize: 20,
|
|
393
|
+
fontWeight: 'bold',
|
|
394
|
+
backgroundColor: 'white',
|
|
395
|
+
borderRadius: 8,
|
|
396
|
+
padding: 5,
|
|
397
|
+
color: selectd == 1 ? "black" : selectd == 2 ? 'red' : selectd == 3 ? 'green' : selectd == 4 ? '#1dd3e3' : selectd == 5 ? "yellow" : 'black',
|
|
398
|
+
}}>{text}</Text>
|
|
399
|
+
</TouchableOpacity>
|
|
400
|
+
|
|
401
|
+
{isShow ? <TouchableOpacity
|
|
402
|
+
activeOpacity={1}
|
|
403
|
+
onPress={() => setText("")}
|
|
404
|
+
style={{ position: 'absolute', top: '-25%', left: '-15%', width: 20, height: 20, zIndex: 1 }}>
|
|
405
|
+
<Image source={require("../Assets/images/RemoveTextView.png")} style={{ width: '100%', height: '100%' }} resizeMode='contain' />
|
|
406
|
+
</TouchableOpacity> : null}
|
|
407
|
+
</Animated.View>
|
|
408
|
+
: null}
|
|
409
|
+
<ImageBackground
|
|
410
|
+
source={image ? { uri: image } : undefined}
|
|
411
|
+
style={{
|
|
412
|
+
alignItems: 'center',
|
|
413
|
+
width: "100%",
|
|
414
|
+
height: "100%"
|
|
415
|
+
}}
|
|
416
|
+
resizeMode='contain'
|
|
417
|
+
>
|
|
418
|
+
|
|
419
|
+
<RNDrawingView
|
|
420
|
+
ref={canvasRef}
|
|
421
|
+
style={{ width: '100%', height: '100%' }}
|
|
422
|
+
color={selectd == 1 ? "black" : selectd == 2 ? 'red' : selectd == 3 ? 'green' : selectd == 4 ? '#1dd3e3' : selectd == 5 ? "yellow" : 'black'}
|
|
423
|
+
strokeWidth={Platform.OS == 'android' ? 5 : 3}
|
|
424
|
+
/>
|
|
425
|
+
|
|
426
|
+
</ImageBackground>
|
|
427
|
+
</ShakebugCapture>
|
|
428
|
+
|
|
429
|
+
</View>
|
|
430
|
+
<View style={{ margin: 10, marginHorizontal: 20, flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', height: '5%', backgroundColor: "#e4fdfd" }}>
|
|
431
|
+
<TouchableOpacity
|
|
432
|
+
style={{ backgroundColor: ThemeColor, padding: 8, width: '45%', alignItems: 'center' }}
|
|
433
|
+
onPress={() => {
|
|
434
|
+
global.IsBackground = 'false'
|
|
435
|
+
if (global.AllowVideo == false) {
|
|
436
|
+
setIsAlertText(`You have reached your max video limitation. \n\n Used Videos: ${global.used_video} \nAllowed Videos: ${global.total_video}\n\nPlease visit https://www.shakebug.com website and upgrade your plan.`)
|
|
437
|
+
setIsAlert(true)
|
|
438
|
+
}
|
|
439
|
+
else {
|
|
440
|
+
DeviceInfo.isEmulator()
|
|
441
|
+
.then(res => {
|
|
442
|
+
if (res != true || Platform.OS != 'ios') {
|
|
443
|
+
RecordVideo()
|
|
444
|
+
}
|
|
445
|
+
else {
|
|
446
|
+
setIsAlertText("Only real device is supported for recording video")
|
|
447
|
+
setIsAlert(true)
|
|
448
|
+
}
|
|
449
|
+
})
|
|
450
|
+
}
|
|
451
|
+
}}
|
|
452
|
+
>
|
|
453
|
+
<Text style={{ color: 'white' }}>{Localization[global.ShakebugLanguage].RecordVideo}</Text>
|
|
454
|
+
</TouchableOpacity>
|
|
455
|
+
<TouchableOpacity
|
|
456
|
+
style={{ backgroundColor: ThemeColor, padding: 8, width: '45%', alignItems: 'center' }}
|
|
457
|
+
onPress={() => {
|
|
458
|
+
if (global.AllowVideo == false) {
|
|
459
|
+
setIsAlertText(`You have reached your max video limitation. \n\n Used Videos: ${global.used_video} \nAllowed Videos: ${global.total_video}\n\nPlease visit https://www.shakebug.com website and upgrade your plan.`)
|
|
460
|
+
setIsAlert(true)
|
|
461
|
+
}
|
|
462
|
+
else {
|
|
463
|
+
openVideoPicker()
|
|
464
|
+
}
|
|
408
465
|
}}
|
|
409
|
-
resizeMode='contain'
|
|
410
466
|
>
|
|
467
|
+
<Text style={{ color: 'white' }}>{Localization[global.ShakebugLanguage].ChooseVideo}</Text>
|
|
468
|
+
</TouchableOpacity>
|
|
469
|
+
</View>
|
|
411
470
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
471
|
+
<View style={{ width: "100%", flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', paddingHorizontal: 15, height: Platform.OS == 'ios' ? '7%' : '8.5%', paddingVertical: 12, backgroundColor: "#181818" }}>
|
|
472
|
+
<TouchableOpacity
|
|
473
|
+
onPress={() => {
|
|
474
|
+
setIsDraw(true)
|
|
475
|
+
setSelected(1)
|
|
476
|
+
}}
|
|
477
|
+
>
|
|
478
|
+
<Image source={selectd == 1 ? require('../Assets/images/borderdBlack.png') : require('../Assets/images/black.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
479
|
+
</TouchableOpacity>
|
|
480
|
+
<TouchableOpacity
|
|
481
|
+
onPress={() => setSelected(2)}
|
|
482
|
+
>
|
|
483
|
+
<Image source={selectd == 2 ? require('../Assets/images/borderdRed.png') : require('../Assets/images/red.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
484
|
+
</TouchableOpacity>
|
|
485
|
+
<TouchableOpacity
|
|
486
|
+
onPress={() => setSelected(3)}
|
|
487
|
+
>
|
|
488
|
+
<Image source={selectd == 3 ? require('../Assets/images/borderdGreen.png') : require('../Assets/images/green.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
489
|
+
</TouchableOpacity>
|
|
490
|
+
<TouchableOpacity
|
|
491
|
+
onPress={() => setSelected(4)}
|
|
492
|
+
>
|
|
493
|
+
<Image source={selectd == 4 ? require('../Assets/images/borderdBlue.png') : require('../Assets/images/blue.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
494
|
+
</TouchableOpacity>
|
|
495
|
+
<TouchableOpacity
|
|
496
|
+
onPress={() => setSelected(5)}
|
|
497
|
+
>
|
|
498
|
+
<Image source={selectd == 5 ? require('../Assets/images/borderdYellow.png') : require('../Assets/images/yellow.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
499
|
+
</TouchableOpacity>
|
|
500
|
+
<TouchableOpacity
|
|
501
|
+
onPress={() => setAddTextView(true)}
|
|
502
|
+
>
|
|
503
|
+
<Image source={require('../Assets/images/text_icon.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
504
|
+
</TouchableOpacity>
|
|
418
505
|
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
setIsAlertText(`You have reached your max video limitation. \n\n Used Videos: ${global.used_video} \nAllowed Videos: ${global.total_video}\n\nPlease visit https://www.shakebug.com website and upgrade your plan.`)
|
|
430
|
-
setIsAlert(true)
|
|
431
|
-
}
|
|
432
|
-
else {
|
|
433
|
-
DeviceInfo.isEmulator()
|
|
434
|
-
.then(res => {
|
|
435
|
-
if (res != true || Platform.OS != 'ios') {
|
|
436
|
-
RecordVideo()
|
|
437
|
-
}
|
|
438
|
-
else {
|
|
439
|
-
setIsAlertText("Only real device is supported for recording video")
|
|
440
|
-
setIsAlert(true)
|
|
441
|
-
}
|
|
442
|
-
})
|
|
443
|
-
}
|
|
444
|
-
}}
|
|
445
|
-
>
|
|
446
|
-
<Text style={{ color: 'white' }}>{Localization[global.ShakebugLanguage].RecordVideo}</Text>
|
|
447
|
-
</TouchableOpacity>
|
|
448
|
-
<TouchableOpacity
|
|
449
|
-
style={{ backgroundColor: ThemeColor, padding: 8, width: '45%', alignItems: 'center' }}
|
|
450
|
-
onPress={() => {
|
|
451
|
-
if (global.AllowVideo == false) {
|
|
452
|
-
setIsAlertText(`You have reached your max video limitation. \n\n Used Videos: ${global.used_video} \nAllowed Videos: ${global.total_video}\n\nPlease visit https://www.shakebug.com website and upgrade your plan.`)
|
|
453
|
-
setIsAlert(true)
|
|
454
|
-
}
|
|
455
|
-
else {
|
|
456
|
-
openVideoPicker()
|
|
457
|
-
}
|
|
458
|
-
}}
|
|
459
|
-
>
|
|
460
|
-
<Text style={{ color: 'white' }}>{Localization[global.ShakebugLanguage].ChooseVideo}</Text>
|
|
461
|
-
</TouchableOpacity>
|
|
462
|
-
</View>
|
|
463
|
-
|
|
464
|
-
<View style={{ width: "100%", flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', paddingHorizontal: 15, height: Platform.OS == 'ios' ? '7%' : '8.5%', paddingVertical: 12, backgroundColor: "#181818" }}>
|
|
465
|
-
<TouchableOpacity
|
|
466
|
-
onPress={() => {
|
|
467
|
-
setIsDraw(true)
|
|
468
|
-
setSelected(1)
|
|
469
|
-
}}
|
|
470
|
-
>
|
|
471
|
-
<Image source={selectd == 1 ? require('../Assets/images/borderdBlack.png') : require('../Assets/images/black.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
472
|
-
</TouchableOpacity>
|
|
473
|
-
<TouchableOpacity
|
|
474
|
-
onPress={() => setSelected(2)}
|
|
475
|
-
>
|
|
476
|
-
<Image source={selectd == 2 ? require('../Assets/images/borderdRed.png') : require('../Assets/images/red.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
477
|
-
</TouchableOpacity>
|
|
478
|
-
<TouchableOpacity
|
|
479
|
-
onPress={() => setSelected(3)}
|
|
480
|
-
>
|
|
481
|
-
<Image source={selectd == 3 ? require('../Assets/images/borderdGreen.png') : require('../Assets/images/green.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
482
|
-
</TouchableOpacity>
|
|
483
|
-
<TouchableOpacity
|
|
484
|
-
onPress={() => setSelected(4)}
|
|
485
|
-
>
|
|
486
|
-
<Image source={selectd == 4 ? require('../Assets/images/borderdBlue.png') : require('../Assets/images/blue.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
487
|
-
</TouchableOpacity>
|
|
488
|
-
<TouchableOpacity
|
|
489
|
-
onPress={() => setSelected(5)}
|
|
490
|
-
>
|
|
491
|
-
<Image source={selectd == 5 ? require('../Assets/images/borderdYellow.png') : require('../Assets/images/yellow.png')} resizeMode='contain' style={{ width: 40, height: 40 }} />
|
|
492
|
-
</TouchableOpacity>
|
|
493
|
-
<TouchableOpacity
|
|
494
|
-
onPress={() => setAddTextView(true)}
|
|
506
|
+
<TouchableOpacity style={{ backgroundColor: ThemeColor, padding: 5 }} onPress={() => ClearCanvas(canvasRef)}>
|
|
507
|
+
<Image source={require('../Assets/images/clear.png')} resizeMode='contain' style={{ width: 30, height: 30 }} />
|
|
508
|
+
</TouchableOpacity>
|
|
509
|
+
</View>
|
|
510
|
+
</View >
|
|
511
|
+
|
|
512
|
+
{addTextView ? (<View style={{ flex: 1, position: 'absolute', top: 0, bottom: 0, left: 0, right: 0, backgroundColor: 'black', opacity: 0.93, alignItems: 'center' }}>
|
|
513
|
+
<KeyboardAvoidingView
|
|
514
|
+
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
|
|
515
|
+
style={styles.container}
|
|
495
516
|
>
|
|
496
|
-
<
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
517
|
+
<View style={styles.innerContainer}>
|
|
518
|
+
<TextInput
|
|
519
|
+
style={{
|
|
520
|
+
width: '90%',
|
|
521
|
+
alignSelf: 'center',
|
|
522
|
+
height: '70%',
|
|
523
|
+
paddingHorizontal: 10,
|
|
524
|
+
textAlign: 'center',
|
|
525
|
+
textAlignVertical: 'center',
|
|
526
|
+
marginTop: 30,
|
|
527
|
+
fontSize: 18,
|
|
528
|
+
color: selectd == 1 ? "white" : selectd == 2 ? 'red' : selectd == 3 ? 'green' : selectd == 4 ? '#1dd3e3' : selectd == 5 ? "yellow" : 'black'
|
|
529
|
+
}}
|
|
530
|
+
autoFocus
|
|
531
|
+
multiline
|
|
532
|
+
placeholder="Type here..."
|
|
533
|
+
placeholderTextColor="#b2b2b2"
|
|
534
|
+
cursorColor={selectd == 1 ? "white" : selectd == 2 ? 'red' : selectd == 3 ? 'green' : selectd == 4 ? '#1dd3e3' : selectd == 5 ? "yellow" : 'black'}
|
|
535
|
+
value={text}
|
|
536
|
+
onChangeText={(e) => setText(e)}
|
|
537
|
+
/>
|
|
538
|
+
</View>
|
|
539
|
+
<TouchableOpacity
|
|
540
|
+
style={keyboardOpen ? styles.buttonShifted : styles.button}
|
|
541
|
+
onPress={() => {
|
|
542
|
+
setIsShow(false)
|
|
543
|
+
setAddTextView(false)
|
|
522
544
|
}}
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
onPress={() => {
|
|
535
|
-
setIsShow(false)
|
|
536
|
-
setAddTextView(false)
|
|
545
|
+
>
|
|
546
|
+
<Text style={{ color: 'white' }}>{Localization[global.ShakebugLanguage].Done}</Text>
|
|
547
|
+
</TouchableOpacity>
|
|
548
|
+
</KeyboardAvoidingView>
|
|
549
|
+
</View>) : null}
|
|
550
|
+
|
|
551
|
+
{isLoading &&
|
|
552
|
+
<View
|
|
553
|
+
style={{
|
|
554
|
+
...StyleSheet.absoluteFillObject,
|
|
555
|
+
backgroundColor: 'rgba(0, 0, 0, 0.4)',
|
|
537
556
|
}}
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
}}
|
|
549
|
-
/>
|
|
550
|
-
|
|
551
|
-
{isLoading &&
|
|
552
|
-
<View
|
|
553
|
-
style={{
|
|
554
|
-
...StyleSheet.absoluteFillObject,
|
|
555
|
-
backgroundColor: 'rgba(0, 0, 0, 0.4)',
|
|
557
|
+
/>
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
<CustomeAlert
|
|
561
|
+
isVisible={isAlert}
|
|
562
|
+
text={isAlertText}
|
|
563
|
+
color={themeColor}
|
|
564
|
+
OnPrees={() => {
|
|
565
|
+
setIsAlert(false)
|
|
566
|
+
setIsAlertText("")
|
|
556
567
|
}}
|
|
557
568
|
/>
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
<CustomeAlert
|
|
561
|
-
isVisible={isAlert}
|
|
562
|
-
text={isAlertText}
|
|
563
|
-
color={themeColor}
|
|
564
|
-
OnPrees={() => {
|
|
565
|
-
setIsAlert(false)
|
|
566
|
-
setIsAlertText("")
|
|
567
|
-
}}
|
|
568
|
-
/>
|
|
569
569
|
|
|
570
|
-
|
|
570
|
+
{isLoading && <ActivityIndicator size={'large'} color={themeColor} collapsable={true} style={{ position: 'absolute', top: 0, bottom: 0, left: 0, right: 0, elevation: 2 }} />}
|
|
571
571
|
|
|
572
|
-
|
|
572
|
+
</SafeAreaView>
|
|
573
573
|
)
|
|
574
574
|
}
|
|
575
575
|
|
package/src/Screens/Shakebug.js
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
Platform,
|
|
4
|
+
Alert,
|
|
5
|
+
AppState,
|
|
6
|
+
NativeModules,
|
|
7
|
+
View,
|
|
8
|
+
Text,
|
|
9
|
+
StyleSheet,
|
|
10
|
+
Animated,
|
|
11
|
+
Dimensions,
|
|
12
|
+
Modal,
|
|
13
|
+
} from 'react-native';
|
|
3
14
|
import ShakeFunction from '../Componanats/ShakeFunction';
|
|
4
15
|
import FirstScreen from './FirstScreen';
|
|
5
16
|
import AddDetailsScreen from './AddDetailsScreen';
|
|
6
17
|
import TrimVideoScreen from './TrimVideoScreen'
|
|
7
18
|
import DeviceInfo from '../../DeviceInfo';
|
|
8
19
|
import { useEffect, useState } from 'react';
|
|
9
|
-
import { useFocusEffect } from '@react-navigation/native';
|
|
10
20
|
import GetLocation from '../../GetLocation'
|
|
11
21
|
import NetInfo from '../../NetInfo/src'
|
|
12
22
|
import { SessionStartApi } from '../APIs/StartSession';
|
|
@@ -53,7 +63,7 @@ global.isScreeenShotTaken = false;
|
|
|
53
63
|
global.restrictedViews = [];
|
|
54
64
|
global.currentScreen = ""
|
|
55
65
|
global.isShakebugSDKOpen = false;
|
|
56
|
-
global.sdk_version = "2.4.
|
|
66
|
+
global.sdk_version = "2.4.8";
|
|
57
67
|
global.app_lunch_count = 0;
|
|
58
68
|
global.POPUP_LAUNCH_THRESHOLD = 3;
|
|
59
69
|
global.POPUP_COOLDOWN_DAYS = 2;
|
|
@@ -71,45 +81,70 @@ const ShakebugContext = React.createContext();
|
|
|
71
81
|
|
|
72
82
|
// For navigation in register screen
|
|
73
83
|
const NavigationContainer = ({ screens, setFocusedScreen }) => {
|
|
74
|
-
|
|
75
84
|
const { navigationState } = useNavigation();
|
|
76
|
-
const animation = React.useRef(new Animated.Value(0)).current;
|
|
77
|
-
const { width } = Dimensions.get('window');
|
|
78
85
|
|
|
79
|
-
useFocusEffect(
|
|
80
|
-
React.useCallback(() => {
|
|
81
|
-
if (navigationState && navigationState.length > 0) {
|
|
82
|
-
setFocusedScreen(navigationState[navigationState.length - 1].name);
|
|
83
|
-
}
|
|
84
|
-
return () => {
|
|
85
|
-
setFocusedScreen('');
|
|
86
|
-
};
|
|
87
|
-
}, [navigationState, setFocusedScreen])
|
|
88
|
-
);
|
|
89
86
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
87
|
+
if (!navigationState || navigationState.length === 0) {
|
|
88
|
+
return (
|
|
89
|
+
<View
|
|
90
|
+
style={{
|
|
91
|
+
flex: 1,
|
|
92
|
+
justifyContent: 'center',
|
|
93
|
+
alignItems: 'center',
|
|
94
|
+
backgroundColor: 'red',
|
|
95
|
+
}}
|
|
96
|
+
>
|
|
97
|
+
<Text style={{ color: 'white', fontSize: 20 }}>
|
|
98
|
+
Navigation State Empty
|
|
99
|
+
</Text>
|
|
100
|
+
</View>
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const currentScreen =
|
|
105
|
+
navigationState[navigationState.length - 1];
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
const ScreenComponent = screens[currentScreen.name];
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
if (!ScreenComponent) {
|
|
112
|
+
return (
|
|
113
|
+
<View
|
|
114
|
+
style={{
|
|
115
|
+
flex: 1,
|
|
116
|
+
justifyContent: 'center',
|
|
117
|
+
alignItems: 'center',
|
|
118
|
+
backgroundColor: 'red',
|
|
119
|
+
}}
|
|
120
|
+
>
|
|
121
|
+
<Text style={{ color: 'white', fontSize: 20 }}>
|
|
122
|
+
Screen Not Found: {currentScreen.name}
|
|
123
|
+
</Text>
|
|
124
|
+
</View>
|
|
125
|
+
);
|
|
126
|
+
}
|
|
97
127
|
|
|
98
128
|
return (
|
|
99
|
-
<View style={
|
|
100
|
-
{
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
129
|
+
<View style={{ flex: 1, backgroundColor: 'white' }}>
|
|
130
|
+
<ScreenComponent {...(currentScreen.params || {})} />
|
|
131
|
+
</View>
|
|
132
|
+
);
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
const TestScreen = () => {
|
|
136
|
+
return (
|
|
137
|
+
<View
|
|
138
|
+
style={{
|
|
139
|
+
flex: 1,
|
|
140
|
+
backgroundColor: 'yellow',
|
|
141
|
+
justifyContent: 'center',
|
|
142
|
+
alignItems: 'center',
|
|
143
|
+
}}
|
|
144
|
+
>
|
|
145
|
+
<Text style={{ fontSize: 30, color: 'black' }}>
|
|
146
|
+
TEST SCREEN
|
|
147
|
+
</Text>
|
|
113
148
|
</View>
|
|
114
149
|
);
|
|
115
150
|
};
|
|
@@ -468,7 +503,7 @@ function Shakebug({ children, Android_appkey, iOS_appkey, showTutorialScreenFirs
|
|
|
468
503
|
setAllowCrashFlag(global.allowCrashReport);
|
|
469
504
|
setAllowEventFlag(global.allowEvent);
|
|
470
505
|
setAllowReviewFlag(global.allowReview);
|
|
471
|
-
setAllowSessionFlag(global.allowSession);
|
|
506
|
+
setAllowSessionFlag(global.allowSession); log.debug("------------------------------------------------------------------------------------------");
|
|
472
507
|
log.info('API response:', message);
|
|
473
508
|
log.debug("------------------------------------------------------------------------------------------");
|
|
474
509
|
if (global.allowSession) { StartSession(); }
|
|
@@ -541,8 +576,7 @@ function Shakebug({ children, Android_appkey, iOS_appkey, showTutorialScreenFirs
|
|
|
541
576
|
}}>
|
|
542
577
|
<View
|
|
543
578
|
style={{
|
|
544
|
-
|
|
545
|
-
height: '100%',
|
|
579
|
+
flex: 1
|
|
546
580
|
}}
|
|
547
581
|
>
|
|
548
582
|
<GlobalStateProvider>
|
|
@@ -553,7 +587,8 @@ function Shakebug({ children, Android_appkey, iOS_appkey, showTutorialScreenFirs
|
|
|
553
587
|
TutorialScreen: TutorialScreen,
|
|
554
588
|
FirstScreen: FirstScreen,
|
|
555
589
|
TrimVideoScreen: TrimVideoScreen,
|
|
556
|
-
AddDetailsScreen: AddDetailsScreen
|
|
590
|
+
AddDetailsScreen: AddDetailsScreen,
|
|
591
|
+
TestScreen: TestScreen,
|
|
557
592
|
}}
|
|
558
593
|
setFocusedScreen={setFocusedScreen}
|
|
559
594
|
/>
|
package/src/index.tsx
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Shakebug, { AddEvent } from '../src/Screens/Shakebug';
|
|
3
|
-
import { NavigationContainer, findFocusedRoute } from '@react-navigation/native';
|
|
4
3
|
import { getLocales } from '../GetLocals/src';
|
|
5
4
|
import { NativeModules, Text, View, findNodeHandle } from 'react-native';
|
|
6
5
|
import { useGlobalState } from './Componanats/GlobalStateContext'
|
|
@@ -14,7 +13,7 @@ let LocalLanguage = LanguageCodes.indexOf(getLocales()[0].languageCode)
|
|
|
14
13
|
|
|
15
14
|
|
|
16
15
|
// Define the props interface for ShakebugView
|
|
17
|
-
interface ShakebugViewProps {
|
|
16
|
+
export interface ShakebugViewProps {
|
|
18
17
|
children?: React.ReactNode;
|
|
19
18
|
Android_appkey?: string;
|
|
20
19
|
iOS_appkey?: string;
|
|
@@ -47,22 +46,20 @@ const ShakebugView: React.FC<ShakebugViewProps> = ({
|
|
|
47
46
|
}) => {
|
|
48
47
|
|
|
49
48
|
return (
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
/>
|
|
65
|
-
</NavigationContainer>
|
|
49
|
+
<Shakebug
|
|
50
|
+
children={children}
|
|
51
|
+
Android_appkey={Android_appkey}
|
|
52
|
+
iOS_appkey={iOS_appkey}
|
|
53
|
+
showTutorialScreenFirstTime={showTutorialScreenFirstTime}
|
|
54
|
+
ShakebugThemeColor={ShakebugThemeColor}
|
|
55
|
+
changeSDKScreenTitle={changeSDKScreenTitle}
|
|
56
|
+
allowToReportBugByScreenCapture={allowToReportBugByScreenCapture}
|
|
57
|
+
allowToReportBugByShakingMobile={allowToReportBugByShakingMobile}
|
|
58
|
+
allowCrashReport={__DEV__ ? false : allowCrashReport}
|
|
59
|
+
makeLogEnabled={makeLogEnabled}
|
|
60
|
+
ShakebugLanguage={Languages.includes(ShakebugLanguage) ? ShakebugLanguage : LocalLanguage != -1 ? Languages[LocalLanguage] : "ENGLISH"}
|
|
61
|
+
setShakebugSDKEndPointURL={setShakebugSDKEndPointURL}
|
|
62
|
+
/>
|
|
66
63
|
);
|
|
67
64
|
};
|
|
68
65
|
|