mirror of
https://github.com/revanced/revanced-patches.git
synced 2025-05-25 02:52:16 +02:00
fix(YouTube - Theme): Resolve dark mode startup crash with Android 9.0
This commit is contained in:
parent
ef278d66bf
commit
741c2d5940
@ -185,33 +185,34 @@ val themePatch = bytecodePatch(
|
|||||||
// Fix the splash screen dark mode background color.
|
// Fix the splash screen dark mode background color.
|
||||||
// In 19.32+ the dark mode splash screen is white and fades to black.
|
// In 19.32+ the dark mode splash screen is white and fades to black.
|
||||||
// Maybe it's a bug in YT, or maybe it intentionally. Who knows.
|
// Maybe it's a bug in YT, or maybe it intentionally. Who knows.
|
||||||
document("res/values-night/styles.xml").use { document ->
|
document("res/values-night-v27/styles.xml").use { document ->
|
||||||
val resourcesNode = document.getElementsByTagName("resources").item(0) as Element
|
// Create a night mode specific override for the splash screen background.
|
||||||
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", nodeAttributeParent)
|
style.setAttribute("parent", "@style/Base.V27.Theme.YouTube.Home")
|
||||||
|
|
||||||
val windowItem = document.createElement("item")
|
// Fix status and navigation bar showing white on some Android devices,
|
||||||
windowItem.setAttribute("name", "android:windowBackground")
|
// such as SDK 28 Android 10 medium tablet.
|
||||||
windowItem.textContent = "@color/$splashBackgroundColor"
|
val colorSplashBackgroundColor = "@color/$splashBackgroundColor"
|
||||||
style.appendChild(windowItem)
|
arrayOf(
|
||||||
|
"android:navigationBarColor" to colorSplashBackgroundColor,
|
||||||
|
"android:windowBackground" to colorSplashBackgroundColor,
|
||||||
|
"android:colorBackground" to colorSplashBackgroundColor,
|
||||||
|
"colorPrimaryDark" to colorSplashBackgroundColor,
|
||||||
|
"android:windowLightStatusBar" to "false",
|
||||||
|
).forEach { (name, value) ->
|
||||||
|
val styleItem = document.createElement("item")
|
||||||
|
styleItem.setAttribute("name", name)
|
||||||
|
styleItem.textContent = value
|
||||||
|
style.appendChild(styleItem)
|
||||||
|
}
|
||||||
|
|
||||||
resourcesNode.removeChild(node)
|
val resourcesNode = document.getElementsByTagName("resources").item(0) as Element
|
||||||
resourcesNode.appendChild(style)
|
resourcesNode.appendChild(style)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
compatibleWith(
|
compatibleWith(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user