1import { AndroidConfig, ConfigPlugin, withStringsXml } from '@expo/config-plugins'; 2 3import { getAndroidSplashConfig } from './getAndroidSplashConfig'; 4 5const RESIZE_MODE_KEY = 'expo_splash_screen_resize_mode'; 6const STATUS_BAR_TRANSLUCENT_KEY = 'expo_splash_screen_status_bar_translucent'; 7 8export const withAndroidSplashStrings: ConfigPlugin = (config) => { 9 return withStringsXml(config, (config) => { 10 const splashConfig = getAndroidSplashConfig(config); 11 if (splashConfig) { 12 const { resizeMode } = splashConfig; 13 const statusBarTranslucent = !!config.androidStatusBar?.translucent; 14 config.modResults = setSplashStrings(config.modResults, resizeMode, statusBarTranslucent); 15 } 16 return config; 17 }); 18}; 19 20export function setSplashStrings( 21 strings: AndroidConfig.Resources.ResourceXML, 22 resizeMode: string, 23 statusBarTranslucent: boolean 24): AndroidConfig.Resources.ResourceXML { 25 return AndroidConfig.Strings.setStringItem( 26 [ 27 AndroidConfig.Resources.buildResourceItem({ 28 name: RESIZE_MODE_KEY, 29 value: resizeMode, 30 translatable: false, 31 }), 32 AndroidConfig.Resources.buildResourceItem({ 33 name: STATUS_BAR_TRANSLUCENT_KEY, 34 value: String(statusBarTranslucent), 35 translatable: false, 36 }), 37 ], 38 strings 39 ); 40} 41