diff --git a/app/src/main/java/app/revanced/integrations/patches/components/AdsFilter.java b/app/src/main/java/app/revanced/integrations/patches/components/AdsFilter.java index 40192d0d..5868596d 100644 --- a/app/src/main/java/app/revanced/integrations/patches/components/AdsFilter.java +++ b/app/src/main/java/app/revanced/integrations/patches/components/AdsFilter.java @@ -12,6 +12,7 @@ import app.revanced.integrations.utils.StringTrieSearch; public final class AdsFilter extends Filter { private final StringTrieSearch exceptions = new StringTrieSearch(); + private final StringFilterGroup shoppingLinks; public AdsFilter() { exceptions.addPatterns( @@ -71,6 +72,11 @@ public final class AdsFilter extends Filter { "products_in_video" ); + shoppingLinks = new StringFilterGroup( + SettingsEnum.HIDE_SHOPPING_LINKS, + "expandable_list" + ); + final var webLinkPanel = new StringFilterGroup( SettingsEnum.HIDE_WEB_SEARCH_RESULTS, "web_link_panel" @@ -93,6 +99,7 @@ public final class AdsFilter extends Filter { viewProducts, selfSponsor, webLinkPanel, + shoppingLinks, movieAds ); this.identifierFilterGroupList.addAll(carouselAd); @@ -104,6 +111,10 @@ public final class AdsFilter extends Filter { if (exceptions.matches(path)) return false; + // Check for the index because of likelihood of false positives. + if (matchedGroup == shoppingLinks && matchedIndex != 0) + return false; + return super.isFiltered(identifier, path, protobufBufferArray, matchedList, matchedGroup, matchedIndex); } diff --git a/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java b/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java index 285b8125..e4b9550a 100644 --- a/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java +++ b/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java @@ -50,6 +50,7 @@ public enum SettingsEnum { HIDE_MERCHANDISE_BANNERS("revanced_hide_merchandise_banners", BOOLEAN, TRUE), HIDE_PAID_CONTENT("revanced_hide_paid_content_ads", BOOLEAN, TRUE), HIDE_PRODUCTS_BANNER("revanced_hide_products_banner", BOOLEAN, TRUE), + HIDE_SHOPPING_LINKS("revanced_hide_shopping_links", BOOLEAN, TRUE), HIDE_SELF_SPONSOR("revanced_hide_self_sponsor_ads", BOOLEAN, TRUE), HIDE_VIDEO_ADS("revanced_hide_video_ads", BOOLEAN, TRUE, true), HIDE_WEB_SEARCH_RESULTS("revanced_hide_web_search_results", BOOLEAN, TRUE),