diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java index 5f47290e9..78015ea79 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java @@ -177,10 +177,7 @@ public final class AdsFilter extends Filter { boolean isFiltered(@Nullable String identifier, String path, byte[] protobufBufferArray, StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) { if (matchedGroup == playerShoppingShelf) { - if (contentIndex == 0 && playerShoppingShelfBuffer.check(protobufBufferArray).isFiltered()) { - return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); - } - return false; + return contentIndex == 0 && playerShoppingShelfBuffer.check(protobufBufferArray).isFiltered(); } // Check for the index because of likelihood of false positives. @@ -198,13 +195,10 @@ public final class AdsFilter extends Filter { } if (matchedGroup == channelProfile) { - if (visitStoreButton.check(protobufBufferArray).isFiltered()) { - return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); - } - return false; + return visitStoreButton.check(protobufBufferArray).isFiltered(); } - return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); + return true; } /** 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 308be8ce8..3ad2070ed 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 @@ -99,29 +99,23 @@ final class ButtonsFilter extends Filter { 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; + return (path.startsWith(VIDEO_ACTION_BAR_PATH_PREFIX) || path.startsWith(COMPACT_CHANNEL_BAR_PATH_PREFIX)) + && path.contains(ANIMATED_VECTOR_TYPE_PATH); } // If the current matched group is the action bar group, // in case every filter group is enabled, hide the action bar. if (matchedGroup == actionBarGroup) { - if (!isEveryFilterGroupEnabled()) { - return false; - } - } else if (matchedGroup == bufferFilterPathGroup) { - // Make sure the current path is the right one - // to avoid false positives. - if (!path.startsWith(VIDEO_ACTION_BAR_PATH)) return false; - - // In case the group list has no match, return false. - if (!bufferButtonsGroupList.check(protobufBufferArray).isFiltered()) return false; + return isEveryFilterGroupEnabled(); } - return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); + if (matchedGroup == bufferFilterPathGroup) { + // Make sure the current path is the right one + // to avoid false positives. + return path.startsWith(VIDEO_ACTION_BAR_PATH) + && bufferButtonsGroupList.check(protobufBufferArray).isFiltered(); + } + + return true; } } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java index ec58b2ee2..d30504c2c 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java @@ -88,22 +88,15 @@ final class CommentsFilter extends Filter { if (matchedGroup == commentComposer) { // To completely hide the emoji buttons (and leave no empty space), the timestamp button is // also hidden because the buffer is exactly the same and there's no way selectively hide. - if (contentIndex == 0 + return contentIndex == 0 && path.endsWith(TIMESTAMP_OR_EMOJI_BUTTONS_ENDS_WITH_PATH) - && emojiPickerBufferGroup.check(protobufBufferArray).isFiltered()) { - return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); - } - - return false; + && emojiPickerBufferGroup.check(protobufBufferArray).isFiltered(); } if (matchedGroup == filterChipBar) { - if (aiCommentsSummary.check(protobufBufferArray).isFiltered()) { - return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); - } - return false; + return aiCommentsSummary.check(protobufBufferArray).isFiltered(); } - return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); + return true; } } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CustomFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CustomFilter.java index 37062d6e2..263921fff 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CustomFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CustomFilter.java @@ -153,9 +153,11 @@ final class CustomFilter extends Filter { if (custom.startsWith && contentIndex != 0) { return false; } - if (custom.bufferSearch != null && !custom.bufferSearch.matches(protobufBufferArray)) { - return false; + + if (custom.bufferSearch == null) { + return true; // No buffer filter, only path filtering. } - return super.isFiltered(identifier, path, protobufBufferArray, matchedGroup, contentType, contentIndex); + + return custom.bufferSearch.matches(protobufBufferArray); } } \ No newline at end of file diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java index d74b7c9b8..8e69ac407 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java @@ -94,13 +94,9 @@ final class DescriptionComponentsFilter extends Filter { if (exceptions.matches(path)) return false; if (matchedGroup == macroMarkersCarousel) { - if (contentIndex == 0 && macroMarkersCarouselGroupList.check(protobufBufferArray).isFiltered()) { - return super.isFiltered(path, identifier, protobufBufferArray, matchedGroup, contentType, contentIndex); - } - - return false; + return contentIndex == 0 && macroMarkersCarouselGroupList.check(protobufBufferArray).isFiltered(); } - return super.isFiltered(path, identifier, protobufBufferArray, matchedGroup, contentType, contentIndex); + return true; } } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/Filter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/Filter.java index 42b86d589..ddec956f0 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/Filter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/Filter.java @@ -6,9 +6,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import app.revanced.extension.shared.Logger; -import app.revanced.extension.shared.settings.BaseSettings; - /** * Filters litho based components. * @@ -62,10 +59,7 @@ abstract class Filter { * Called after an enabled filter has been matched. * Default implementation is to always filter the matched component and log the action. * Subclasses can perform additional or different checks if needed. - *
- * If the content is to be filtered, subclasses should always - * call this method (and never return a plain 'true'). - * That way the logs will always show when a component was filtered and which filter hide it. + * *
* Method is called off the main thread.
*
@@ -76,14 +70,6 @@ abstract class Filter {
*/
boolean isFiltered(@Nullable String identifier, String path, byte[] protobufBufferArray,
StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) {
- if (BaseSettings.DEBUG.get()) {
- String filterSimpleName = getClass().getSimpleName();
- if (contentType == FilterContentType.IDENTIFIER) {
- Logger.printDebug(() -> filterSimpleName + " Filtered identifier: " + identifier);
- } else {
- Logger.printDebug(() -> filterSimpleName + " Filtered path: " + path);
- }
- }
return true;
}
}
diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java
index d365d6802..45fdcd7d2 100644
--- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java
@@ -576,7 +576,7 @@ final class KeywordContentFilter extends Filter {
MutableReference