feat(YouTube/Player components): add Hide zoom overlay setting (#67)

* Update SharedResourceIdPatch.kt

* Add patches

* Add fingerprints

* Update strings.xml

* Update revanced_prefs.xml

* feat: apply code review suggestions

* feat: apply code review suggestions

---------

Co-authored-by: inotia00 <108592928+inotia00@users.noreply.github.com>
This commit is contained in:
Mizuki 2024-07-26 13:59:40 +07:00 committed by GitHub
parent efb4123831
commit 87d0eecb83
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 38 additions and 3 deletions

View File

@ -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)
/**

View File

@ -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 }
)

View File

@ -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")

View File

@ -570,6 +570,9 @@ Note:
Autoplay can be changed in YouTube settings:
Settings → Autoplay → Autoplay next video"</string>
<string name="revanced_hide_suggested_video_end_screen_summary_off">Suggested video end screen is shown.</string>
<string name="revanced_hide_zoom_overlay_title">Hide zoom overlay</string>
<string name="revanced_hide_zoom_overlay_summary_on">Zoom overlay is hidden.</string>
<string name="revanced_hide_zoom_overlay_summary_off">Zoom overlay is shown.</string>
<string name="revanced_skip_autoplay_countdown_title">Skip autoplay countdown</string>
<string name="revanced_skip_autoplay_countdown_summary_on">If autoplay is enabled, the next video will play immediately.</string>
<string name="revanced_skip_autoplay_countdown_summary_off">If autoplay is enabled, the next video will play after the countdown ends.</string>

View File

@ -454,7 +454,8 @@
<SwitchPreference android:title="@string/revanced_hide_suggested_actions_title" android:key="revanced_hide_suggested_actions" android:summaryOn="@string/revanced_hide_suggested_actions_summary_on" android:summaryOff="@string/revanced_hide_suggested_actions_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_timed_reactions_title" android:key="revanced_hide_timed_reactions" android:summaryOn="@string/revanced_hide_timed_reactions_summary_on" android:summaryOff="@string/revanced_hide_timed_reactions_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_suggested_video_end_screen_title" android:key="revanced_hide_suggested_video_end_screen" android:summaryOn="@string/revanced_hide_suggested_video_end_screen_summary_on" android:summaryOff="@string/revanced_hide_suggested_video_end_screen_summary_off" />
<SwitchPreference android:title="@string/revanced_skip_autoplay_countdown_title" android:key="revanced_skip_autoplay_countdown" android:summaryOn="@string/revanced_skip_autoplay_countdown_summary_on" android:summaryOff="@string/revanced_skip_autoplay_countdown_summary_off" />SETTINGS: PLAYER_COMPONENTS -->
<SwitchPreference android:title="@string/revanced_skip_autoplay_countdown_title" android:key="revanced_skip_autoplay_countdown" android:summaryOn="@string/revanced_skip_autoplay_countdown_summary_on" android:summaryOff="@string/revanced_skip_autoplay_countdown_summary_off" />
<SwitchPreference android:title="@string/revanced_hide_zoom_overlay_title" android:key="revanced_hide_zoom_overlay" android:summaryOn="@string/revanced_hide_zoom_overlay_summary_on" android:summaryOff="@string/revanced_hide_zoom_overlay_summary_off" />SETTINGS: PLAYER_COMPONENTS -->
<!-- PREFERENCE_SCREEN: PLAYER
</PreferenceScreen>PREFERENCE_SCREEN: PLAYER -->