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:
Kevin Gozali 2019-05-30 21:39:30 -07:00 коммит произвёл Facebook Github Bot
Родитель 85252a6cac
Коммит 8db4de41e4
2 изменённых файлов: 24 добавлений и 2 удалений

Просмотреть файл

@ -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);
}
}