From 26c208e9ed37ebc686f88756e3203f886cadba10 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Mon, 3 Oct 2022 01:24:53 +0200 Subject: [PATCH] feat(general-ads): block carousel ad --- .../patches/GeneralBytecodeAdsPatch.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/revanced/integrations/patches/GeneralBytecodeAdsPatch.java b/app/src/main/java/app/revanced/integrations/patches/GeneralBytecodeAdsPatch.java index dbe6f923..e5a6abf3 100644 --- a/app/src/main/java/app/revanced/integrations/patches/GeneralBytecodeAdsPatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/GeneralBytecodeAdsPatch.java @@ -1,5 +1,7 @@ package app.revanced.integrations.patches; +import android.util.Log; + import java.nio.ByteBuffer; import java.util.ArrayList; @@ -57,6 +59,7 @@ final class LithoBlockRegister { public class GeneralBytecodeAdsPatch { private final static LithoBlockRegister pathBlockRegister = new LithoBlockRegister(); + private final static ComponentRule identifierBlock; static { var comments = new ComponentRule(SettingsEnum.ADREMOVER_COMMENTS_REMOVAL, "comments_"); @@ -80,7 +83,6 @@ public class GeneralBytecodeAdsPatch { "_ad", "ad_", "ads_video_with_context", - "carousel_ad_with_detailed_metadata", "cell_divider", "reels_player_overlay", "shelf_header", @@ -114,14 +116,17 @@ public class GeneralBytecodeAdsPatch { channelGuidelines }; for (var block : blocks) pathBlockRegister.addBlock(block); + + // Block for the ComponentContext.identifier field + identifierBlock = new ComponentRule(SettingsEnum.ADREMOVER_GENERAL_ADS_REMOVAL, "carousel_ad"); } //Used by app.revanced.patches.youtube.ad.general.bytecode.patch.GeneralBytecodeAdsPatch - public static boolean isAdComponent(StringBuilder pathBuilder) { + public static boolean isAdComponent(StringBuilder pathBuilder, String identifier) { var path = pathBuilder.toString(); if (path.isEmpty()) return false; - LogHelper.debug(GeneralBytecodeAdsPatch.class, String.format("Searching: %s", path)); + LogHelper.debug(GeneralBytecodeAdsPatch.class, String.format("Searching (ID: %s): %s", identifier, path)); // Do not block on these if (Extensions.containsAny(path, "home_video_with_context", @@ -141,6 +146,11 @@ public class GeneralBytecodeAdsPatch { return true; } + if (identifierBlock.isBlocked(identifier)){ + LogHelper.debug(GeneralBytecodeAdsPatch.class, "Blocked: " + identifier); + return true; + } + return false; } }