fix(YouTube - Custom branding icon): Splash animation background color is always white https://github.com/inotia00/ReVanced_Extended/issues/2892

This commit is contained in:
inotia00 2025-03-31 21:05:06 +09:00
parent b439ef3ee7
commit 09a8eb7114
3 changed files with 65 additions and 34 deletions

View File

@ -217,8 +217,16 @@ val customBrandingIconPatch = resourcePatch(
} }
} }
val styleList = if (is_19_32_or_greater) val styleList = mutableListOf(
listOf( Triple(
"values-v31",
"Base.Theme.YouTube.Launcher",
"@style/Theme.AppCompat.DayNight.NoActionBar"
),
)
if (is_19_32_or_greater) {
styleList += listOf(
Triple( Triple(
"values-night-v31", "values-night-v31",
"Theme.YouTube.Home", "Theme.YouTube.Home",
@ -230,14 +238,7 @@ val customBrandingIconPatch = resourcePatch(
"@style/Base.V27.Theme.YouTube.Home" "@style/Base.V27.Theme.YouTube.Home"
), ),
) )
else }
listOf(
Triple(
"values-v31",
"Base.Theme.YouTube.Launcher",
"@style/Theme.AppCompat.DayNight.NoActionBar"
),
)
styleList.forEach { (directory, nodeAttributeName, nodeAttributeParent) -> styleList.forEach { (directory, nodeAttributeName, nodeAttributeParent) ->
document("res/$directory/styles.xml").use { document -> document("res/$directory/styles.xml").use { document ->

View File

@ -1,8 +1,11 @@
package app.revanced.patches.youtube.utils.fix.splash package app.revanced.patches.youtube.utils.fix.splash
import app.revanced.patcher.patch.resourcePatch import app.revanced.patcher.patch.resourcePatch
import app.revanced.patches.youtube.utils.compatibility.Constants.YOUTUBE_PACKAGE_NAME
import app.revanced.patches.youtube.utils.playservice.is_19_32_or_greater import app.revanced.patches.youtube.utils.playservice.is_19_32_or_greater
import app.revanced.patches.youtube.utils.playservice.versionCheckPatch import app.revanced.patches.youtube.utils.playservice.versionCheckPatch
import app.revanced.patches.youtube.utils.settings.ResourceUtils.youtubePackageName
import app.revanced.util.findElementByAttributeValueOrThrow
import org.w3c.dom.Element import org.w3c.dom.Element
/** /**
@ -25,14 +28,22 @@ val darkModeSplashScreenPatch = resourcePatch(
} }
arrayOf( arrayOf(
"values-night" to "@style/Base.V23.Theme.YouTube.Home", "values-night",
"values-night-v27" to "@style/Base.V27.Theme.YouTube.Home", "values-night-v27",
).forEach { (directory, parent) -> ).forEach { directory ->
document("res/$directory/styles.xml").use { document -> document("res/$directory/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", parent) style.setAttribute("parent", nodeAttributeParent)
val colorSplashBackgroundColor = "@color/yt_black1" val colorSplashBackgroundColor = "@color/yt_black1"
arrayOf( arrayOf(
@ -48,9 +59,25 @@ val darkModeSplashScreenPatch = resourcePatch(
style.appendChild(styleItem) style.appendChild(styleItem)
} }
val resourcesNode = document.getElementsByTagName("resources").item(0) as Element resourcesNode.removeChild(node)
resourcesNode.appendChild(style) resourcesNode.appendChild(style)
} }
} }
} }
} }
}
finalize {
// GmsCore support included
if (youtubePackageName != YOUTUBE_PACKAGE_NAME) {
document("AndroidManifest.xml").use { document ->
val mainActivityElement = document.childNodes.findElementByAttributeValueOrThrow(
"android:name",
"com.google.android.apps.youtube.app.watchwhile.MainActivity",
)
mainActivityElement.setAttribute("android:launchMode", "singleTask")
}
}
}
}

View File

@ -55,6 +55,8 @@ var is_19_36_or_greater = false
private set private set
var is_19_41_or_greater = false var is_19_41_or_greater = false
private set private set
var is_19_42_or_greater = false
private set
var is_19_43_or_greater = false var is_19_43_or_greater = false
private set private set
var is_19_44_or_greater = false var is_19_44_or_greater = false
@ -116,7 +118,8 @@ val versionCheckPatch = resourcePatch(
is_19_32_or_greater = 243305000 <= playStoreServicesVersion is_19_32_or_greater = 243305000 <= playStoreServicesVersion
is_19_34_or_greater = 243499000 <= playStoreServicesVersion is_19_34_or_greater = 243499000 <= playStoreServicesVersion
is_19_36_or_greater = 243705000 <= playStoreServicesVersion is_19_36_or_greater = 243705000 <= playStoreServicesVersion
is_19_41_or_greater = 244305000 <= playStoreServicesVersion is_19_41_or_greater = 244205000 <= playStoreServicesVersion
is_19_42_or_greater = 244305000 <= playStoreServicesVersion
is_19_43_or_greater = 244405000 <= playStoreServicesVersion is_19_43_or_greater = 244405000 <= playStoreServicesVersion
is_19_44_or_greater = 244505000 <= playStoreServicesVersion is_19_44_or_greater = 244505000 <= playStoreServicesVersion
is_19_46_or_greater = 244705000 <= playStoreServicesVersion is_19_46_or_greater = 244705000 <= playStoreServicesVersion