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 a35bb9e9e..33ac4adc4 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 @@ -35,9 +35,12 @@ public final class LayoutComponentsFilter extends Filter { "&list=" ); + private static final String PAGE_HEADER_PATH = "page_header.e"; + private final StringTrieSearch exceptions = new StringTrieSearch(); private final StringFilterGroup communityPosts; private final StringFilterGroup surveys; + private final StringFilterGroup subscribeButton; private final StringFilterGroup notifyMe; private final StringFilterGroup singleItemInformationPanel; private final StringFilterGroup expandableMetadata; @@ -262,7 +265,7 @@ public final class LayoutComponentsFilter extends Filter { channelProfile = new StringFilterGroup( null, "channel_profile.e", - "page_header.e" + PAGE_HEADER_PATH ); channelProfileBuffer = new ByteArrayFilterGroupList(); channelProfileBuffer.addAll(new ByteArrayFilterGroup( @@ -276,13 +279,14 @@ public final class LayoutComponentsFilter extends Filter { new ByteArrayFilterGroup( Settings.HIDE_JOIN_BUTTON, "sponsor_button" - ), - new ByteArrayFilterGroup( - Settings.HIDE_SUBSCRIBE_BUTTON_IN_CHANNEL_PAGE, - "subscribe_menu" ) ); + subscribeButton = new StringFilterGroup( + Settings.HIDE_SUBSCRIBE_BUTTON_IN_CHANNEL_PAGE, + "subscribe_button" + ); + horizontalShelves = new StringFilterGroup( Settings.HIDE_HORIZONTAL_SHELVES, "horizontal_video_shelf.e", @@ -322,6 +326,7 @@ public final class LayoutComponentsFilter extends Filter { quickActions, relatedVideos, singleItemInformationPanel, + subscribeButton, subscribersCommunityGuidelines, subscriptionsChipBar, surveys, @@ -352,6 +357,10 @@ public final class LayoutComponentsFilter extends Filter { return channelProfileBuffer.check(buffer).isFiltered(); } + if (matchedGroup == subscribeButton) { + return path.startsWith(PAGE_HEADER_PATH); + } + if (matchedGroup == communityPosts && NavigationBar.isBackButtonVisible()) { // Allow community posts on channel profile page, // or if viewing an individual channel in the feed.