From 198c151a22f04ae0143b141034550930cf3b75d8 Mon Sep 17 00:00:00 2001 From: Hans-Peter Lehmann Date: Mon, 22 Sep 2025 22:45:16 +0200 Subject: [PATCH] Migrate update interval from hours to minutes (#8005) This is a bit of a hack so that we have "1" available for "global" (instead of 1 hour) because we cannot change sql default values. --- .../java/de/test/antennapod/EspressoTestUtils.java | 2 +- .../de/danoeh/antennapod/PreferenceUpgrader.java | 7 +++++-- .../preferences/DownloadsPreferencesFragment.java | 3 ++- .../download/service/feed/FeedUpdateWorker.java | 2 +- .../storage/preferences/UserPreferences.java | 8 ++++++-- ui/preferences/src/main/res/values/arrays.xml | 14 +++++++------- .../src/main/res/xml/preferences_downloads.xml | 2 +- 7 files changed, 23 insertions(+), 15 deletions(-) diff --git a/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java b/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java index a661eaffb..81656f1cc 100644 --- a/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java +++ b/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java @@ -180,7 +180,7 @@ public class EspressoTestUtils { PreferenceManager.getDefaultSharedPreferences(InstrumentationRegistry.getInstrumentation().getTargetContext()) .edit() - .putString(UserPreferences.PREF_UPDATE_INTERVAL, "0") + .putString(UserPreferences.PREF_UPDATE_INTERVAL_MINUTES, "0") .commit(); } diff --git a/app/src/main/java/de/danoeh/antennapod/PreferenceUpgrader.java b/app/src/main/java/de/danoeh/antennapod/PreferenceUpgrader.java index 6a8a329ad..5d92055be 100644 --- a/app/src/main/java/de/danoeh/antennapod/PreferenceUpgrader.java +++ b/app/src/main/java/de/danoeh/antennapod/PreferenceUpgrader.java @@ -144,8 +144,9 @@ public class PreferenceUpgrader { .apply(); } UserPreferences.setAllowMobileSync(true); - if (prefs.getString(UserPreferences.PREF_UPDATE_INTERVAL, ":").contains(":")) { // Unset or "time of day" - prefs.edit().putString(UserPreferences.PREF_UPDATE_INTERVAL, "12").apply(); + if (prefs.getString(UserPreferences.PREF_UPDATE_INTERVAL_MINUTES, ":").contains(":")) { + // Unset or "time of day" + prefs.edit().putString(UserPreferences.PREF_UPDATE_INTERVAL_MINUTES, "12").apply(); } } if (oldVersion < 3020000) { @@ -178,6 +179,8 @@ public class PreferenceUpgrader { UserPreferences.setBottomNavigationEnabled(true); } if (oldVersion < 3100000) { + // Migrate refresh interval from hours to minutes + UserPreferences.setUpdateInterval(60L * UserPreferences.getUpdateInterval()); FeedUpdateManager.getInstance().restartUpdateAlarm(context, true); } } diff --git a/app/src/main/java/de/danoeh/antennapod/ui/screen/preferences/DownloadsPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/ui/screen/preferences/DownloadsPreferencesFragment.java index 4d793ee13..e65a2437c 100644 --- a/app/src/main/java/de/danoeh/antennapod/ui/screen/preferences/DownloadsPreferencesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/ui/screen/preferences/DownloadsPreferencesFragment.java @@ -78,7 +78,8 @@ public class DownloadsPreferencesFragment extends AnimatedPreferenceFragment @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if (UserPreferences.PREF_UPDATE_INTERVAL.equals(key) || UserPreferences.PREF_MOBILE_UPDATE.equals(key)) { + if (UserPreferences.PREF_UPDATE_INTERVAL_MINUTES.equals(key) + || UserPreferences.PREF_MOBILE_UPDATE.equals(key)) { FeedUpdateManager.getInstance().restartUpdateAlarm(getContext(), true); } } diff --git a/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/feed/FeedUpdateWorker.java b/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/feed/FeedUpdateWorker.java index 054abc2d4..7d3cce193 100644 --- a/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/feed/FeedUpdateWorker.java +++ b/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/feed/FeedUpdateWorker.java @@ -81,7 +81,7 @@ public class FeedUpdateWorker extends Worker { } if (isAutomaticRefresh && isAutomaticRefreshEnabled && feed.getLastRefreshAttempt() > System.currentTimeMillis() - JOB_SCHEDULE_TIME_VARIATION - - TimeUnit.HOURS.toMillis(UserPreferences.getUpdateInterval())) { + - TimeUnit.MINUTES.toMillis(UserPreferences.getUpdateInterval())) { // Recently updated, no need to automatically check again itr.remove(); continue; diff --git a/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java b/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java index 1200fd5e1..b555a8fd7 100644 --- a/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java +++ b/storage/preferences/src/main/java/de/danoeh/antennapod/storage/preferences/UserPreferences.java @@ -94,7 +94,7 @@ public abstract class UserPreferences { // Network private static final String PREF_ENQUEUE_DOWNLOADED = "prefEnqueueDownloaded"; public static final String PREF_ENQUEUE_LOCATION = "prefEnqueueLocation"; - public static final String PREF_UPDATE_INTERVAL = "prefAutoUpdateIntervall"; + public static final String PREF_UPDATE_INTERVAL_MINUTES = "prefAutoUpdateIntervall"; public static final String PREF_MOBILE_UPDATE = "prefMobileUpdateTypes"; public static final String PREF_EPISODE_CLEANUP = "prefEpisodeCleanup"; public static final String PREF_EPISODE_CACHE_SIZE = "prefEpisodeCacheSize"; @@ -456,7 +456,11 @@ public abstract class UserPreferences { } public static long getUpdateInterval() { - return Integer.parseInt(prefs.getString(PREF_UPDATE_INTERVAL, "12")); + return Integer.parseInt(prefs.getString(PREF_UPDATE_INTERVAL_MINUTES, "720")); + } + + public static void setUpdateInterval(long interval) { + prefs.edit().putString(PREF_UPDATE_INTERVAL_MINUTES, String.valueOf(interval)).apply(); } public static boolean isAutoUpdateDisabled() { diff --git a/ui/preferences/src/main/res/values/arrays.xml b/ui/preferences/src/main/res/values/arrays.xml index 59ddf8ebe..657176146 100644 --- a/ui/preferences/src/main/res/values/arrays.xml +++ b/ui/preferences/src/main/res/values/arrays.xml @@ -59,13 +59,13 @@ 0 - 1 - 2 - 4 - 8 - 12 - 24 - 72 + 60 + 120 + 240 + 480 + 720 + 1440 + 4320 diff --git a/ui/preferences/src/main/res/xml/preferences_downloads.xml b/ui/preferences/src/main/res/xml/preferences_downloads.xml index 3dc08b917..080625de3 100644 --- a/ui/preferences/src/main/res/xml/preferences_downloads.xml +++ b/ui/preferences/src/main/res/xml/preferences_downloads.xml @@ -14,7 +14,7 @@ android:key="prefAutoUpdateIntervall" android:title="@string/feed_refresh_title" android:summary="@string/feed_refresh_sum" - android:defaultValue="12"/> + android:defaultValue="720"/>