diff --git a/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java b/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java
index d42a5b7b7..56fb8e178 100644
--- a/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java
+++ b/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java
@@ -46,15 +46,17 @@ public class MenuBuilder {
cfambObject = CommunityFragmentActionsMenuBuilder.class.getDeclaredField("b");
cfambObject.setAccessible(true);
} catch (NoSuchFieldException | NoSuchMethodException e) {
- Log.e("VTLite", "Reflection failed");
+ Log.e("MenuBuilder", "Reflection failed");
e.printStackTrace();
}
}
public static void injectAP(final ProfileFragmentActionsMenuBuilder mb, final ActionsPopup.b builder) {
try {
- final ExtendedUserProfile eup = (ExtendedUserProfile) pfambObject.get(mb);
- final Context ctx = ((View) Objects.requireNonNull(apView.get(builder))).getContext();
+ ExtendedUserProfile eup = (ExtendedUserProfile) pfambObject.get(mb);
+ Context ctx = ((View) Objects.requireNonNull(apView.get(builder))).getContext();
+ boolean isPageWhitelistedFilter = isWhitelistedFilter(eup);
+ boolean isPageWhitelistedAdsStories = isWhitelistedAdStories(eup);
addItem(builder, AndroidUtils.getString(R.string.menu_copy_id), () -> {
copy(ctx, String.valueOf(AccountManagerUtils.getUserID(eup)));
return Unit.a;
@@ -70,6 +72,17 @@ public class MenuBuilder {
// return Unit.a;
// });
+ addItem(builder, AndroidUtils.getString(isPageWhitelistedFilter ? R.string.remove_from_filter_whitelist : R.string.add_to_filter_whitelist), () -> {
+ setWhitelistedFilter(eup, !isPageWhitelistedFilter);
+ AndroidUtils.sendToast(AndroidUtils.getString(isPageWhitelistedFilter ? R.string.removed_from_whitelist_success : R.string.added_to_whitelist_success));
+ return Unit.a;
+ });
+
+ addItem(builder, AndroidUtils.getString(isPageWhitelistedAdsStories ? R.string.remove_from_ads_stories_whitelist : R.string.add_to_ads_stories_whitelist), () -> {
+ setWhitelistedAdStories(eup, !isPageWhitelistedAdsStories);
+ AndroidUtils.sendToast(AndroidUtils.getString(isPageWhitelistedAdsStories ? R.string.removed_from_whitelist_success : R.string.added_to_whitelist_success));
+ return Unit.a;
+ });
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
@@ -77,11 +90,11 @@ public class MenuBuilder {
public static void injectAP(final CommunityFragmentActionsMenuBuilder mb, final ActionsPopup.b builder) {
try {
- final ExtendedCommunityProfile ecp = (ExtendedCommunityProfile) cfambObject.get(mb);
- final Context ctx = ((View) apView.get(builder)).getContext();
- final boolean isPageWhitelistedFilter = isWhitelistedFilter(ecp);
- final boolean isPageWhitelistedAds = isWhitelistedAd(ecp);
- final boolean isPageWhitelistedAdsStories = isWhitelistedAdStories(ecp);
+ ExtendedCommunityProfile ecp = (ExtendedCommunityProfile) cfambObject.get(mb);
+ Context ctx = ((View) apView.get(builder)).getContext();
+ boolean isPageWhitelistedFilter = isWhitelistedFilter(ecp);
+ boolean isPageWhitelistedAds = isWhitelistedAd(ecp);
+ boolean isPageWhitelistedAdsStories = isWhitelistedAdStories(ecp);
addItem(builder, AndroidUtils.getString(R.string.menu_copy_id), () -> {
copy(ctx, String.valueOf(AccountManagerUtils.getUserID(ecp)));
@@ -110,7 +123,6 @@ public class MenuBuilder {
AndroidUtils.sendToast(AndroidUtils.getString(isPageWhitelistedAdsStories ? R.string.removed_from_whitelist_success : R.string.added_to_whitelist_success));
return Unit.a;
});
-
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
@@ -148,6 +160,19 @@ public class MenuBuilder {
).contains(String.valueOf(AccountManagerUtils.getUserID(eup)));
}
+ public static boolean isWhitelistedFilter(ExtendedUserProfile eup) {
+ return Preferences.getPreferences().getStringSet(
+ "whitelisted_filters_groups", Collections.emptySet()
+ ).contains(String.valueOf(AccountManagerUtils.getUserID(eup)));
+ }
+
+ public static boolean isWhitelistedAdStories(ExtendedUserProfile eup) {
+ return Preferences.getPreferences().getStringSet(
+ "whitelisted_stories_ad",
+ Collections.emptySet()
+ ).contains(String.valueOf(AccountManagerUtils.getUserID(eup)));
+ }
+
public static void setWhitelistedFilter(ExtendedCommunityProfile eup, boolean needWhitelist) {
var id = String.valueOf(AccountManagerUtils.getUserID(eup));
@@ -195,4 +220,36 @@ public class MenuBuilder {
Preferences.getPreferences().edit().putStringSet("whitelisted_stories_ad", mutableAdsSet).apply();
}
+
+ public static void setWhitelistedFilter(ExtendedUserProfile eup, boolean needWhitelist) {
+ var id = String.valueOf(AccountManagerUtils.getUserID(eup));
+
+ var mutableAdsSet = new LinkedHashSet<>(Preferences.getPreferences().getStringSet(
+ "whitelisted_filters_groups",
+ Collections.emptySet())
+ );
+ if (needWhitelist) {
+ mutableAdsSet.add(id);
+ } else {
+ mutableAdsSet.remove(id);
+ }
+
+ Preferences.getPreferences().edit().putStringSet("whitelisted_filters_groups", mutableAdsSet).apply();
+ }
+
+ public static void setWhitelistedAdStories(ExtendedUserProfile eup, boolean needWhitelist) {
+ var id = String.valueOf(AccountManagerUtils.getUserID(eup));
+
+ var mutableAdsSet = new LinkedHashSet<>(Preferences.getPreferences().getStringSet(
+ "whitelisted_stories_ad",
+ Collections.emptySet()));
+
+ if (needWhitelist) {
+ mutableAdsSet.add(id);
+ } else {
+ mutableAdsSet.remove(id);
+ }
+
+ Preferences.getPreferences().edit().putStringSet("whitelisted_stories_ad", mutableAdsSet).apply();
+ }
}
\ No newline at end of file
diff --git a/smali/res/values-be/strings.xml b/smali/res/values-be/strings.xml
index 5affac55e..268d491b1 100644
--- a/smali/res/values-be/strings.xml
+++ b/smali/res/values-be/strings.xml
@@ -6823,8 +6823,8 @@
Выдаліць з вайтліста рэкламы
Дадаць у вайтліст гісторый
Выдаліць з вайтліста гісторый
- Група выдалена з вайтліста
- Група дададзена ў вайтліст
+ Выдаленая з вайтлиста
+ Дададзена ў вайтліст
Вайтліст рэкламы
Вайтліст рэкламы гісторый
diff --git a/smali/res/values-ru/strings.xml b/smali/res/values-ru/strings.xml
index f0f7c9e17..e8bd41581 100644
--- a/smali/res/values-ru/strings.xml
+++ b/smali/res/values-ru/strings.xml
@@ -6191,8 +6191,8 @@
Удалить из вайтлиста рекламы
Добавить в вайтлист историй
Удалить из вайтлиста историй
- Группа удалена из вайтлиста
- Группа добавлена в вайтлист
+ Удалено из вайтлиста
+ Добавлено в вайтлист
Вайтлист рекламы
Вайтлист фильтров и источников
diff --git a/smali/res/values-uk/strings.xml b/smali/res/values-uk/strings.xml
index 955a93665..8405e32ab 100644
--- a/smali/res/values-uk/strings.xml
+++ b/smali/res/values-uk/strings.xml
@@ -6116,8 +6116,8 @@
Видалити з вайтліста реклами
Додати до вайтліста історій
Видалити з вайтліста історій
- Група видалена з вайтліста
- Група додана до вайтліста
+ Видалена з вайтліста
+ Додана до вайтліста
Вайтліст реклами
Вайтліст фільтрів та джерел
diff --git a/smali/res/values/strings.xml b/smali/res/values/strings.xml
index e975371ba..89cbac7ac 100644
--- a/smali/res/values/strings.xml
+++ b/smali/res/values/strings.xml
@@ -6329,8 +6329,8 @@ May look like a fake leaving the online"
Remove from stories whitelist
Add to ads stories whitelist
Remove from ads stories whitelist
- Group removed from whitelist
- Group added to whitelist
+ Removed from whitelist
+ Added to whitelist
Ads whitelist
Filters whitelist and copyrights