From 302d08b5ce46eb5d455af09509154fe31b74f2c3 Mon Sep 17 00:00:00 2001
From: inotia00 <108592928+inotia00@users.noreply.github.com>
Date: Wed, 29 Jan 2025 19:06:28 +0900
Subject: [PATCH] feat(YouTube - Hide feed flyout menu): Add `Feed flyout menu
filter type` setting
---
.../extension/youtube/patches/feed/FeedPatch.java | 11 +++++++++--
.../revanced/extension/youtube/settings/Settings.java | 1 +
.../youtube/settings/host/values/strings.xml | 7 +++++++
.../resources/youtube/settings/xml/revanced_prefs.xml | 1 +
4 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/feed/FeedPatch.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/feed/FeedPatch.java
index 9ab4dd81d..70fa37edc 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/feed/FeedPatch.java
+++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/feed/FeedPatch.java
@@ -186,8 +186,15 @@ public class FeedPatch {
String menuTitleString = menuTitleCharSequence.toString();
for (String filter : blockList) {
- if (menuTitleString.equals(filter) && !filter.isEmpty())
- return null;
+ if (!filter.isEmpty()) {
+ if (Settings.HIDE_FEED_FLYOUT_MENU_FILTER_TYPE.get()) {
+ if (menuTitleString.contains(filter))
+ return null;
+ } else {
+ if (menuTitleString.equals(filter))
+ return null;
+ }
+ }
}
}
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 e42cd32c8..020847421 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
@@ -114,6 +114,7 @@ public class Settings extends BaseSettings {
// PreferenceScreen: Feed - Flyout menu
public static final BooleanSetting HIDE_FEED_FLYOUT_MENU = new BooleanSetting("revanced_hide_feed_flyout_menu", FALSE);
+ public static final BooleanSetting HIDE_FEED_FLYOUT_MENU_FILTER_TYPE = new BooleanSetting("revanced_hide_feed_flyout_menu_filter_type", FALSE, true, parent(HIDE_FEED_FLYOUT_MENU));
public static final StringSetting HIDE_FEED_FLYOUT_MENU_FILTER_STRINGS = new StringSetting("revanced_hide_feed_flyout_menu_filter_strings", "", true, parent(HIDE_FEED_FLYOUT_MENU));
// PreferenceScreen: Feed - Video filter
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 f8d00df7d..bc8209908 100644
--- a/patches/src/main/resources/youtube/settings/host/values/strings.xml
+++ b/patches/src/main/resources/youtube/settings/host/values/strings.xml
@@ -287,6 +287,13 @@ Store"
Enable feed flyout menu filter
Feed flyout menu filter is enabled.
Feed flyout menu filter is disabled.
+ Feed flyout menu filter type
+ "Filter if contains.
+
+To hide the Play next in queue menu, you can use Play next or in queue as keywords."
+ "Filter if matches.
+
+To hide the Play next in queue menu, you can only use Play next in queue as keywords."
Feed flyout menu filter
List of flyout menu names to filter, separated by new lines.
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 4413bfed6..be28ed097 100644
--- a/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml
+++ b/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml
@@ -69,6 +69,7 @@