diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java index fc2cc8099..2408ac81c 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java @@ -3,7 +3,7 @@ package app.revanced.extension.youtube.patches.components; import app.revanced.extension.shared.settings.Setting; import app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch; import app.revanced.extension.youtube.settings.Settings; -import app.revanced.extension.youtube.shared.PlayerType; +import app.revanced.extension.youtube.shared.ShortsPlayerState; @SuppressWarnings("unused") public class PlayerFlyoutMenuItemsFilter extends Filter { @@ -20,17 +20,9 @@ public class PlayerFlyoutMenuItemsFilter extends Filter { } private final ByteArrayFilterGroupList flyoutFilterGroupList = new ByteArrayFilterGroupList(); - - private final ByteArrayFilterGroup exception; private final StringFilterGroup videoQualityMenuFooter; public PlayerFlyoutMenuItemsFilter() { - exception = new ByteArrayFilterGroup( - // Whitelist Quality menu item when "Hide Additional settings menu" is enabled - Settings.HIDE_PLAYER_FLYOUT_ADDITIONAL_SETTINGS, - "quality_sheet" - ); - videoQualityMenuFooter = new StringFilterGroup( Settings.HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER, "quality_sheet_footer" @@ -44,11 +36,11 @@ public class PlayerFlyoutMenuItemsFilter extends Filter { flyoutFilterGroupList.addAll( new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_CAPTIONS, - "closed_caption" + "closed_caption_" ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_ADDITIONAL_SETTINGS, - "yt_outline_gear" + "yt_outline_gear_" ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_LOOP_VIDEO, @@ -56,31 +48,31 @@ public class PlayerFlyoutMenuItemsFilter extends Filter { ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_AMBIENT_MODE, - "yt_outline_screen_light" + "yt_outline_screen_light_" ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_STABLE_VOLUME, - "volume_stable" + "volume_stable_" ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_HELP, - "yt_outline_question_circle" + "yt_outline_question_circle_" ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_MORE_INFO, - "yt_outline_info_circle" + "yt_outline_info_circle_" ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_LOCK_SCREEN, - "yt_outline_lock" + "yt_outline_lock_" ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_SPEED, - "yt_outline_play_arrow_half_circle" + "yt_outline_play_arrow_half_circle_" ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_AUDIO_TRACK, - "yt_outline_person_radar" + "yt_outline_person_radar_" ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_SLEEP_TIMER, @@ -88,7 +80,11 @@ public class PlayerFlyoutMenuItemsFilter extends Filter { ), new ByteArrayFilterGroup( Settings.HIDE_PLAYER_FLYOUT_WATCH_IN_VR, - "yt_outline_vr" + "yt_outline_vr_" + ), + new ByteArrayFilterGroup( + Settings.HIDE_PLAYER_FLYOUT_VIDEO_QUALITY, + "yt_outline_adjust_" ) ); } @@ -105,7 +101,7 @@ public class PlayerFlyoutMenuItemsFilter extends Filter { } // Shorts also use this player flyout panel - if (PlayerType.getCurrent().isNoneOrHidden() || exception.check(buffer).isFiltered()) { + if (ShortsPlayerState.isOpen()) { return false; } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java index d279287f0..1798b3b85 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java @@ -244,6 +244,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting HIDE_PLAYER_FLYOUT_SPEED = new BooleanSetting("revanced_hide_player_flyout_speed", FALSE); public static final BooleanSetting HIDE_PLAYER_FLYOUT_STABLE_VOLUME = new BooleanSetting("revanced_hide_player_flyout_stable_volume", FALSE); public static final BooleanSetting HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER = new BooleanSetting("revanced_hide_player_flyout_video_quality_footer", FALSE); + public static final BooleanSetting HIDE_PLAYER_FLYOUT_VIDEO_QUALITY = new BooleanSetting("revanced_hide_player_flyout_video_quality", FALSE); public static final BooleanSetting HIDE_PLAYER_FLYOUT_WATCH_IN_VR = new BooleanSetting("revanced_hide_player_flyout_watch_in_vr", TRUE); // General layout diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt index 716540a4c..b18525c4c 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt @@ -57,6 +57,7 @@ val hidePlayerFlyoutMenuPatch = bytecodePatch( ), SwitchPreference("revanced_hide_player_flyout_watch_in_vr"), SwitchPreference("revanced_hide_player_flyout_sleep_timer"), + SwitchPreference("revanced_hide_player_flyout_video_quality"), SwitchPreference("revanced_hide_player_flyout_video_quality_footer"), ), ), diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index 351d184ec..e4d8ad112 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -756,6 +756,9 @@ To show the Audio track menu, change \'Spoof video streams\' to iOS TV" Hide Watch in VR Watch in VR menu is hidden Watch in VR menu is shown + Hide video quality menu + Video quality menu is hidden + Video quality menu is shown Hide video quality menu footer Video quality menu footer is hidden Video quality menu footer is shown