From 91d1aabd32be1607019bc443fb06284ca3343e9d Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Thu, 25 May 2023 21:34:38 +0400 Subject: [PATCH] fix(youtube/hide-player-buttons): fix previous/next button showing if previous video exists (#2261) --- .../buttons/player/hide/patch/HidePlayerButtonsPatch.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/patch/HidePlayerButtonsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/patch/HidePlayerButtonsPatch.kt index 3b22d811c..8a7d51347 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/patch/HidePlayerButtonsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/patch/HidePlayerButtonsPatch.kt @@ -31,6 +31,7 @@ class HidePlayerButtonsPatch : BytecodePatch( ) { private object ParameterOffsets { const val HAS_NEXT = 5 + const val HAS_PREVIOUS = 6 } override fun execute(context: BytecodeContext): PatchResult { @@ -58,13 +59,16 @@ class HidePlayerButtonsPatch : BytecodePatch( // overriding this parameter register hides the previous and next buttons val hasNextParameterRegister = callInstruction.startRegister + ParameterOffsets.HAS_NEXT + val hasPreviousParameterRegister = callInstruction.startRegister + ParameterOffsets.HAS_PREVIOUS mutableMethod.addInstructions( callIndex, """ - invoke-static { }, Lapp/revanced/integrations/patches/HidePlayerButtonsPatch;->hideButtons()Z + invoke-static { v$hasNextParameterRegister }, Lapp/revanced/integrations/patches/HidePlayerButtonsPatch;->previousOrNextButtonIsVisible(Z)Z move-result v$hasNextParameterRegister - xor-int/lit8 v$hasNextParameterRegister, v$hasNextParameterRegister, 1 + + invoke-static { v$hasPreviousParameterRegister }, Lapp/revanced/integrations/patches/HidePlayerButtonsPatch;->previousOrNextButtonIsVisible(Z)Z + move-result v$hasPreviousParameterRegister """ ) } ?: return PlayerControlsVisibilityModelFingerprint.toErrorResult()