diff --git a/app/src/main/java/com/vk/newsfeed/holders/AdMarkHolder.java b/app/src/main/java/com/vk/newsfeed/holders/AdMarkHolder.java index 0393320c2..f71d21553 100644 --- a/app/src/main/java/com/vk/newsfeed/holders/AdMarkHolder.java +++ b/app/src/main/java/com/vk/newsfeed/holders/AdMarkHolder.java @@ -53,6 +53,7 @@ public final class AdMarkHolder extends BaseNewsEntryHolder { this.F.setOnClickListener(listener -> voteDialog(ownerId, postId, date, this.F.getContext())); } else if (NewsFeedFiltersUtils.sponsorFilters(text)) { disclamer = "SponsorPost: Заблокировано фильтрами"; + this.F.setOnClickListener(listener -> AndroidUtils.sendToast("Заблокировано по выражению: " + NewsFeedFiltersUtils.sponsorFiltersBanWord(text))); } else { disclamer = m(R.string.sponsored_post_in_group); } diff --git a/app/src/main/java/ru/vtosters/lite/utils/newsfeed/NewsFeedFiltersUtils.java b/app/src/main/java/ru/vtosters/lite/utils/newsfeed/NewsFeedFiltersUtils.java index 0c86d1464..0dc1834bb 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/newsfeed/NewsFeedFiltersUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/newsfeed/NewsFeedFiltersUtils.java @@ -300,26 +300,29 @@ public class NewsFeedFiltersUtils { public static boolean sponsorFilters(String text) { String textInLowerCase = text.toLowerCase(); - Set list = filters.stream() - .filter(adword -> !adword.isEmpty()) - .collect(Collectors.toSet()); - - if (!list.isEmpty()) { - return list.stream().anyMatch(adword -> { - if (textInLowerCase.contains(adword.toLowerCase())) { + return filters.stream() + .map(String::toLowerCase) + .filter(adword -> !adword.isEmpty() && textInLowerCase.contains(adword)) + .peek(adword -> { if (dev()) { Log.d("NewsfeedAdBlockV2", text); Log.d("NewsfeedAdBlockV2", "Block word: " + adword); } - return true; - } - return false; - }); - } - - return false; + }) + .findAny() + .isPresent(); } + public static String sponsorFiltersBanWord(String text) { + String textInLowerCase = text.toLowerCase(); + return filters.stream() + .map(String::toLowerCase) + .filter(adword -> !adword.isEmpty() && textInLowerCase.contains(adword)) + .findAny() + .orElse(null); + } + + public static void parseStoriesItem(JSONObject item) throws JSONException { JSONArray stories = item.optJSONArray("stories"); JSONArray newStories = new JSONArray();