fixes of sponsorpost sdk
also added force update of filters
This commit is contained in:
@@ -227,6 +227,23 @@ public class SponsorPostFragment extends TrackedMaterialPreferenceToolbarFragmen
|
||||
}
|
||||
);
|
||||
|
||||
if (NetworkUtils.isNetworkConnected()) {
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
"Обновить списки фильтров",
|
||||
null,
|
||||
null,
|
||||
preference -> {
|
||||
this.requireActivity().runOnUiThread(() -> {
|
||||
FiltersPreferences.forceUpdateFilters();
|
||||
AndroidUtils.sendToast("Обновлено");
|
||||
});
|
||||
return false;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
|
||||
@@ -61,6 +61,18 @@ public class FiltersPreferences {
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public static void forceUpdateFilters() {
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
|
||||
preferences.getAll().keySet().stream()
|
||||
.filter(key -> key.endsWith(":" + PREF_KEY_VERSION))
|
||||
.forEach(key -> editor.putString(key, "0"));
|
||||
|
||||
editor.apply();
|
||||
|
||||
Updates.updateFilters();
|
||||
}
|
||||
|
||||
public static boolean getSavedKeyValue(int id) {
|
||||
return getFilter(id) != null;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package ru.vtosters.sponsorpost.utils;
|
||||
|
||||
import android.util.Log;
|
||||
import ru.vtosters.lite.utils.NetworkUtils;
|
||||
import ru.vtosters.lite.utils.newsfeed.NewsFeedFiltersUtils;
|
||||
import ru.vtosters.sponsorpost.data.Filter;
|
||||
@@ -31,14 +32,17 @@ public class Updates {
|
||||
for (Filter filter : filters) {
|
||||
Filter localFilter = findLocalFilterById(localFilters, filter.getId());
|
||||
if (localFilter == null) {
|
||||
Log.d("Updates", "local filter is not exist, adding new: " + filter.getId());
|
||||
FiltersPreferences.saveFilter(filter);
|
||||
} else {
|
||||
String remoteVersion = filter.getVersion();
|
||||
String localVersion = localFilter.getVersion();
|
||||
if (Objects.equals(remoteVersion, localVersion)) {
|
||||
FiltersPreferences.saveFilter(filter);
|
||||
} else {
|
||||
Log.d("Updates", "saved local filter: " + localFilter.getId());
|
||||
FiltersPreferences.saveFilter(localFilter);
|
||||
} else {
|
||||
Log.d("Updates", "saved remote filter: " + filter.getId());
|
||||
FiltersPreferences.saveFilter(filter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user