From 2d1867197ff90f6445fd5693185339e27372c24e Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Thu, 28 Mar 2024 22:20:07 +0300 Subject: [PATCH 1/2] fixes of sponsorpost sdk also added force update of filters --- .../lite/ui/fragments/SponsorPostFragment.java | 17 +++++++++++++++++ .../sponsorpost/utils/FiltersPreferences.java | 12 ++++++++++++ .../ru/vtosters/sponsorpost/utils/Updates.java | 8 ++++++-- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/SponsorPostFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/SponsorPostFragment.java index 90bdc1146..a320bc7f8 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/SponsorPostFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/SponsorPostFragment.java @@ -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(), "", 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 8b9d2a519..d5bb972db 100644 --- a/app/src/main/java/ru/vtosters/sponsorpost/utils/FiltersPreferences.java +++ b/app/src/main/java/ru/vtosters/sponsorpost/utils/FiltersPreferences.java @@ -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; } 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 d59656a66..12e5e4d37 100644 --- a/app/src/main/java/ru/vtosters/sponsorpost/utils/Updates.java +++ b/app/src/main/java/ru/vtosters/sponsorpost/utils/Updates.java @@ -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); } } } From 126f5259d1329e4a89d8a79b13fdd24d17fa0586 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Fri, 29 Mar 2024 10:47:18 +0300 Subject: [PATCH 2/2] fixes --- .../music/injectors/CatalogJsonInjector.java | 8 +++++--- .../vtosters/lite/ui/fragments/MusicFragment.java | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/ru/vtosters/hooks/music/injectors/CatalogJsonInjector.java b/app/src/main/java/ru/vtosters/hooks/music/injectors/CatalogJsonInjector.java index 4a5ff5706..765159c3d 100644 --- a/app/src/main/java/ru/vtosters/hooks/music/injectors/CatalogJsonInjector.java +++ b/app/src/main/java/ru/vtosters/hooks/music/injectors/CatalogJsonInjector.java @@ -42,11 +42,13 @@ public class CatalogJsonInjector { removeUnsupportedLayouts(blocks); - fetchCatalogId("https://vk.com/audio?section=my_playlists", oldItems); + if (Preferences.getBoolValue("playlistsCatalogs", true)) { + fetchCatalogId("https://vk.com/audio?section=my_playlists", oldItems); - fetchCatalogId("https://vk.com/audio?section=albums", oldItems); + fetchCatalogId("https://vk.com/audio?section=albums", oldItems); + } - if (Preferences.sendMusicMetrics() && Preferences.getBoolValue("playStatsCatalog", true)) { + if (Preferences.sendMusicMetrics() && Preferences.getBoolValue("playStatsCatalog", false)) { fetchCatalogId("https://vk.com/audio?section=recent", oldItems); } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/MusicFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/MusicFragment.java index 8401944dd..a80624cc0 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/MusicFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/MusicFragment.java @@ -225,7 +225,7 @@ public class MusicFragment extends TrackedMaterialPreferenceToolbarFragment { "Список истории прослушиваний", "Показывать вкладку истории прослушиваний в музыкальном разделе\n\nОтключение ускорит открытие музыкального раздела при медленном интернете", null, - true, + false, (preference, o) -> { Preferences.getPreferences().edit().putBoolean("playStatsCatalog", (boolean) o).apply(); return true; @@ -339,6 +339,19 @@ public class MusicFragment extends TrackedMaterialPreferenceToolbarFragment { list.setVisible(!Preferences.getBoolValue("useOldAppVer", false)); getPreferenceScreen().addPreference(list); + + PreferenceFragmentUtils.addMaterialSwitchPreference( + getPreferenceScreen(), + "playlistsCatalogs", + "Списки плейлистов", + "Показывать вкладку плейлистов и альбомов прослушиваний в музыкальном разделе\n\nОтключение ускорит открытие музыкального раздела при медленном интернете", + null, + true, + (preference, o) -> { + Preferences.getPreferences().edit().putBoolean("playStatsCatalog", (boolean) o).apply(); + return true; + } + ).setVisible(!getBoolValue("useOldAppVer", false)); } private void lastfmAuth(Context ctx) {