From 96cd456a3d85fc87e517ff0e48c1efc22921ca47 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 14 Jan 2020 09:02:37 +0100 Subject: [PATCH] Check schedule on scheduling next poll --- .../java/eu/faircode/email/ServiceSynchronize.java | 2 +- app/src/main/java/eu/faircode/email/ServiceUI.java | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 57d077a3b8..19a22af32b 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1604,7 +1604,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences ServiceUI.schedule(context, enabled); } - private static long[] getSchedule(Context context) { + static long[] getSchedule(Context context) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); if (!prefs.getBoolean("schedule", false)) return null; diff --git a/app/src/main/java/eu/faircode/email/ServiceUI.java b/app/src/main/java/eu/faircode/email/ServiceUI.java index 71243eee63..9d69dc1757 100644 --- a/app/src/main/java/eu/faircode/email/ServiceUI.java +++ b/app/src/main/java/eu/faircode/email/ServiceUI.java @@ -459,10 +459,14 @@ public class ServiceUI extends IntentService { db.endTransaction(); } - if (reschedule) - schedule(this, true); - ServiceSynchronize.eval(this, "poll"); + + if (reschedule) { + long now = new Date().getTime(); + long[] schedule = ServiceSynchronize.getSchedule(this); + boolean enabled = (schedule == null || (now >= schedule[0] && now < schedule[1])); + schedule(this, enabled); + } } private void onBanner() {