fix(youtube/theme): theme litho ui components & use correct theme for settings (#791)

This commit is contained in:
OxrxL
2022-10-25 08:36:59 +02:00
committed by GitHub
parent f3753a22da
commit 8cf0343f29
8 changed files with 143 additions and 95 deletions
@@ -8,10 +8,10 @@ import app.revanced.patches.youtube.layout.theme.annotations.ThemeCompatibility
import org.jf.dexlib2.AccessFlags
import org.jf.dexlib2.Opcode
@Name("comment-actionbar-fingerprint")
@Name("litho-ui-fingerprint")
@ThemeCompatibility
@Version("0.0.1")
object CommentsFilterBarFingerprint : MethodFingerprint(
object LithoThemeFingerprint : MethodFingerprint(
"V", AccessFlags.PROTECTED or AccessFlags.FINAL, listOf("L"), listOf(
Opcode.APUT,
Opcode.NEW_INSTANCE,
@@ -11,36 +11,27 @@ import app.revanced.patcher.patch.PatchResult
import app.revanced.patcher.patch.PatchResultSuccess
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.youtube.layout.theme.annotations.ThemeCompatibility
import app.revanced.patches.youtube.layout.theme.fingerprints.CommentsFilterBarFingerprint
import app.revanced.patches.youtube.layout.theme.fingerprints.LithoThemeFingerprint
@Name("comment-filter-bar-theme")
@Description("Applies custom theming to comments filter action bar.")
@Name("litho-components-theme")
@Description("Applies a custom theme to litho components.")
@ThemeCompatibility
@Version("0.0.1")
class CommentsFilterBarPatch : BytecodePatch(
class LithoThemePatch : BytecodePatch(
listOf(
CommentsFilterBarFingerprint
LithoThemeFingerprint
)
) {
override fun execute(context: BytecodeContext): PatchResult {
val result = CommentsFilterBarFingerprint.result!!
val result = LithoThemeFingerprint.result!!
val method = result.mutableMethod
val patchIndex = result.scanResult.patternScanResult!!.endIndex - 1
method.addInstructions(
patchIndex, """
invoke-static {}, Lapp/revanced/integrations/utils/ThemeHelper;->isDarkTheme()Z
move-result v2
if-nez v2, :comments_filter_white
const v1, -0x1
if-ne v1, p1, :comments_filter_white
const/4 p1, 0x0
:comments_filter_white
if-eqz v2, :comments_filter_dark
const v1, -0xdededf
if-ne v1, p1, :comments_filter_dark
const/4 p1, 0x0
""", listOf(ExternalLabel("comments_filter_dark", method.instruction(patchIndex)))
invoke-static {p1}, Lapp/revanced/integrations/patches/LithoThemePatch;->applyLithoTheme(I)I
move-result p1
"""
)
return PatchResultSuccess()
}
@@ -14,7 +14,7 @@ import app.revanced.util.resources.ResourceUtils.copyResources
import org.w3c.dom.Element
@Patch
@DependsOn([CommentsFilterBarPatch::class, FixLocaleConfigErrorPatch::class])
@DependsOn([LithoThemePatch::class, FixLocaleConfigErrorPatch::class])
@Name("theme")
@Description("Applies a custom theme.")
@ThemeCompatibility