UNPKG

react-native-notificare

Version:
57 lines (56 loc) 2.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.processManifestMetaDataOptions = processManifestMetaDataOptions; exports.processIntentFilter = processIntentFilter; const Manifest_1 = require("@expo/config-plugins/build/android/Manifest"); const config_plugins_1 = require("expo/config-plugins"); function processManifestMetaDataOptions(config, metaDataOptions) { return (0, config_plugins_1.withAndroidManifest)(config, (newConfig) => { const application = (0, Manifest_1.getMainApplication)(newConfig.modResults); if (!application) { console.warn('No ".MainApplication" found in manifest.'); return newConfig; } let metaDataList = application['meta-data']; metaDataOptions.forEach((option) => { if (option.enabled) { if (!Array.isArray(metaDataList)) { metaDataList = [option.metaData]; } else if (!metaDataList.find((metaData) => metaData.$['android:name'] === option.metaData.$['android:name'])) { metaDataList.push(option.metaData); } } else if (Array.isArray(metaDataList)) { metaDataList = metaDataList.filter((metaData) => metaData.$['android:name'] !== option.metaData.$['android:name']); } }); application['meta-data'] = metaDataList; return newConfig; }); } function processIntentFilter(config, intent) { return (0, config_plugins_1.withAndroidManifest)(config, (newConfig) => { const activity = (0, Manifest_1.getMainActivity)(newConfig.modResults); if (!activity) { console.warn('No ".MainActivity" found in manifest.'); return newConfig; } const filters = activity['intent-filter']; if (intent.enabled) { if (!Array.isArray(filters)) { activity['intent-filter'] = [intent.intentFilter]; } else if (!filters.find((filter) => filter.action?.some((action) => action.$['android:name'] === intent.intentFilter.action?.[0].$['android:name']))) { filters.push(intent.intentFilter); } } else if (Array.isArray(filters) && !!intent.intentFilter.action?.[0].$['android:name']) { activity['intent-filter'] = filters.filter((intentFilter) => intentFilter.action?.[0].$['android:name'] !== intent.intentFilter.action?.[0].$['android:name']); } return newConfig; }); }