TM Spec: relax PermissionsAndroid enforcement
Summary: Some modules accessed PermissionsAndroid even in iOS, causing redbox. Let's relax the enforcement, then invariant() on the callsites instead. Reviewed By: yungsters Differential Revision: D15572716 fbshipit-source-id: 4a2edea608ab27727e88f0f246ecb9cdcf5a5329
This commit is contained in:
Родитель
85252a6cac
Коммит
8db4de41e4
|
@ -56,4 +56,4 @@ export interface Spec extends TurboModule {
|
|||
) => Promise<{[permission: PermissionType]: PermissionStatus}>;
|
||||
}
|
||||
|
||||
export default TurboModuleRegistry.getEnforcing<Spec>('PermissionsAndroid');
|
||||
export default TurboModuleRegistry.get<Spec>('PermissionsAndroid');
|
||||
|
|
|
@ -11,10 +11,11 @@
|
|||
'use strict';
|
||||
|
||||
import NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';
|
||||
const NativeModules = require('../BatchedBridge/NativeModules');
|
||||
const Platform = require('../Utilities/Platform');
|
||||
import NativePermissionsAndroid from './NativePermissionsAndroid';
|
||||
|
||||
import invariant from 'invariant';
|
||||
|
||||
import type {
|
||||
PermissionStatus,
|
||||
PermissionType,
|
||||
|
@ -90,6 +91,11 @@ class PermissionsAndroid {
|
|||
return Promise.resolve(false);
|
||||
}
|
||||
|
||||
invariant(
|
||||
NativePermissionsAndroid,
|
||||
'PermissionsAndroid is not installed correctly.',
|
||||
);
|
||||
|
||||
return NativePermissionsAndroid.checkPermission(permission);
|
||||
}
|
||||
|
||||
|
@ -106,6 +112,12 @@ class PermissionsAndroid {
|
|||
);
|
||||
return Promise.resolve(false);
|
||||
}
|
||||
|
||||
invariant(
|
||||
NativePermissionsAndroid,
|
||||
'PermissionsAndroid is not installed correctly.',
|
||||
);
|
||||
|
||||
return NativePermissionsAndroid.checkPermission(permission);
|
||||
}
|
||||
|
||||
|
@ -158,6 +170,11 @@ class PermissionsAndroid {
|
|||
return Promise.resolve(this.RESULTS.DENIED);
|
||||
}
|
||||
|
||||
invariant(
|
||||
NativePermissionsAndroid,
|
||||
'PermissionsAndroid is not installed correctly.',
|
||||
);
|
||||
|
||||
if (rationale) {
|
||||
const shouldShowRationale = await NativePermissionsAndroid.shouldShowRequestPermissionRationale(
|
||||
permission,
|
||||
|
@ -197,6 +214,11 @@ class PermissionsAndroid {
|
|||
return Promise.resolve({});
|
||||
}
|
||||
|
||||
invariant(
|
||||
NativePermissionsAndroid,
|
||||
'PermissionsAndroid is not installed correctly.',
|
||||
);
|
||||
|
||||
return NativePermissionsAndroid.requestMultiplePermissions(permissions);
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче