1"use strict"; 2Object.defineProperty(exports, "__esModule", { value: true }); 3const Manifest_1 = require("@expo/config-plugins/build/android/Manifest"); 4const config_plugins_1 = require("expo/config-plugins"); 5function withExpoLocalizationIos(config) { 6 if (config.extra?.supportsRTL == null) 7 return config; 8 if (!config.ios) 9 config.ios = {}; 10 if (!config.ios.infoPlist) 11 config.ios.infoPlist = {}; 12 config.ios.infoPlist.ExpoLocalization_supportsRTL = config.extra?.supportsRTL || false; 13 return config; 14} 15function withExpoLocalizationAndroid(config, data) { 16 if (data.allowDynamicLocaleChangesAndroid) { 17 config = (0, config_plugins_1.withAndroidManifest)(config, (config) => { 18 const mainActivity = (0, Manifest_1.getMainActivityOrThrow)(config.modResults); 19 if (!mainActivity.$['android:configChanges']?.includes('locale')) { 20 mainActivity.$['android:configChanges'] += '|locale'; 21 } 22 if (!mainActivity.$['android:configChanges']?.includes('layoutDirection')) { 23 mainActivity.$['android:configChanges'] += '|layoutDirection'; 24 } 25 return config; 26 }); 27 } 28 return (0, config_plugins_1.withStringsXml)(config, (config) => { 29 config.modResults = config_plugins_1.AndroidConfig.Strings.setStringItem([ 30 { 31 $: { name: 'ExpoLocalization_supportsRTL', translatable: 'false' }, 32 _: String(data.supportsRTL ?? config.extra?.supportsRTL), 33 }, 34 ], config.modResults); 35 return config; 36 }); 37} 38function withExpoLocalization(config, data = { 39 allowDynamicLocaleChangesAndroid: true, 40}) { 41 return (0, config_plugins_1.withPlugins)(config, [ 42 [withExpoLocalizationIos, data], 43 [withExpoLocalizationAndroid, data], 44 ]); 45} 46exports.default = withExpoLocalization; 47