diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 5c07e94497..95ef965965 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1615,7 +1615,21 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences state.resetBatches(); ((ThreadPoolExecutor) executor).getQueue().clear(); - // Close store/folders + // Close folders + for (EntityFolder folder : mapFolders.keySet()) + if (folder.synchronize && !folder.poll && mapFolders.get(folder) != null) { + db.folder().setFolderState(folder.id, "closing"); + try { + if (iservice.getStore().isConnected()) + mapFolders.get(folder).close(); + } catch (Throwable ex) { + Log.w(ex); + } finally { + db.folder().setFolderState(folder.id, null); + } + } + + // Close store try { EntityLog.log(this, account.name + " store closing"); iservice.close(); @@ -1624,8 +1638,6 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences Log.w(account.name, ex); } finally { EntityLog.log(this, account.name + " closed"); - for (EntityFolder folder : mapFolders.keySet()) - db.folder().setFolderState(folder.id, null); db.account().setAccountState(account.id, null); }