UNPKG

2.07 kBJavaScriptView Raw
1/**
2 * Copyright (c) Facebook, Inc. and its affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 * @format
8 * @flow strict-local
9 */
10
11'use strict';
12
13import type {TurboModule} from '../TurboModule/RCTExport';
14import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
15
16// TODO: Use proper enum types.
17export type PermissionStatus = string;
18export type PermissionType = string;
19/*
20export type PermissionStatus = 'granted' | 'denied' | 'never_ask_again';
21export type PermissionType =
22 | 'android.permission.READ_CALENDAR'
23 | 'android.permission.WRITE_CALENDAR'
24 | 'android.permission.CAMERA'
25 | 'android.permission.READ_CONTACTS'
26 | 'android.permission.WRITE_CONTACTS'
27 | 'android.permission.GET_ACCOUNTS'
28 | 'android.permission.ACCESS_FINE_LOCATION'
29 | 'android.permission.ACCESS_COARSE_LOCATION'
30 | 'android.permission.RECORD_AUDIO'
31 | 'android.permission.READ_PHONE_STATE'
32 | 'android.permission.CALL_PHONE'
33 | 'android.permission.READ_CALL_LOG'
34 | 'android.permission.WRITE_CALL_LOG'
35 | 'com.android.voicemail.permission.ADD_VOICEMAIL'
36 | 'android.permission.USE_SIP'
37 | 'android.permission.PROCESS_OUTGOING_CALLS'
38 | 'android.permission.BODY_SENSORS'
39 | 'android.permission.SEND_SMS'
40 | 'android.permission.RECEIVE_SMS'
41 | 'android.permission.READ_SMS'
42 | 'android.permission.RECEIVE_WAP_PUSH'
43 | 'android.permission.RECEIVE_MMS'
44 | 'android.permission.READ_EXTERNAL_STORAGE'
45 | 'android.permission.WRITE_EXTERNAL_STORAGE';
46*/
47
48export interface Spec extends TurboModule {
49 +checkPermission: (permission: PermissionType) => Promise<boolean>;
50 +requestPermission: (permission: PermissionType) => Promise<PermissionStatus>;
51 +shouldShowRequestPermissionRationale: (
52 permission: string,
53 ) => Promise<boolean>;
54 +requestMultiplePermissions: (
55 permissions: Array<PermissionType>,
56 ) => Promise<{[permission: PermissionType]: PermissionStatus}>;
57}
58
59export default (TurboModuleRegistry.get<Spec>('PermissionsAndroid'): ?Spec);