@@ -8,79 +8,114 @@ wip: true
88module Permission: {
99 type t;
1010
11- [@bs.inline "READ_CALENDAR"]
12- let readCalendar: t;
11+ [@bs.module "react-native"]
12+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
13+ external readCalendar: t = "READ_CALENDAR";
1314
14- [@bs.inline "WRITE_CALENDAR"]
15- let writeCalendar: t;
15+ [@bs.module "react-native"]
16+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
17+ external writeCalendar: t = "WRITE_CALENDAR";
1618
17- [@bs.inline "CAMERA"]
18- let camera: t;
19+ [@bs.module "react-native"]
20+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
21+ external camera: t = "CAMERA";
1922
20- [@bs.inline "READ_CONTACTS"]
21- let readContacts: t;
23+ [@bs.module "react-native"]
24+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
25+ external readContacts: t = "READ_CONTACTS";
2226
23- [@bs.inline "WRITE_CONTACTS"]
24- let writeContacts: t;
27+ [@bs.module "react-native"]
28+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
29+ external writeContacts: t = "WRITE_CONTACTS";
2530
26- [@bs.inline "GET_ACCOUNTS"]
27- let getAccounts: t;
31+ [@bs.module "react-native"]
32+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
33+ external getAccounts: t = "GET_ACCOUNTS";
2834
29- [@bs.inline "ACCESS_FINE_LOCATION"]
30- let accessFineLocation: t;
35+ [@bs.module "react-native"]
36+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
37+ external accessFineLocation: t = "ACCESS_FINE_LOCATION";
3138
32- [@bs.inline "ACCESS_COARSE_LOCATION"]
33- let accessCoarseLocation: t;
39+ [@bs.module "react-native"]
40+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
41+ external accessCoarseLocation: t = "ACCESS_COARSE_LOCATION";
3442
35- [@bs.inline "RECORD_AUDIO"]
36- let recordAudio: t;
43+ [@bs.module "react-native"]
44+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
45+ external recordAudio: t = "RECORD_AUDIO";
3746
38- [@bs.inline "READ_PHONE_STATE"]
39- let readPhoneState: t;
47+ [@bs.module "react-native"]
48+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
49+ external readPhoneState: t = "READ_PHONE_STATE";
4050
41- [@bs.inline "CALL_PHONE"]
42- let callPhone: t;
51+ [@bs.module "react-native"]
52+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
53+ external callPhone: t = "CALL_PHONE";
4354
44- [@bs.inline "READ_CALL_LOG"]
45- let readCallLog: t;
55+ [@bs.module "react-native"]
56+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
57+ external readCallLog: t = "READ_CALL_LOG";
4658
47- [@bs.inline "WRITE_CALL_LOG"]
48- let writeCallLog: t;
59+ [@bs.module "react-native"]
60+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
61+ external writeCallLog: t = "WRITE_CALL_LOG";
4962
50- [@bs.inline "ADD_VOICEMAIL"]
51- let addVoicemail: t;
63+ [@bs.module "react-native"]
64+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
65+ external addVoicemail: t = "ADD_VOICEMAIL";
5266
53- [@bs.inline "USE_SIP"]
54- let useSip: t;
67+ [@bs.module "react-native"]
68+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
69+ external useSip: t = "USE_SIP";
5570
56- [@bs.inline "PROCESS_OUTGOING_CALLS"]
57- let processOutgoingCalls: t;
71+ [@bs.module "react-native"]
72+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
73+ external processOutgoingCalls: t = "PROCESS_OUTGOING_CALLS";
5874
59- [@bs.inline "BODY_SENSORS"]
60- let bodySensors: t;
75+ [@bs.module "react-native"]
76+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
77+ external bodySensors: t = "BODY_SENSORS";
6178
62- [@bs.inline "SEND_SMS"]
63- let sendSms: t;
79+ [@bs.module "react-native"]
80+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
81+ external sendSms: t = "SEND_SMS";
6482
65- [@bs.inline "RECEIVE_SMS"]
66- let receiveSms: t;
83+ [@bs.module "react-native"]
84+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
85+ external receiveSms: t = "RECEIVE_SMS";
6786
68- [@bs.inline "READ_SMS"]
69- let readSms: t;
87+ [@bs.module "react-native"]
88+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
89+ external readSms: t = "READ_SMS";
7090
71- [@bs.inline "RECEIVE_WAP_PUSH"]
72- let receiveWapPush: t;
91+ [@bs.module "react-native"]
92+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
93+ external receiveWapPush: t = "RECEIVE_WAP_PUSH";
7394
74- [@bs.inline "RECEIVE_MMS"]
75- let receiveMms: t;
95+ [@bs.module "react-native"]
96+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
97+ external receiveMms: t = "RECEIVE_MMS";
7698
77- [@bs.inline "READ_EXTERNAL_STORAGE"]
78- let readExternalStorage: t;
99+ [@bs.module "react-native"]
100+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
101+ external readExternalStorage: t = "READ_EXTERNAL_STORAGE";
79102
80- [@bs.inline "WRITE_EXTERNAL_STORAGE"]
81- let writeExternalStorage: t;
103+ [@bs.module "react-native"]
104+ [@bs.scope ("PermissionsAndroid", "PERMISSIONS")]
105+ external writeExternalStorage: t = "WRITE_EXTERNAL_STORAGE";
106+ };
107+
108+ module Result: {
109+ type t;
110+
111+ [@bs.module "react-native"] [@bs.scope ("PermissionsAndroid", "RESULTS")]
112+ external granted: t = "GRANTED";
113+
114+ [@bs.module "react-native"] [@bs.scope ("PermissionsAndroid", "RESULTS")]
115+ external denied: t = "DENIED";
82116
83- external toString: t => string = "%identity";
117+ [@bs.module "react-native"] [@bs.scope ("PermissionsAndroid", "RESULTS")]
118+ external neverAskAgain: t = "NEVER_ASK_AGAIN";
84119};
85120
86121type rationale;
@@ -97,23 +132,24 @@ external rationale:
97132 rationale =
98133 "";
99134
100- [@bs.module "react-native"] [@bs.scope "PermissionsAndroid"]
101- external check: Permission.t => Js.Promise.t(Js.Null.t(bool)) = "";
135+ type dict;
136+
137+ [@bs.scope "PermissionsAndroid"] [@bs.module "react-native"]
138+ external check: Permission.t => Js.Promise.t(bool) = "check";
102139
103140// multiple externals
104- [@bs.module "react-native "] [@bs.scope "PermissionsAndroid "]
105- external request: Permission.t => Js.Promise.t(Js.Null.t(string) ) = "";
141+ [@bs.scope "PermissionsAndroid "] [@bs.module "react-native "]
142+ external request: Permission.t => Js.Promise.t(Result.t ) = "";
106143
107144// multiple externals
108- [@bs.module "react-native "] [@bs.scope "PermissionsAndroid "]
145+ [@bs.scope "PermissionsAndroid "] [@bs.module "react-native "]
109146external requestWithRationale:
110- (Permission.t, rationale) => Js.Promise.t(Js.Null.t(string) ) =
147+ (Permission.t, rationale) => Js.Promise.t(Result.t ) =
111148 "request";
112149
113- // multiple externals
114- [@bs.module "react-native"] [@bs.scope "PermissionsAndroid"]
115- external requestMultiple:
116- array(Permission.t) => Js.Promise.t(Js.Dict.t(string)) =
117- "request";
150+ [@bs.scope "PermissionsAndroid"] [@bs.module "react-native"]
151+ external requestMultiple: array(Permission.t) => Js.Promise.t(dict) = "";
152+
153+ [@bs.get_index] external get: (dict, Permission.t) => option(Result.t) = "";
118154
119155```
0 commit comments