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 @@