diff --git a/src/main/kotlin/app/revanced/patches/youtube/flyoutpanel/oldspeedlayout/OldSpeedLayoutPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/flyoutpanel/oldspeedlayout/OldSpeedLayoutPatch.kt index 287ac10da..3bd174885 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/flyoutpanel/oldspeedlayout/OldSpeedLayoutPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/flyoutpanel/oldspeedlayout/OldSpeedLayoutPatch.kt @@ -7,10 +7,10 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWith import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.extensions.or import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.PatchException import app.revanced.patcher.patch.annotation.Patch import app.revanced.patcher.util.proxy.mutableTypes.MutableField.Companion.toMutable import app.revanced.patches.youtube.flyoutpanel.oldspeedlayout.fingerprints.CustomPlaybackSpeedIntegrationsFingerprint -import app.revanced.patches.youtube.flyoutpanel.oldspeedlayout.fingerprints.PlaybackRateBottomSheetBuilderFingerprint import app.revanced.patches.youtube.flyoutpanel.oldspeedlayout.fingerprints.PlaybackRateBottomSheetClassFingerprint import app.revanced.patches.youtube.flyoutpanel.recyclerview.BottomSheetRecyclerViewPatch import app.revanced.patches.youtube.utils.fingerprints.RecyclerViewTreeObserverFingerprint @@ -31,21 +31,28 @@ object OldSpeedLayoutPatch : BytecodePatch( setOf( CustomPlaybackSpeedIntegrationsFingerprint, PlaybackRateBottomSheetClassFingerprint, - PlaybackRateBottomSheetBuilderFingerprint, RecyclerViewTreeObserverFingerprint ) ) { override fun execute(context: BytecodeContext) { /** - * Find the values we need + * Input 'playbackRateBottomSheetClass' in FlyoutPanelPatch. */ - PlaybackRateBottomSheetBuilderFingerprint.result?.let { + PlaybackRateBottomSheetClassFingerprint.result?.let { it.mutableMethod.apply { PLAYBACK_RATE_BOTTOM_SHEET_CLASS = definingClass - PLAYBACK_RATE_BOTTOM_SHEET_BUILDER_METHOD = name + PLAYBACK_RATE_BOTTOM_SHEET_BUILDER_METHOD = + it.mutableClass.methods.find { method -> method.parameters.isEmpty() && method.returnType == "V" } + ?.name + ?: throw PatchException("Could not find PlaybackRateBottomSheetBuilderMethod") + + addInstruction( + 0, + "sput-object p0, $INTEGRATIONS_CLASS_DESCRIPTOR->playbackRateBottomSheetClass:$PLAYBACK_RATE_BOTTOM_SHEET_CLASS" + ) } - } ?: throw PlaybackRateBottomSheetBuilderFingerprint.exception + } ?: throw PlaybackRateBottomSheetClassFingerprint.exception /** * Create a static field in the patch @@ -81,18 +88,6 @@ object OldSpeedLayoutPatch : BytecodePatch( } } ?: throw CustomPlaybackSpeedIntegrationsFingerprint.exception - /** - * Input 'playbackRateBottomSheetClass' in FlyoutPanelPatch. - */ - PlaybackRateBottomSheetClassFingerprint.result?.let { - it.mutableMethod.apply { - addInstruction( - 0, - "sput-object p0, $INTEGRATIONS_CLASS_DESCRIPTOR->playbackRateBottomSheetClass:$PLAYBACK_RATE_BOTTOM_SHEET_CLASS" - ) - } - } ?: throw PlaybackRateBottomSheetClassFingerprint.exception - /** * New method */ diff --git a/src/main/kotlin/app/revanced/patches/youtube/flyoutpanel/oldspeedlayout/fingerprints/PlaybackRateBottomSheetBuilderFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/flyoutpanel/oldspeedlayout/fingerprints/PlaybackRateBottomSheetBuilderFingerprint.kt deleted file mode 100644 index 1e88ab08c..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/flyoutpanel/oldspeedlayout/fingerprints/PlaybackRateBottomSheetBuilderFingerprint.kt +++ /dev/null @@ -1,12 +0,0 @@ -package app.revanced.patches.youtube.flyoutpanel.oldspeedlayout.fingerprints - -import app.revanced.patcher.extensions.or -import app.revanced.patcher.fingerprint.MethodFingerprint -import com.android.tools.smali.dexlib2.AccessFlags - -object PlaybackRateBottomSheetBuilderFingerprint : MethodFingerprint( - returnType = "V", - accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, - parameters = emptyList(), - strings = listOf("PLAYBACK_RATE_MENU_BOTTOM_SHEET_FRAGMENT") -) \ No newline at end of file