diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java index c6c1e1e6e..347491a46 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java @@ -38,6 +38,7 @@ public final class LayoutComponentsFilter extends Filter { private final StringFilterGroup compactChannelBarInnerButton; private final ByteArrayFilterGroup joinMembershipButton; private final StringFilterGroup horizontalShelves; + private final ByteArrayFilterGroup ticketShelf; public LayoutComponentsFilter() { exceptions.addPatterns( @@ -244,6 +245,11 @@ public final class LayoutComponentsFilter extends Filter { "horizontal_tile_shelf.eml" ); + ticketShelf = new ByteArrayFilterGroup( + Settings.HIDE_TICKET_SHELF, + "ticket" + ); + addPathCallbacks( expandableMetadata, inFeedSurvey, @@ -305,7 +311,7 @@ public final class LayoutComponentsFilter extends Filter { } if (matchedGroup == horizontalShelves) { - return contentIndex == 0 && hideShelves(); + return contentIndex == 0 && (hideShelves() || ticketShelf.check(protobufBufferArray).isFiltered()); } return true; 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 98a9a435f..4a36e6458 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 @@ -107,6 +107,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting HIDE_PLAYABLES = new BooleanSetting("revanced_hide_playables", TRUE); public static final BooleanSetting HIDE_SEARCH_RESULT_RECOMMENDATION_LABELS = new BooleanSetting("revanced_hide_search_result_recommendation_labels", TRUE); public static final BooleanSetting HIDE_SHOW_MORE_BUTTON = new BooleanSetting("revanced_hide_show_more_button", TRUE, true); + public static final BooleanSetting HIDE_TICKET_SHELF = new BooleanSetting("revanced_hide_ticket_shelf", FALSE); // Alternative thumbnails public static final EnumSetting ALT_THUMBNAIL_HOME = new EnumSetting<>("revanced_alt_thumbnail_home", ThumbnailOption.ORIGINAL); public static final EnumSetting ALT_THUMBNAIL_SUBSCRIPTIONS = new EnumSetting<>("revanced_alt_thumbnail_subscription", ThumbnailOption.ORIGINAL); diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt index af8e3344b..4eef1ea0b 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt @@ -225,6 +225,7 @@ val hideLayoutComponentsPatch = bytecodePatch( SwitchPreference("revanced_hide_playables"), SwitchPreference("revanced_hide_search_result_recommendation_labels"), SwitchPreference("revanced_hide_show_more_button"), + SwitchPreference("revanced_hide_ticket_shelf"), SwitchPreference("revanced_hide_doodles"), ) diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index ad75215ec..95a31b71f 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -227,6 +227,9 @@ You will not be notified of any unexpected events." Hide \'Show more\' button Button is hidden Button is shown + Hide ticket shelf + Ticket shelf is hidden + Ticket shelf is shown Hide timed reactions Timed reactions are hidden Timed reactions are shown