fix(YouTube - Overlay buttons): Overlay buttons do not disappear immediately when fullscreen button is clicked

This commit is contained in:
inotia00 2025-01-03 22:12:35 +09:00
parent 2760fce646
commit f5834ab742
8 changed files with 23 additions and 5 deletions

View File

@ -106,7 +106,7 @@ public class PlayerControlsPatch {
}
}
private static void changeVisibilityNegatedImmediately() {
public static void changeVisibilityNegatedImmediately() {
// AlwaysRepeat.changeVisibilityNegatedImmediate();
// CopyVideoUrl.changeVisibilityNegatedImmediate();
// CopyVideoUrlTimestamp.changeVisibilityNegatedImmediate();

View File

@ -31,7 +31,7 @@ enum class BottomSheetState {
onChange(currentBottomSheetState)
}
@Volatile // value is read/write from different threads
@Volatile // Read/write from different threads.
private var currentBottomSheetState = CLOSED
/**

View File

@ -40,7 +40,7 @@ enum class LockModeState {
onChange(value)
}
@Volatile // value is read/write from different threads
@Volatile // Read/write from different threads.
private var currentLockModeState = LOCK_MODE_STATE_ENUM_UNKNOWN
/**

View File

@ -38,6 +38,7 @@ enum class PlayerControlsVisibility {
currentPlayerControlsVisibility = value
}
@Volatile // Read/write from different threads.
private var currentPlayerControlsVisibility: PlayerControlsVisibility? = null
}
}

View File

@ -71,7 +71,7 @@ enum class PlayerType {
onChange(value)
}
@Volatile // value is read/write from different threads
@Volatile // Read/write from different threads.
private var currentPlayerType = NONE
/**

View File

@ -31,7 +31,7 @@ enum class ShortsPlayerState {
onChange(value)
}
@Volatile // value is read/write from different threads
@Volatile // Read/write from different threads.
private var currentShortsPlayerState = CLOSED
/**

View File

@ -39,6 +39,7 @@ enum class VideoState {
currentVideoState = value
}
@Volatile // Read/write from different threads.
private var currentVideoState: VideoState? = null
}
}

View File

@ -9,8 +9,11 @@ import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patches.youtube.utils.extension.Constants.UTILS_PATH
import app.revanced.patches.youtube.utils.extension.sharedExtensionPatch
import app.revanced.patches.youtube.utils.fullscreen.enterFullscreenMethod
import app.revanced.patches.youtube.utils.fullscreen.fullscreenButtonHookPatch
import app.revanced.patches.youtube.utils.playerButtonsResourcesFingerprint
import app.revanced.patches.youtube.utils.playerButtonsVisibilityFingerprint
import app.revanced.patches.youtube.utils.playservice.is_19_23_or_greater
import app.revanced.patches.youtube.utils.playservice.is_19_25_or_greater
import app.revanced.patches.youtube.utils.playservice.versionCheckPatch
import app.revanced.patches.youtube.utils.resourceid.sharedResourceIdPatch
@ -46,6 +49,7 @@ private val playerControlsBytecodePatch = bytecodePatch(
sharedExtensionPatch,
sharedResourceIdPatch,
versionCheckPatch,
fullscreenButtonHookPatch,
)
execute {
@ -114,6 +118,18 @@ private val playerControlsBytecodePatch = bytecodePatch(
// endregion
// region patch for fix buttons do not hide immediately when fullscreen button is clicked
// Reproduced only in RVX
if (is_19_23_or_greater) {
enterFullscreenMethod.addInstruction(
0,
"invoke-static {}, $EXTENSION_PLAYER_CONTROLS_CLASS_DESCRIPTOR->changeVisibilityNegatedImmediately()V"
)
}
// endregion
// region patch initialize of overlay button or SponsorBlock button
mapOf(