diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt index da75bbcbd..cf863f8cc 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/player/components/PlayerComponentsPatch.kt @@ -28,6 +28,7 @@ import app.revanced.patches.youtube.player.components.fingerprints.QuickSeekOver import app.revanced.patches.youtube.player.components.fingerprints.SeekEduContainerFingerprint import app.revanced.patches.youtube.player.components.fingerprints.SuggestedActionsFingerprint import app.revanced.patches.youtube.player.components.fingerprints.TouchAreaOnClickListenerFingerprint +import app.revanced.patches.youtube.player.components.fingerprints.VideoZoomSnapIndicatorFingerprint import app.revanced.patches.youtube.player.components.fingerprints.WatermarkFingerprint import app.revanced.patches.youtube.player.components.fingerprints.WatermarkParentFingerprint import app.revanced.patches.youtube.player.speedoverlay.SpeedOverlayPatch @@ -90,6 +91,7 @@ object PlayerComponentsPatch : BaseBytecodePatch( StartVideoInformerFingerprint, SuggestedActionsFingerprint, TouchAreaOnClickListenerFingerprint, + VideoZoomSnapIndicatorFingerprint, WatermarkParentFingerprint, YouTubeControlsOverlayFingerprint, ) @@ -394,6 +396,21 @@ object PlayerComponentsPatch : BaseBytecodePatch( // endregion + // region patch for hide video zoom overlay + + VideoZoomSnapIndicatorFingerprint.resultOrThrow().mutableMethod.apply { + addInstructionsWithLabels( + 0, """ + invoke-static {}, $PLAYER_CLASS_DESCRIPTOR->hideZoomOverlay()Z + move-result v0 + if-eqz v0, :shown + return-void + """, ExternalLabel("shown", getInstruction(0)) + ) + } + + // endregion + LithoFilterPatch.addFilter(PLAYER_COMPONENTS_FILTER_CLASS_DESCRIPTOR) /** diff --git a/src/main/kotlin/app/revanced/patches/youtube/player/components/fingerprints/VideoZoomSnapIndicatorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/player/components/fingerprints/VideoZoomSnapIndicatorFingerprint.kt new file mode 100644 index 000000000..f03138eb5 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/player/components/fingerprints/VideoZoomSnapIndicatorFingerprint.kt @@ -0,0 +1,12 @@ +package app.revanced.patches.youtube.player.components.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.VideoZoomSnapIndicator +import app.revanced.util.fingerprint.LiteralValueFingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +internal object VideoZoomSnapIndicatorFingerprint : LiteralValueFingerprint( + returnType = "V", + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + literalSupplier = { VideoZoomSnapIndicator } +) diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/resourceid/SharedResourceIdPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/resourceid/SharedResourceIdPatch.kt index a696b5919..3a5bca2e5 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/resourceid/SharedResourceIdPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/resourceid/SharedResourceIdPatch.kt @@ -110,6 +110,7 @@ object SharedResourceIdPatch : ResourcePatch() { var VideoQualityBottomSheet = -1L var VarispeedUnavailableTitle = -1L var VideoQualityUnavailableAnnouncement = -1L + var VideoZoomSnapIndicator = -1L var VoiceSearch = -1L var YouTubeControlsOverlaySubtitleButton = -1L var YtOutlinePictureInPictureWhite = -1L @@ -218,6 +219,7 @@ object SharedResourceIdPatch : ResourcePatch() { VarispeedUnavailableTitle = getId(STRING, "varispeed_unavailable_title") VideoQualityUnavailableAnnouncement = getId(STRING, "video_quality_unavailable_announcement") + VideoZoomSnapIndicator = getId(ID, "video_zoom_snap_indicator") VoiceSearch = getId(ID, "voice_search") YouTubeControlsOverlaySubtitleButton = getId(LAYOUT, "youtube_controls_overlay_subtitle_button") @@ -228,4 +230,4 @@ object SharedResourceIdPatch : ResourcePatch() { YtWordMarkHeader = getId(ATTR, "ytWordmarkHeader") } -} \ No newline at end of file +} diff --git a/src/main/resources/youtube/settings/host/values/strings.xml b/src/main/resources/youtube/settings/host/values/strings.xml index 79ab3c6c4..e8802fd02 100644 --- a/src/main/resources/youtube/settings/host/values/strings.xml +++ b/src/main/resources/youtube/settings/host/values/strings.xml @@ -570,6 +570,9 @@ Note: Autoplay can be changed in YouTube settings: Settings → Autoplay → Autoplay next video" Suggested video end screen is shown. + Hide zoom overlay + Zoom overlay is hidden. + Zoom overlay is shown. Skip autoplay countdown If autoplay is enabled, the next video will play immediately. If autoplay is enabled, the next video will play after the countdown ends. diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 5851952c2..5874def65 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -454,7 +454,8 @@ - SETTINGS: PLAYER_COMPONENTS --> + + SETTINGS: PLAYER_COMPONENTS --> @@ -744,4 +745,4 @@ - \ No newline at end of file +