Reland "[RN] TM Spec: relax PermissionsAndroid enforcement"

Summary: Original commit changeset: cb5ce87685dc

Reviewed By: cpojer

Differential Revision: D15578851

fbshipit-source-id: ab8cb9a14f94bbf4e850d9af91133612060e1401
This commit is contained in:
Kevin Gozali
2019-05-31 10:58:02 -07:00
committed by Facebook Github Bot
parent db7e00250c
commit 3b65d2c2c8
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);
}
}