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:42:50 -07:00
committed by Facebook Github Bot
parent 85252a6cac
commit 8db4de41e4
2 changed files with 24 additions and 2 deletions
@@ -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);
}
}