UNPKG

@react-native-oh-tpl/react-native-permissions

Version:
95 lines (94 loc) 3.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.methods = void 0; var _reactNative = require("react-native"); var _NativePermissionsModule = _interopRequireDefault(require("./NativePermissionsModule")); var _unsupportedPlatformMethods = require("./unsupportedPlatformMethods"); var _utils = require("./utils"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const TIRAMISU_VERSION_CODE = 33; async function openSettings() { await _NativePermissionsModule.default.openSettings(); } function check(permission) { return _NativePermissionsModule.default.check(permission); } async function showRationaleAlert(rationale) { return new Promise(resolve => { const { title, message, buttonPositive, buttonNegative, buttonNeutral } = rationale; const buttons = []; if (buttonNegative) { const onPress = () => resolve(false); buttonNeutral && buttons.push({ text: buttonNeutral, onPress }); buttons.push({ text: buttonNegative, onPress }); } buttons.push({ text: buttonPositive, onPress: () => resolve(true) }); _reactNative.Alert.alert(title, message, buttons, { cancelable: false }); }); } async function request(permission, rationale) { if (rationale == null || !(await _NativePermissionsModule.default.shouldShowRequestRationale(permission))) { return _NativePermissionsModule.default.request(permission); } return (typeof rationale === 'function' ? rationale() : showRationaleAlert(rationale)).then(shouldRequest => shouldRequest ? _NativePermissionsModule.default.request(permission) : _NativePermissionsModule.default.check(permission)); } async function checkNotifications() { if (_utils.platformVersion < TIRAMISU_VERSION_CODE) { return _NativePermissionsModule.default.checkNotifications(); } const status = await check('android.permission.POST_NOTIFICATIONS'); return { status, settings: {} }; } async function requestNotifications(options) { if (_utils.platformVersion < TIRAMISU_VERSION_CODE) { return _NativePermissionsModule.default.requestNotifications(options); } const status = await request('android.permission.POST_NOTIFICATIONS'); return { status, settings: {} }; } function checkMultiple(permissions) { const dedup = (0, _utils.uniq)(permissions); return _NativePermissionsModule.default.checkMultiple(dedup); } function requestMultiple(permissions) { const dedup = (0, _utils.uniq)(permissions); return _NativePermissionsModule.default.requestMultiple(dedup); } const methods = exports.methods = { check, checkLocationAccuracy: _unsupportedPlatformMethods.checkLocationAccuracy, checkMultiple, checkNotifications, openPhotoPicker: _unsupportedPlatformMethods.openPhotoPicker, openSettings, request, requestLocationAccuracy: _unsupportedPlatformMethods.requestLocationAccuracy, requestMultiple, requestNotifications }; //# sourceMappingURL=methods.android.js.map