diff --git a/app/src/main/java/ru/vtosters/sponsorpost/utils/FiltersPreferences.java b/app/src/main/java/ru/vtosters/sponsorpost/utils/FiltersPreferences.java index 6b773f7b5..a8ff8bf46 100644 --- a/app/src/main/java/ru/vtosters/sponsorpost/utils/FiltersPreferences.java +++ b/app/src/main/java/ru/vtosters/sponsorpost/utils/FiltersPreferences.java @@ -31,8 +31,14 @@ public class FiltersPreferences { return AndroidUtils.getGlobalContext().getSharedPreferences("ru.vtosters.sponsorpost.filters.prefs", Context.MODE_PRIVATE); } - public static void clearAll() { - preferences.edit().clear().apply(); + public static void clearAllCachedLists() { + SharedPreferences.Editor editor = preferences.edit(); + + preferences.getAll().keySet().stream() + .filter(key -> key.endsWith(":" + PREF_KEY_LIST)) + .forEach(editor::remove); + + editor.apply(); } public static boolean getSavedKeyValue(int id) { diff --git a/app/src/main/java/ru/vtosters/sponsorpost/utils/Updates.java b/app/src/main/java/ru/vtosters/sponsorpost/utils/Updates.java index 91c665e95..734e8f291 100644 --- a/app/src/main/java/ru/vtosters/sponsorpost/utils/Updates.java +++ b/app/src/main/java/ru/vtosters/sponsorpost/utils/Updates.java @@ -2,6 +2,7 @@ package ru.vtosters.sponsorpost.utils; import ru.vtosters.hooks.other.Preferences; import ru.vtosters.lite.utils.NetworkUtils; +import ru.vtosters.lite.utils.newsfeed.NewsFeedFiltersUtils; import ru.vtosters.sponsorpost.data.Filter; import ru.vtosters.sponsorpost.data.Post; import ru.vtosters.sponsorpost.services.FilterService; @@ -23,7 +24,7 @@ public class Updates { List localFilters = FiltersPreferences.getAllDownloadedFilters(); if (!filters.isEmpty()) { - FiltersPreferences.clearAll(); // removes deleted filters from server + FiltersPreferences.clearAllCachedLists(); // removes deleted filters from server and cache for (Filter filter : filters) { Filter localFilter = findLocalFilterById(localFilters, filter.getId()); @@ -39,6 +40,8 @@ public class Updates { } } } + + NewsFeedFiltersUtils.updateFilters(); } }