diff --git a/app/src/main/java/eu/faircode/email/ServiceSend.java b/app/src/main/java/eu/faircode/email/ServiceSend.java index ff27a334bf..78ccee5a90 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSend.java +++ b/app/src/main/java/eu/faircode/email/ServiceSend.java @@ -516,7 +516,7 @@ public class ServiceSend extends ServiceBase { try { DB db = DB.getInstance(context); EntityFolder outbox = db.folder().getOutbox(); - if (outbox != null && db.operation().getOperations(outbox.id).size() > 0) + if (outbox != null) start(context); } catch (Throwable ex) { Log.e(ex); diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 7f6e70cdc0..bb12deee92 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1435,6 +1435,16 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences try { DB db = DB.getInstance(context); + // Reset accounts + for (EntityAccount account : db.account().getAccounts()) + db.account().setAccountState(account.id, null); + + // reset folders + for (EntityFolder folder : db.folder().getFolders()) { + db.folder().setFolderState(folder.id, null); + db.folder().setFolderSyncState(folder.id, null); + } + // Restore notifications db.message().clearNotifyingMessages(); @@ -1445,19 +1455,8 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences // Restore schedule schedule(context); - // Conditionally init service - int accounts = db.account().getSynchronizingAccounts().size(); - if (accounts > 0) - eval(context, "boot"); - else { - for (EntityAccount account : db.account().getAccounts()) - db.account().setAccountState(account.id, null); - - for (EntityFolder folder : db.folder().getFolders()) { - db.folder().setFolderState(folder.id, null); - db.folder().setFolderSyncState(folder.id, null); - } - } + // Init service + eval(context, "boot"); } catch (Throwable ex) { Log.e(ex); }