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