diff --git a/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/feed/FeedUpdateManagerImpl.java b/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/feed/FeedUpdateManagerImpl.java
index 490d83e4e..5433ac4d0 100644
--- a/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/feed/FeedUpdateManagerImpl.java
+++ b/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/feed/FeedUpdateManagerImpl.java
@@ -34,6 +34,8 @@ public class FeedUpdateManagerImpl extends FeedUpdateManager {
public static final String EXTRA_EVEN_ON_MOBILE = "even_on_mobile";
public static final String EXTRA_MANUAL = "manual";
private static final String TAG = "AutoUpdateManager";
+ private static long lastManualRefreshTime = 0;
+ private static final long REFRESH_COOLDOWN_MS = 20_000;
/**
* Start / restart periodic auto feed refresh
@@ -64,6 +66,7 @@ public class FeedUpdateManagerImpl extends FeedUpdateManager {
}
public void runOnce(Context context, Feed feed, boolean nextPage) {
+ lastManualRefreshTime = System.currentTimeMillis();
OneTimeWorkRequest.Builder workRequest = new OneTimeWorkRequest.Builder(FeedUpdateWorker.class)
.setInitialDelay(0L, TimeUnit.MILLISECONDS)
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
@@ -89,6 +92,11 @@ public class FeedUpdateManagerImpl extends FeedUpdateManager {
}
public void runOnceOrAsk(@NonNull Context context, @Nullable Feed feed) {
+ if (System.currentTimeMillis() - lastManualRefreshTime < REFRESH_COOLDOWN_MS) {
+ EventBus.getDefault().post(new MessageEvent(context.getString(R.string.please_wait_before_refreshing)));
+ EventBus.getDefault().postSticky(new FeedUpdateRunningEvent(false));
+ return;
+ }
Log.d(TAG, "Run auto update immediately in background.");
if (feed != null && feed.isLocalFeed()) {
runOnce(context, feed);
diff --git a/ui/i18n/src/main/res/values/strings.xml b/ui/i18n/src/main/res/values/strings.xml
index 2bcacb8e0..c5ab45be1 100644
--- a/ui/i18n/src/main/res/values/strings.xml
+++ b/ui/i18n/src/main/res/values/strings.xml
@@ -211,6 +211,7 @@
Multi select actions shown at the bottom
Filtered
Last refresh failed. Tap to view details.
+ Please wait some time before refreshing podcasts again.
Open podcast
Please wait until the data is loaded
Updates disabled