From 99532c20535cdee0bf2a36409323bab67eab9ceb Mon Sep 17 00:00:00 2001 From: Darryl Pogue Date: Sat, 30 Mar 2024 18:09:49 -0700 Subject: [PATCH] feat(splash): Support SplashScreenBackgroundColor preference --- lib/prepare.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/lib/prepare.js b/lib/prepare.js index 554af6c12..5a7289e58 100644 --- a/lib/prepare.js +++ b/lib/prepare.js @@ -378,10 +378,24 @@ function updateProjectSplashScreen (platformConfig, locations) { const themes = xmlHelpers.parseElementtreeSync(locations.themes); const splashScreenTheme = themes.find('style[@name="Theme.App.SplashScreen"]'); + let splashBg = platformConfig.getPreference('AndroidWindowSplashScreenBackground', this.platform); + if (!splashBg) { + splashBg = platformConfig.getPreference('SplashScreenBackgroundColor', this.platform); + } + if (!splashBg) { + splashBg = platformConfig.getPreference('BackgroundColor', this.platform); + } + + // use the user defined value for "colors.xml" + updateProjectSplashScreenBackgroundColor(splashBg, locations); + + // force the themes value to `@color/cdv_splashscreen_background` + const splashBgNode = splashScreenTheme.find('item[@name="windowSplashScreenBackground"]'); + splashBgNode.text = '@color/cdv_splashscreen_background'; + [ 'windowSplashScreenAnimatedIcon', 'windowSplashScreenAnimationDuration', - 'windowSplashScreenBackground', 'android:windowSplashScreenBrandingImage', 'windowSplashScreenIconBackgroundColor', 'postSplashScreenTheme' @@ -392,14 +406,6 @@ function updateProjectSplashScreen (platformConfig, locations) { let themeTargetNode = splashScreenTheme.find(`item[@name="${themeKey}"]`); switch (themeKey) { - case 'windowSplashScreenBackground': - // use the user defined value for "colors.xml" - updateProjectSplashScreenBackgroundColor(cdvConfigPrefValue, locations); - - // force the themes value to `@color/cdv_splashscreen_background` - themeTargetNode.text = '@color/cdv_splashscreen_background'; - break; - case 'windowSplashScreenAnimatedIcon': // handle here the cases of "png" vs "xml" (drawable) // If "png":