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