fix(YouTube - Theme): only set splash screen color if background colors are set

This commit is contained in:
oSumAtrIX 2023-07-22 00:08:25 +02:00
parent a808eca796
commit f058db4ba4
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4

View File

@ -66,27 +66,31 @@ class ThemeResourcePatch : ResourcePatch {
addColorResource(context, "res/values-night/colors.xml", SPLASH_BACKGROUND_COLOR, it)
}
// Edit splash screen files and change the background color.
val splashScreenResourceFiles = listOf(
"res/drawable/quantum_launchscreen_youtube.xml",
"res/drawable-sw600dp/quantum_launchscreen_youtube.xml")
// Edit splash screen files and change the background color,
// if the background colors are set.
if (darkThemeBackgroundColor != null && lightThemeBackgroundColor != null) {
val splashScreenResourceFiles = listOf(
"res/drawable/quantum_launchscreen_youtube.xml",
"res/drawable-sw600dp/quantum_launchscreen_youtube.xml")
splashScreenResourceFiles.forEach editSplashScreen@ { resourceFile ->
context.xmlEditor[resourceFile].use {
val layerList = it.file.getElementsByTagName("layer-list").item(0) as Element
splashScreenResourceFiles.forEach editSplashScreen@ { resourceFile ->
context.xmlEditor[resourceFile].use {
val layerList = it.file.getElementsByTagName("layer-list").item(0) as Element
val childNodes = layerList.childNodes
for (i in 0 until childNodes.length) {
val node = childNodes.item(i)
if (node is Element && node.hasAttribute("android:drawable")) {
node.setAttribute("android:drawable", "@color/$SPLASH_BACKGROUND_COLOR")
return@editSplashScreen
val childNodes = layerList.childNodes
for (i in 0 until childNodes.length) {
val node = childNodes.item(i)
if (node is Element && node.hasAttribute("android:drawable")) {
node.setAttribute("android:drawable", "@color/$SPLASH_BACKGROUND_COLOR")
return@editSplashScreen
}
}
return PatchResultError("Failed to modify launch screen")
}
return PatchResultError("Failed to modify launch screen")
}
}
return PatchResultSuccess()
}