"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.editProjectSettingsAndroid = exports.resolvePlugin = exports.getAndroidPlugins = exports.checkAndroidPackage = void 0; const fs_extra_1 = require("fs-extra"); const path_1 = require("path"); const common_1 = require("../common"); const cordova_1 = require("../cordova"); const plugin_1 = require("../plugin"); const fs_1 = require("../util/fs"); async function checkAndroidPackage(config) { return (0, common_1.checkCapacitorPlatform)(config, 'android'); } exports.checkAndroidPackage = checkAndroidPackage; async function getAndroidPlugins(allPlugins) { const resolved = await Promise.all(allPlugins.map(async (plugin) => await resolvePlugin(plugin))); return resolved.filter((plugin) => !!plugin); } exports.getAndroidPlugins = getAndroidPlugins; async function resolvePlugin(plugin) { var _a; const platform = 'android'; if ((_a = plugin.manifest) === null || _a === void 0 ? void 0 : _a.android) { let pluginFilesPath = plugin.manifest.android.src ? plugin.manifest.android.src : platform; const absolutePath = (0, path_1.join)(plugin.rootPath, pluginFilesPath, plugin.id); // Android folder shouldn't have subfolders, but they used to, so search for them for compatibility reasons if (await (0, fs_extra_1.pathExists)(absolutePath)) { pluginFilesPath = (0, path_1.join)(platform, plugin.id); } plugin.android = { type: 0 /* PluginType.Core */, path: (0, fs_1.convertToUnixPath)(pluginFilesPath), }; } else if (plugin.xml) { plugin.android = { type: 1 /* PluginType.Cordova */, path: 'src/' + platform, }; if ((0, cordova_1.getIncompatibleCordovaPlugins)(platform).includes(plugin.id) || !(0, plugin_1.getPluginPlatform)(plugin, platform)) { plugin.android.type = 2 /* PluginType.Incompatible */; } } else { return null; } return plugin; } exports.resolvePlugin = resolvePlugin; /** * Update an Android project with the desired app name and appId. * This is a little trickier for Android because the appId becomes * the package name. */ async function editProjectSettingsAndroid(config) { const appId = config.app.appId; const appName = config.app.appName .replace(/&/g, '&') .replace(/