fix(YouTube - Theme): Use dark theme color for status and navigation bar

This commit is contained in:
LisoUseInAIKyrios 2024-12-22 15:27:02 +04:00
parent 7870a150f0
commit 0240efe33e

View File

@ -163,25 +163,34 @@ val themePatch = bytecodePatch(
} }
// Fix the splash screen dark mode background color. // Fix the splash screen dark mode background color.
// In earlier versions of the app this is white and makes no sense for dark mode. // In 19.32+ the dark mode splash screen is white and fades to black.
// This is only required for 19.32 and greater, but is applied to all targets. // Maybe it's a bug in YT, or maybe it intentionally. Who knows.
// Only dark mode needs this fix as light mode correctly uses the custom color.
document("res/values-night/styles.xml").use { document -> document("res/values-night/styles.xml").use { document ->
// Create a night mode specific override for the splash screen background. val resourcesNode = document.getElementsByTagName("resources").item(0) as Element
val childNodes = resourcesNode.childNodes
for (i in 0 until childNodes.length) {
val node = childNodes.item(i) as? Element ?: continue
val nodeAttributeName = node.getAttribute("name")
if (nodeAttributeName.startsWith("Theme.YouTube.Launcher")) {
val nodeAttributeParent = node.getAttribute("parent")
val style = document.createElement("style") val style = document.createElement("style")
style.setAttribute("name", "Theme.YouTube.Home") style.setAttribute("name", "Theme.YouTube.Home")
style.setAttribute("parent", "@style/Base.V23.Theme.YouTube.Home") style.setAttribute("parent", nodeAttributeParent)
val windowItem = document.createElement("item") val windowItem = document.createElement("item")
windowItem.setAttribute("name", "android:windowBackground") windowItem.setAttribute("name", "android:windowBackground")
windowItem.textContent = "@color/$splashBackgroundColor" windowItem.textContent = "@color/$splashBackgroundColor"
style.appendChild(windowItem) style.appendChild(windowItem)
val resourcesNode = document.getElementsByTagName("resources").item(0) as Element resourcesNode.removeChild(node)
resourcesNode.appendChild(style) resourcesNode.appendChild(style)
} }
} }
} }
}
}
}, },
sharedExtensionPatch, sharedExtensionPatch,
settingsPatch, settingsPatch,