diff --git a/app/src/main/java/eu/faircode/email/WorkerPoll.java b/app/src/main/java/eu/faircode/email/WorkerPoll.java index 74472ad462..d1af4db699 100644 --- a/app/src/main/java/eu/faircode/email/WorkerPoll.java +++ b/app/src/main/java/eu/faircode/email/WorkerPoll.java @@ -31,6 +31,7 @@ import androidx.work.Worker; import androidx.work.WorkerParameters; import java.util.Collections; +import java.util.Date; import java.util.List; import java.util.concurrent.TimeUnit; @@ -55,10 +56,13 @@ public class WorkerPoll extends Worker { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); int pollInterval = prefs.getInt("poll_interval", 0); if (enabled && pollInterval > 0) { - Log.i("Queuing " + getName() + " every " + pollInterval + " minutes"); + int min = (int) (new Date().getTime() / (60 * 1000L)); + int delay = pollInterval - min % pollInterval; + Log.i("Queuing " + getName() + " every " + pollInterval + " minutes delay=" + delay); PeriodicWorkRequest workRequest = new PeriodicWorkRequest.Builder(WorkerPoll.class, pollInterval, TimeUnit.MINUTES) + .setInitialDelay(delay, TimeUnit.MINUTES) .build(); WorkManager.getInstance(context) .enqueueUniquePeriodicWork(getName(), ExistingPeriodicWorkPolicy.REPLACE, workRequest);