From 96dc5cff5d2aa22a730bcfe2e6fff09d88340091 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Fri, 27 Sep 2024 19:00:43 +0900 Subject: [PATCH] fix(YouTube Music/Flyout menu components): unable to patch due to incorrect format --- .../components/FlyoutMenuComponentsPatch.kt | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/music/flyoutmenu/components/FlyoutMenuComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/music/flyoutmenu/components/FlyoutMenuComponentsPatch.kt index 670cc09dc..b3356171f 100644 --- a/src/main/kotlin/app/revanced/patches/music/flyoutmenu/components/FlyoutMenuComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/flyoutmenu/components/FlyoutMenuComponentsPatch.kt @@ -104,31 +104,30 @@ object FlyoutMenuComponentsPatch : BaseBytecodePatch( val onCheckedChangedListenerDefiningClass = (onCheckedChangedListenerReference as MethodReference).definingClass - val onCheckedChangedMethod = - context.findMethodOrThrow(onCheckedChangedListenerDefiningClass) { - name == "onCheckedChanged" + context.findMethodOrThrow(onCheckedChangedListenerDefiningClass) { + name == "onCheckedChanged" + }.apply { + val onCheckedChangedWalkerIndex = + indexOfFirstInstructionOrThrow { + val reference = getReference() + opcode == Opcode.INVOKE_VIRTUAL + && reference?.returnType == "V" + && reference.parameterTypes.size == 1 + && reference.parameterTypes[0] == "Z" + } + + getWalkerMethod(context, onCheckedChangedWalkerIndex).apply { + val insertIndex = indexOfFirstInstructionOrThrow(Opcode.MOVE_RESULT) + val insertRegister = + getInstruction(insertIndex).registerA + + addInstructions( + insertIndex + 1, """ + invoke-static {v$insertRegister}, $FLYOUT_CLASS_DESCRIPTOR->enableTrimSilenceSwitch(Z)Z + move-result v$insertRegister + """ + ) } - - val onCheckedChangedWalkerIndex = - onCheckedChangedMethod.indexOfFirstInstructionOrThrow { - val reference = getReference() - opcode == Opcode.INVOKE_VIRTUAL - && reference?.returnType == "V" - && reference.parameterTypes.size == 1 - && reference.parameterTypes[0] == "Z" - } - - getWalkerMethod(context, onCheckedChangedWalkerIndex).apply { - val insertIndex = indexOfFirstInstructionOrThrow(Opcode.MOVE_RESULT) - val insertRegister = - getInstruction(insertIndex).registerA - - addInstructions( - insertIndex + 1, """ - invoke-static {v$insertRegister}, $FLYOUT_CLASS_DESCRIPTOR->enableTrimSilenceSwitch(Z)Z - move-result v$insertRegister - """ - ) } } }