From 69bdbef792aa99db3d29a1b9922364568f2a05e4 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 27 Feb 2019 17:10:44 +0000 Subject: [PATCH] Stop sync service if no work --- .../main/java/eu/faircode/email/ServiceSynchronize.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index a92b91fa85..9eeaf1970b 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1245,6 +1245,11 @@ public class ServiceSynchronize extends LifecycleService { return prefs.getBoolean("enabled", true); } + private boolean hasWork() { + DB db = DB.getInstance(ServiceSynchronize.this); + return (db.account().getSynchronizingAccounts(false).size() > 0); + } + private void service_init(boolean boot) { EntityLog.log(ServiceSynchronize.this, "Service init boot=" + boot); @@ -1478,12 +1483,12 @@ public class ServiceSynchronize extends LifecycleService { queued--; EntityLog.log(ServiceSynchronize.this, "Reload done queued=" + queued); - if (queued == 0 && !isEnabled()) { + if (queued == 0 && !(isEnabled() && hasWork())) { try { Thread.sleep(STOP_DELAY); } catch (InterruptedException ignored) { } - if (queued == 0 && !isEnabled()) { + if (queued == 0 && !(isEnabled() && hasWork())) { EntityLog.log(ServiceSynchronize.this, "Service stop"); stopSelf(); }