added filtered buttons for profile #767

This commit is contained in:
gdlbo
2023-06-12 15:28:37 +03:00
parent 94236c87e3
commit 49051dae9a
5 changed files with 74 additions and 17 deletions
@@ -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();
}
}
+2 -2
View File
@@ -6823,8 +6823,8 @@
<string name="remove_from_ads_whitelist">Выдаліць з вайтліста рэкламы</string>
<string name="add_to_ads_stories_whitelist">Дадаць у вайтліст гісторый</string>
<string name="remove_from_ads_stories_whitelist">Выдаліць з вайтліста гісторый</string>
<string name="removed_from_whitelist_success">Група выдалена з вайтліста</string>
<string name="added_to_whitelist_success">Група дададзена ў вайтліст</string>
<string name="removed_from_whitelist_success">Выдаленая з вайтлиста</string>
<string name="added_to_whitelist_success">Дададзена ў вайтліст</string>
<string name="whitelisted_ad_groups_title">Вайтліст рэкламы</string>
<string name="whitelisted_ad_groups_stories_title">Вайтліст рэкламы гісторый</string>
+2 -2
View File
@@ -6191,8 +6191,8 @@
<string name="remove_from_ads_whitelist">Удалить из вайтлиста рекламы</string>
<string name="add_to_ads_stories_whitelist">Добавить в вайтлист историй</string>
<string name="remove_from_ads_stories_whitelist">Удалить из вайтлиста историй</string>
<string name="removed_from_whitelist_success">Группа удалена из вайтлиста</string>
<string name="added_to_whitelist_success">Группа добавлена в вайтлист</string>
<string name="removed_from_whitelist_success">Удалено из вайтлиста</string>
<string name="added_to_whitelist_success">Добавлено в вайтлист</string>
<string name="whitelisted_ad_groups_title">Вайтлист рекламы</string>
<string name="whitelisted_filters_groups_title">Вайтлист фильтров и источников</string>
+2 -2
View File
@@ -6116,8 +6116,8 @@
<string name="remove_from_ads_whitelist">Видалити з вайтліста реклами</string>
<string name="add_to_ads_stories_whitelist">Додати до вайтліста історій</string>
<string name="remove_from_ads_stories_whitelist">Видалити з вайтліста історій</string>
<string name="removed_from_whitelist_success">Група видалена з вайтліста</string>
<string name="added_to_whitelist_success">Група додана до вайтліста</string>
<string name="removed_from_whitelist_success">Видалена з вайтліста</string>
<string name="added_to_whitelist_success">Додана до вайтліста</string>
<string name="whitelisted_ad_groups_title">Вайтліст реклами</string>
<string name="whitelisted_filters_groups_title">Вайтліст фільтрів та джерел</string>
+2 -2
View File
@@ -6329,8 +6329,8 @@ May look like a fake leaving the online"</string>
<string name="remove_from_ads_stories_whitelist">Remove from stories whitelist</string>
<string name="add_to_ads_whitelist">Add to ads stories whitelist</string>
<string name="remove_from_ads_whitelist">Remove from ads stories whitelist</string>
<string name="removed_from_whitelist_success">Group removed from whitelist</string>
<string name="added_to_whitelist_success">Group added to whitelist</string>
<string name="removed_from_whitelist_success">Removed from whitelist</string>
<string name="added_to_whitelist_success">Added to whitelist</string>
<string name="whitelisted_ad_groups_title">Ads whitelist</string>
<string name="whitelisted_filters_groups_title">Filters whitelist and copyrights</string>