From b945e2f44b1a62326e6d45345c1467668d803f53 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Tue, 26 Mar 2024 01:36:13 +0100 Subject: [PATCH] fix(YouTube - Hide layout components): Correctly hide Join button --- .../components/LayoutComponentsFilter.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/components/LayoutComponentsFilter.java b/app/src/main/java/app/revanced/integrations/youtube/patches/components/LayoutComponentsFilter.java index a260c04e..def0c6d4 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/components/LayoutComponentsFilter.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/components/LayoutComponentsFilter.java @@ -29,6 +29,8 @@ public final class LayoutComponentsFilter extends Filter { private final StringFilterGroup expandableMetadata; private final ByteArrayFilterGroup searchResultRecommendations; private final StringFilterGroup searchResultVideo; + private final StringFilterGroup compactChannelBarInner; + private final ByteArrayFilterGroup joinMembership; static { mixPlaylistsExceptions.addPatterns( @@ -194,9 +196,14 @@ public final class LayoutComponentsFilter extends Filter { "set_reminder_button" ); - final var joinMembership = new StringFilterGroup( + compactChannelBarInner = new StringFilterGroup( Settings.HIDE_JOIN_MEMBERSHIP_BUTTON, - "compact_sponsor_button" + "compact_channel_bar_inner" + ); + + joinMembership = new ByteArrayFilterGroup( + Settings.HIDE_JOIN_MEMBERSHIP_BUTTON, + "Join this channel" ); final var channelWatermark = new StringFilterGroup( @@ -233,7 +240,7 @@ public final class LayoutComponentsFilter extends Filter { quickActions, relatedVideos, compactBanner, - joinMembership, + compactChannelBarInner, medicalPanel, videoQualityMenuFooter, infoPanel, @@ -258,6 +265,12 @@ public final class LayoutComponentsFilter extends Filter { } } + if (matchedGroup == compactChannelBarInner) { + if (joinMembership.check(protobufBufferArray).isFiltered()){ + return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); + } + } + // The groups are excluded from the filter due to the exceptions list below. // Filter them separately here. if (matchedGroup == notifyMe || matchedGroup == inFeedSurvey || matchedGroup == expandableMetadata)