xref: /expo/packages/@expo/prebuild-config/src/plugins/unversioned/expo-splash-screen/withAndroidSplashStrings.ts (revision dfd15ebd)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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

served by {OpenGrok

Last Index Update: Fri May 15 20:09:11 GMT 2026