diff --git a/app/src/main/java/ru/vtosters/lite/hooks/AdBlockHook.java b/app/src/main/java/ru/vtosters/lite/hooks/AdBlockHook.java index 67702ee37..7748ecf69 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/AdBlockHook.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/AdBlockHook.java @@ -9,6 +9,7 @@ import static ru.vtosters.lite.utils.Preferences.adsstories; import static ru.vtosters.lite.utils.Preferences.authorsrecomm; import static ru.vtosters.lite.utils.Preferences.dev; import static ru.vtosters.lite.utils.Preferences.friendsrecomm; +import static ru.vtosters.lite.utils.Preferences.getBoolValue; import static ru.vtosters.lite.utils.Preferences.postsrecomm; import android.util.Log; @@ -224,6 +225,12 @@ public class AdBlockHook { continue; } + if (hasMiniAppAds(list) && !isWhitelistedFilters(list)) { + if (dev()) + Log.d("NewsfeedAdBlockV2", "Removed post " + list.optInt("post_id") + " from feed, Reason: MiniApp filters"); + continue; + } + if (NewsFeedFiltersUtils.injectFiltersReposts(list) && !isWhitelistedFilters(list)) { if (dev()) Log.d("NewsfeedAdBlockV2", "Removed post " + list.optInt("post_id") + " from feed, Reason: repost ad"); @@ -360,4 +367,17 @@ public class AdBlockHook { return whitelist.contains(id); } + + public static Boolean hasMiniAppAds(JSONObject list) { + var attachments = list.optJSONArray("attachments"); + + if (attachments != null && getBoolValue("blockminiapps", false)) { + for (int j = 0; j < attachments.length(); j++) { + var type = attachments.optJSONObject(j).optString("type"); + if (type.contains("mini_app")) return true; + } + } + + return false; + } } diff --git a/smali/res/xml/preferences_feed.xml b/smali/res/xml/preferences_feed.xml index 11ed16246..3058b0ed2 100644 --- a/smali/res/xml/preferences_feed.xml +++ b/smali/res/xml/preferences_feed.xml @@ -77,6 +77,11 @@ android:key="copyright_post" android:summary="@string/feed_ads_sources_summary" android:title="@string/feed_ads_sources" /> +