diff --git a/lib/prepare.js b/lib/prepare.js index 554af6c12..f951ae02a 100644 --- a/lib/prepare.js +++ b/lib/prepare.js @@ -378,10 +378,20 @@ 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); + splashBg ??= platformConfig.getPreference('SplashScreenBackgroundColor', this.platform); + 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 +402,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":