From 29b265d8fdaa48502650be9623bfc518a57a0bb1 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Tue, 18 Feb 2025 09:26:30 +0200 Subject: [PATCH] fix(YouTube - Hide video action buttons): Move 'Disable Like and Subscribe glow' to action buttons settings menu --- .../patches/components/ButtonsFilter.java | 24 +++++++++++++++++-- .../components/LayoutComponentsFilter.java | 19 --------------- .../extension/youtube/settings/Settings.java | 2 +- .../layout/buttons/action/HideButtonsPatch.kt | 1 + .../hide/general/HideLayoutComponentsPatch.kt | 1 - .../resources/addresources/values/strings.xml | 6 ++--- 6 files changed, 27 insertions(+), 26 deletions(-) diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java index 35337bee0..ce8ac8474 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java @@ -6,8 +6,12 @@ import app.revanced.extension.youtube.settings.Settings; @SuppressWarnings("unused") final class ButtonsFilter extends Filter { + private static final String COMPACT_CHANNEL_BAR_PATH_PREFIX = "compact_channel_bar.eml"; + private static final String VIDEO_ACTION_BAR_PATH_PREFIX = "video_action_bar.eml"; private static final String VIDEO_ACTION_BAR_PATH = "video_action_bar.eml"; + private static final String ANIMATED_VECTOR_TYPE_PATH = "AnimatedVectorType"; + private final StringFilterGroup likeSubscribeGlow; private final StringFilterGroup actionBarGroup; private final StringFilterGroup bufferFilterPathGroup; private final ByteArrayFilterGroupList bufferButtonsGroupList = new ByteArrayFilterGroupList(); @@ -20,11 +24,19 @@ final class ButtonsFilter extends Filter { addIdentifierCallbacks(actionBarGroup); + likeSubscribeGlow = new StringFilterGroup( + Settings.DISABLE_LIKE_SUBSCRIBE_GLOW, + "animated_button_border.eml" + ); + bufferFilterPathGroup = new StringFilterGroup( null, "|ContainerType|button.eml|" ); + addPathCallbacks( + likeSubscribeGlow, + bufferFilterPathGroup, new StringFilterGroup( Settings.HIDE_LIKE_DISLIKE_BUTTON, "|segmented_like_dislike_button" @@ -40,8 +52,7 @@ final class ButtonsFilter extends Filter { new StringFilterGroup( Settings.HIDE_CLIP_BUTTON, "|clip_button.eml|" - ), - bufferFilterPathGroup + ) ); bufferButtonsGroupList.addAll( @@ -83,6 +94,15 @@ final class ButtonsFilter extends Filter { @Override boolean isFiltered(@Nullable String identifier, String path, byte[] protobufBufferArray, StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) { + if (matchedGroup == likeSubscribeGlow) { + if ((path.startsWith(VIDEO_ACTION_BAR_PATH_PREFIX) || path.startsWith(COMPACT_CHANNEL_BAR_PATH_PREFIX)) + && path.contains(ANIMATED_VECTOR_TYPE_PATH)) { + return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); + } + + return false; + } + // If the current matched group is the action bar group, // in case every filter group is enabled, hide the action bar. if (matchedGroup == actionBarGroup) { 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 23b609328..4462ca03b 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 @@ -16,10 +16,6 @@ import app.revanced.extension.youtube.shared.PlayerType; @SuppressWarnings("unused") public final class LayoutComponentsFilter extends Filter { - private static final String COMPACT_CHANNEL_BAR_PATH_PREFIX = "compact_channel_bar.eml"; - private static final String VIDEO_ACTION_BAR_PATH_PREFIX = "video_action_bar.eml"; - private static final String ANIMATED_VECTOR_TYPE_PATH = "AnimatedVectorType"; - private static final StringTrieSearch mixPlaylistsExceptions = new StringTrieSearch( "V.ED", // Playlist browse id. "java.lang.ref.WeakReference" @@ -43,7 +39,6 @@ public final class LayoutComponentsFilter extends Filter { private final StringFilterGroup compactChannelBarInner; private final StringFilterGroup compactChannelBarInnerButton; private final ByteArrayFilterGroup joinMembershipButton; - private final StringFilterGroup likeSubscribeGlow; private final StringFilterGroup horizontalShelves; public LayoutComponentsFilter() { @@ -219,10 +214,6 @@ public final class LayoutComponentsFilter extends Filter { "sponsorships" ); - likeSubscribeGlow = new StringFilterGroup( - Settings.DISABLE_LIKE_SUBSCRIBE_GLOW, - "animated_button_border.eml" - ); final var channelWatermark = new StringFilterGroup( Settings.HIDE_VIDEO_CHANNEL_WATERMARK, @@ -256,7 +247,6 @@ public final class LayoutComponentsFilter extends Filter { expandableMetadata, inFeedSurvey, notifyMe, - likeSubscribeGlow, compactChannelBar, communityPosts, paidPromotion, @@ -308,15 +298,6 @@ public final class LayoutComponentsFilter extends Filter { return false; } - if (matchedGroup == likeSubscribeGlow) { - if ((path.startsWith(VIDEO_ACTION_BAR_PATH_PREFIX) || path.startsWith(COMPACT_CHANNEL_BAR_PATH_PREFIX)) - && path.contains(ANIMATED_VECTOR_TYPE_PATH)) { - return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); - } - - return false; - } - // The groups are excluded from the filter due to the exceptions list below. // Filter them separately here. if (matchedGroup == notifyMe || matchedGroup == inFeedSurvey || matchedGroup == expandableMetadata) 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 c00b861c0..a82d48e34 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 @@ -124,7 +124,6 @@ public class Settings extends BaseSettings { public static final BooleanSetting COPY_VIDEO_URL = new BooleanSetting("revanced_copy_video_url", FALSE); public static final BooleanSetting COPY_VIDEO_URL_TIMESTAMP = new BooleanSetting("revanced_copy_video_url_timestamp", TRUE); public static final BooleanSetting DISABLE_FULLSCREEN_AMBIENT_MODE = new BooleanSetting("revanced_disable_fullscreen_ambient_mode", TRUE, true); - public static final BooleanSetting DISABLE_LIKE_SUBSCRIBE_GLOW = new BooleanSetting("revanced_disable_like_subscribe_glow", FALSE); public static final BooleanSetting DISABLE_ROLLING_NUMBER_ANIMATIONS = new BooleanSetting("revanced_disable_rolling_number_animations", FALSE); public static final BooleanSetting DISABLE_SUGGESTED_VIDEO_END_SCREEN = new BooleanSetting("revanced_disable_suggested_video_end_screen", FALSE, true); public static final EnumSetting EXIT_FULLSCREEN = new EnumSetting<>("revanced_exit_fullscreen", FullscreenMode.DISABLED); @@ -185,6 +184,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting HIDE_PODCAST_SECTION = new BooleanSetting("revanced_hide_podcast_section", TRUE); public static final BooleanSetting HIDE_TRANSCRIPT_SECTION = new BooleanSetting("revanced_hide_transcript_section", TRUE); // Action buttons + public static final BooleanSetting DISABLE_LIKE_SUBSCRIBE_GLOW = new BooleanSetting("revanced_disable_like_subscribe_glow", FALSE); public static final BooleanSetting HIDE_CLIP_BUTTON = new BooleanSetting("revanced_hide_clip_button", TRUE); public static final BooleanSetting HIDE_DOWNLOAD_BUTTON = new BooleanSetting("revanced_hide_download_button", FALSE); public static final BooleanSetting HIDE_LIKE_DISLIKE_BUTTON = new BooleanSetting("revanced_hide_like_dislike_button", FALSE); diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt index 7b36f3648..8bfa54d22 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt @@ -39,6 +39,7 @@ val hideButtonsPatch = resourcePatch( PreferenceScreenPreference( "revanced_hide_buttons_screen", preferences = setOf( + SwitchPreference("revanced_disable_like_subscribe_glow"), SwitchPreference("revanced_hide_like_dislike_button"), SwitchPreference("revanced_hide_share_button"), SwitchPreference("revanced_hide_report_button"), 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 2159229ed..9354115c5 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 @@ -172,7 +172,6 @@ val hideLayoutComponentsPatch = bytecodePatch( SwitchPreference("revanced_hide_emergency_box"), SwitchPreference("revanced_hide_info_panels"), SwitchPreference("revanced_hide_join_membership_button"), - SwitchPreference("revanced_disable_like_subscribe_glow"), SwitchPreference("revanced_hide_medical_panels"), SwitchPreference("revanced_hide_quick_actions"), SwitchPreference("revanced_hide_related_videos"), diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index d4c3f4749..336df4bd0 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -169,9 +169,6 @@ Tap the continue button and allow optimization changes." You will not be notified of any unexpected events." - Disable Like and Subscribe glow - Like and Subscribe button will not glow when mentioned - Like and Subscribe button will glow when mentioned Hide album cards Album cards are hidden Album cards are shown @@ -535,6 +532,9 @@ Adjust volume by swiping vertically on the right side of the screen" Action buttons Hide or show buttons under videos + Disable Like and Subscribe glow + Like and Subscribe button will not glow when mentioned + Like and Subscribe button will glow when mentioned Hide Like and Dislike Like and Dislike buttons are hidden Like and Dislike buttons are shown