From 955f07fe3687d7019f81f46de7463db1b998d582 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Tue, 28 Jan 2025 18:22:17 +0900 Subject: [PATCH] feat(YouTube - Hide layout components): Add `Account menu filter type` setting (Close https://github.com/inotia00/ReVanced_Extended/issues/2574) --- .../youtube/patches/general/GeneralPatch.java | 20 ++++++++++++++----- .../extension/youtube/settings/Settings.java | 1 + .../youtube/settings/host/values/strings.xml | 7 +++++++ .../youtube/settings/xml/revanced_prefs.xml | 1 + 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/general/GeneralPatch.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/general/GeneralPatch.java index db497199e..531af491c 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/general/GeneralPatch.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/general/GeneralPatch.java @@ -171,15 +171,25 @@ public class GeneralPatch { private static void hideAccountMenu(ViewGroup viewGroup, String menuTitleString) { for (String filter : accountMenuBlockList) { - if (!filter.isEmpty() && menuTitleString.equals(filter)) { - if (viewGroup.getLayoutParams() instanceof MarginLayoutParams) - hideViewGroupByMarginLayoutParams(viewGroup); - else - viewGroup.setLayoutParams(new LayoutParams(0, 0)); + if (!filter.isEmpty()) { + if (Settings.HIDE_ACCOUNT_MENU_FILTER_TYPE.get()) { + if (menuTitleString.contains(filter)) + hideViewGroup(viewGroup); + } else { + if (menuTitleString.equals(filter)) + hideViewGroup(viewGroup); + } } } } + private static void hideViewGroup(ViewGroup viewGroup) { + if (viewGroup.getLayoutParams() instanceof MarginLayoutParams) + hideViewGroupByMarginLayoutParams(viewGroup); + else + viewGroup.setLayoutParams(new LayoutParams(0, 0)); + } + public static int hideHandle(int originalValue) { return Settings.HIDE_HANDLE.get() ? 8 : originalValue; } diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java index ad2514dfa..e42cd32c8 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java @@ -161,6 +161,7 @@ public class Settings extends BaseSettings { // PreferenceScreen: General - Account menu public static final BooleanSetting HIDE_ACCOUNT_MENU = new BooleanSetting("revanced_hide_account_menu", FALSE); + public static final BooleanSetting HIDE_ACCOUNT_MENU_FILTER_TYPE = new BooleanSetting("revanced_hide_account_menu_filter_type", FALSE, true, parent(HIDE_ACCOUNT_MENU)); public static final StringSetting HIDE_ACCOUNT_MENU_FILTER_STRINGS = new StringSetting("revanced_hide_account_menu_filter_strings", "", true, parent(HIDE_ACCOUNT_MENU)); public static final BooleanSetting HIDE_HANDLE = new BooleanSetting("revanced_hide_handle", TRUE, true); diff --git a/patches/src/main/resources/youtube/settings/host/values/strings.xml b/patches/src/main/resources/youtube/settings/host/values/strings.xml index 3e29d780e..f8d00df7d 100644 --- a/patches/src/main/resources/youtube/settings/host/values/strings.xml +++ b/patches/src/main/resources/youtube/settings/host/values/strings.xml @@ -473,6 +473,13 @@ If later turned off, it is recommended to clear the app data to prevent UI bugs. Hide account menu "Hide elements of the account menu and You tab. Some components may not be hidden." + Account menu filter type + "Filter if contains. + +To hide the Get YouTube Premium menu, you can use YouTube Premium or Premium as keywords." + "Filter if matches. + +To hide the Get YouTube Premium menu, you can only use Get YouTube Premium as keywords." Account menu filter List of account menu names to filter, separated by new lines. Hide handle diff --git a/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 3cf5759e6..4413bfed6 100644 --- a/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -131,6 +131,7 @@