-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.tsx
120 lines (115 loc) · 4.7 KB
/
App.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/**
* Sample React Native App
* https://github.com/facebook/react-native
*
* Generated with the TypeScript template
* https://github.com/react-native-community/react-native-template-typescript
*
* @format
*/
import React, {Component} from 'react';
import {BackHandler, Button, StyleSheet, ToastAndroid, View,} from 'react-native';
import LauncherPlugin from 'react-native-launcher';
class App extends Component {
render() {
console.log(this.props);
ToastAndroid.show(JSON.stringify(this.props, null, 2), ToastAndroid.LONG);
return (
<View style={styles.container}>
<View style={[styles.button, {marginTop: 16}]}>
<Button
title="canDrawOverlays"
onPress={() => {
(async () => {
let isGranted: boolean | string;
try {
isGranted = await LauncherPlugin.canDrawOverlays();
} catch (e) {
console.error(e);
// here e.message will be "true" of "false" only on Android 8
// see https://stackoverflow.com/questions/46173460/why-in-android-8-method-settings-candrawoverlays-returns-false-when-user-has
isGranted = e.message
}
ToastAndroid.show(`isGranted: ${isGranted}`, ToastAndroid.LONG);
})();
}}/>
</View>
<View style={styles.button}>
<Button
title="requestDrawOverlays"
onPress={() => {
LauncherPlugin.requestDrawOverlays()
.then(result => {
ToastAndroid.show(`Result code: ${result}`, ToastAndroid.LONG);
})
.catch(e => {
// only when activity is null
console.error(e);
ToastAndroid.show(e.message, ToastAndroid.LONG);
});
}}/>
</View>
<View style={styles.button}>
<Button
title="openExact"
onPress={() => {
LauncherPlugin.openExact(0, {
argDelay: 0
})
BackHandler.exitApp()
}}/>
</View>
<View style={styles.button}>
<Button
title="openAndAllowWhileIdle"
onPress={() => {
LauncherPlugin.openAndAllowWhileIdle(2000, {
method: "openAndAllowWhileIdle"
})
}}/>
</View>
<View style={styles.button}>
<Button
title="openExactAndAllowWhileIdle"
onPress={() => {
LauncherPlugin.openExactAndAllowWhileIdle(2, undefined)
BackHandler.exitApp()
}}/>
</View>
<View style={styles.button}>
<Button
title="getLaunchArgs"
onPress={() => {
LauncherPlugin.getLaunchArgs((args?: object) => {
// afaik not null only for new intents
ToastAndroid.show(JSON.stringify(args, null, 2), ToastAndroid.LONG);
})
}}/>
</View>
<View style={styles.button}>
<Button
title="cancelOpen"
onPress={() => {
// For example cancelling previous openAndAllowWhileIdle action
LauncherPlugin.cancelOpen(2000, {
method: "openAndAllowWhileIdle"
})
}}/>
</View>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
display: "flex",
flexDirection: "column"
},
button: {
marginStart: 16,
marginEnd: 16,
marginBottom: 16
},
});
export default App;