UNPKG

react-native-zalo-auth

Version:
115 lines (110 loc) 4.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _configPlugins = require("@expo/config-plugins"); const withZaloAndroidManifest = (config, appId) => (0, _configPlugins.withAndroidManifest)(config, manifestConfig => { var _androidProject$manif, _application$metaDat, _application$activity; const androidProject = manifestConfig.modResults; // add queries const queries = androidProject.manifest.queries; const exists = queries.find(q => q.package && q.package.find(p => p.$['android:name'] === 'com.zing.zalo')); if (!exists) { queries.push({ package: [{ $: { 'android:name': 'com.zing.zalo' } }] }); } const application = (_androidProject$manif = androidProject.manifest.application) === null || _androidProject$manif === void 0 ? void 0 : _androidProject$manif.find(item => item.$['android:name'] === '.MainApplication'); if (!application) { return manifestConfig; } // add metadata const zaloMetaExists = (_application$metaDat = application['meta-data']) === null || _application$metaDat === void 0 ? void 0 : _application$metaDat.find(item => item.$['android:name'] === 'com.zing.zalo.zalosdk.appID'); if (!zaloMetaExists) { application['meta-data'].push({ $: { 'android:name': 'com.zing.zalo.zalosdk.appID', 'android:value': '@string/appID' } }); } // add BrowserLoginActivity const browserLoginActivityExists = (_application$activity = application.activity) === null || _application$activity === void 0 ? void 0 : _application$activity.find(item => item.$['android:name'] === 'com.zing.zalo.zalosdk.oauth.BrowserLoginActivity'); if (!browserLoginActivityExists) { application.activity.push({ '$': { 'android:name': 'com.zing.zalo.zalosdk.oauth.BrowserLoginActivity', 'android:exported': 'true' }, 'intent-filter': [{ action: [{ $: { 'android:name': 'android.intent.action.VIEW' } }], category: [{ $: { 'android:name': 'android.intent.category.DEFAULT' } }, { $: { 'android:name': 'android.intent.category.BROWSABLE' } }], data: [{ $: { 'android:scheme': `zalo-${appId}` } }] }] }); } return manifestConfig; }); const withZaloAndroidStrings = (config, appId) => (0, _configPlugins.withStringsXml)(config, stringsConfig => { let strings = stringsConfig.modResults.resources.string; if (!strings) { stringsConfig.modResults.resources.string = []; strings = stringsConfig.modResults.resources.string; } const exists = strings.find(item => item.$.name === 'appID'); if (!exists) { strings.push({ $: { name: 'appID' }, _: appId }); } return stringsConfig; }); const withZaloAndroidMainActivity = (config, content) => (0, _configPlugins.withMainActivity)(config, mainActivityConfig => { mainActivityConfig.modResults.contents = content; return mainActivityConfig; }); /** * @typedef {import("expo/config-plugins").ConfigPlugin} ConfigPlugin * @param {ConfigPlugin} config * * @param {String} content */ const withZaloAndroidMainApplication = (config, content) => (0, _configPlugins.withMainApplication)(config, mainApplicationConfig => { mainApplicationConfig.modResults.contents = content; return mainApplicationConfig; }); /** * @typedef {import("expo/config-plugins").ConfigPlugin} ConfigPlugin * @param {ConfigPlugin} config * @param {String} appId */ const withAndroid = (config, { appId, mainActivityContent, mainApplicationContent }) => (0, _configPlugins.withPlugins)(config, [[withZaloAndroidManifest, appId], [withZaloAndroidStrings, appId], [withZaloAndroidMainActivity, mainActivityContent], [withZaloAndroidMainApplication, mainApplicationContent]]); var _default = exports.default = withAndroid; //# sourceMappingURL=withAndroid.js.map