UNPKG

@woosmap/expo-plugin-geofencing-batch

Version:
42 lines (41 loc) 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withAndroidSdk = void 0; const config_plugins_1 = require("@expo/config-plugins"); const withSDKAndroidManifest = (config, props) => { config = (0, config_plugins_1.withAndroidManifest)(config, (config) => { const mainApplication = config_plugins_1.AndroidConfig.Manifest.getMainApplicationOrThrow(config.modResults); var { useAndroidBackgroundLocation, useAndroidBluetooth, } = props; useAndroidBackgroundLocation = useAndroidBackgroundLocation == undefined ? true : useAndroidBackgroundLocation; //Default true useAndroidBluetooth = useAndroidBluetooth == undefined ? true : useAndroidBluetooth; //Default true // Add location and BLE permissions to the <manifest> tag const permissions = [ "android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION", ]; if (useAndroidBackgroundLocation == true) { permissions.push("android.permission.ACCESS_BACKGROUND_LOCATION"); } if (useAndroidBluetooth == true) { permissions.push("android.permission.BLUETOOTH"); permissions.push("android.permission.BLUETOOTH_ADMIN"); permissions.push("android.permission.BLUETOOTH_SCAN"); } // Ensure each permission is added only once permissions.forEach((permission) => { if (!config.modResults.manifest["uses-permission"]?.find((p) => p["$"]["android:name"] === permission)) { config.modResults.manifest["uses-permission"] = [ ...(config.modResults.manifest["uses-permission"] || []), { $: { "android:name": permission } }, ]; } }); return config; }); return config; }; const withAndroidSdk = (config, props) => { config = withSDKAndroidManifest(config, props); return config; }; exports.withAndroidSdk = withAndroidSdk;