From add72326199e90f677b450b553b9d88c0bb4c490 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 13 Jul 2022 13:36:09 +0200 Subject: [PATCH] fix: constrain `old-quality-layout` to older version --- .../annotations/OldQualityLayoutCompatibility.kt | 2 +- .../patch/OldQualityLayoutPatch.kt | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/annotations/OldQualityLayoutCompatibility.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/annotations/OldQualityLayoutCompatibility.kt index d14dfe077..5c99f7546 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/annotations/OldQualityLayoutCompatibility.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/annotations/OldQualityLayoutCompatibility.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Package @Compatibility( [Package( - "com.google.android.youtube", arrayOf("17.17.34", "17.19.36", "17.20.37", "17.22.36", "17.23.35", "17.23.36", "17.24.34", "17.24.35", "17.25.34", "17.26.35") + "com.google.android.youtube", arrayOf("17.17.34", "17.19.36", "17.20.37", "17.22.36", "17.23.35", "17.23.36", "17.24.34", "17.24.35") )] ) @Target(AnnotationTarget.CLASS) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/patch/OldQualityLayoutPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/patch/OldQualityLayoutPatch.kt index d36472562..6fb1e3d50 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/patch/OldQualityLayoutPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/patch/OldQualityLayoutPatch.kt @@ -37,15 +37,23 @@ class OldQualityLayoutPatch : BytecodePatch( val implementation = result.mutableMethod.implementation!! + // use this register because it is free + val containerRegister = 5 + // if useOldStyleQualitySettings == true, jump over all instructions - val jmpInstruction = BuilderInstruction21t( - Opcode.IF_NEZ, 0, implementation.instructions[result.patternScanResult!!.endIndex].location.labels.first() + implementation.addInstruction( + 4, BuilderInstruction21t( + Opcode.IF_NEZ, + containerRegister, + implementation.instructions[result.patternScanResult!!.endIndex].location.labels.first() + ) ) - implementation.addInstruction(5, jmpInstruction) + + // insert the new condition result.mutableMethod.addInstructions( 0, """ invoke-static { }, Lapp/revanced/integrations/patches/OldStyleQualityPatch;->useOldStyleQualitySettings()Z - move-result v0 + move-result v$containerRegister """ )