@woosmap/expo-plugin-geofencing-batch
Version:
Woosmap geofencing and batch integration
42 lines (41 loc) • 2.02 kB
JavaScript
;
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;