Skip to content

Commit

Permalink
fix(YouTube - MaterialYou): Theme not applied to notification dots in…
Browse files Browse the repository at this point in the history
… YouTube 19.34.42+
  • Loading branch information
inotia00 authored and anddea committed Dec 17, 2024
1 parent b5e507c commit fd31d87
Show file tree
Hide file tree
Showing 5 changed files with 112 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import app.revanced.patches.youtube.utils.patch.PatchList.MATERIALYOU
import app.revanced.patches.youtube.utils.settings.ResourceUtils.addPreference
import app.revanced.patches.youtube.utils.settings.ResourceUtils.updatePatchStatusTheme
import app.revanced.patches.youtube.utils.settings.settingsPatch
import app.revanced.util.ResourceGroup
import app.revanced.util.copyResources
import app.revanced.util.copyXmlNode
import org.w3c.dom.Element
import java.nio.file.Files

@Suppress("unused")
val materialYouPatch = resourcePatch(
Expand All @@ -24,25 +24,118 @@ val materialYouPatch = resourcePatch(
)

execute {
arrayOf(
ResourceGroup(
"drawable-night-v31",
"new_content_dot_background.xml"
),
ResourceGroup(
"drawable-v31",
"new_content_count_background.xml",
"new_content_dot_background.xml"
),
ResourceGroup(
"layout-v31",
"new_content_count.xml"
)
).forEach {
get("res/${it.resourceDirectoryName}").mkdirs()
copyResources("youtube/materialyou", it)
fun patchXmlFile(
fromDir: String,
toDir: String,
xmlFileName: String,
parentNode: String,
targetNode: String? = null,
attribute: String,
newValue: String
) {
val resourceDirectory = get("res")
val fromDirectory = resourceDirectory.resolve(fromDir)
val toDirectory = resourceDirectory.resolve(toDir)

if (!toDirectory.isDirectory) Files.createDirectories(toDirectory.toPath())

val fromXmlFile = fromDirectory.resolve(xmlFileName)
val toXmlFile = toDirectory.resolve(xmlFileName)

if (!fromXmlFile.exists()) {
return
}

if (!toXmlFile.exists()) {
Files.copy(
fromXmlFile.toPath(),
toXmlFile.toPath()
)
}

document("res/$toDir/$xmlFileName").use { document ->
val parentList = document.getElementsByTagName(parentNode).item(0) as Element

if (targetNode != null) {
for (i in 0 until parentList.childNodes.length) {
val node = parentList.childNodes.item(i) as? Element ?: continue

if (node.nodeName == targetNode && node.hasAttribute(attribute)) {
node.getAttributeNode(attribute).textContent = newValue
}
}
} else {
if (parentList.hasAttribute(attribute)) {
parentList.getAttributeNode(attribute).textContent = newValue
}
}
}
}

patchXmlFile(
"drawable",
"drawable-night-v31",
"new_content_dot_background.xml",
"shape",
"solid",
"android:color",
"@android:color/system_accent1_100"
)
patchXmlFile(
"drawable",
"drawable-night-v31",
"new_content_dot_background_cairo.xml",
"shape",
"solid",
"android:color",
"@android:color/system_accent1_100"
)
patchXmlFile(
"drawable",
"drawable-v31",
"new_content_dot_background.xml",
"shape",
"solid",
"android:color",
"@android:color/system_accent1_200"
)
patchXmlFile(
"drawable",
"drawable-v31",
"new_content_dot_background_cairo.xml",
"shape",
"solid",
"android:color",
"@android:color/system_accent1_200"
)
patchXmlFile(
"drawable",
"drawable-v31",
"new_content_count_background.xml",
"shape",
"solid",
"android:color",
"@android:color/system_accent1_100"
)
patchXmlFile(
"drawable",
"drawable-v31",
"new_content_count_background_cairo.xml",
"shape",
"solid",
"android:color",
"@android:color/system_accent1_100"
)
patchXmlFile(
"layout",
"layout-v31",
"new_content_count.xml",
"TextView",
null,
"android:textColor",
"@android:color/system_neutral1_900"
)

copyXmlNode("youtube/materialyou/host", "values-v31/colors.xml", "resources")

updatePatchStatusTheme("MaterialYou")
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

0 comments on commit fd31d87

Please sign in to comment.