diff --git a/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java b/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java index 3b22fdfaed..e8c66a489f 100644 --- a/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java +++ b/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java @@ -3270,6 +3270,16 @@ public class IMAPProtocol extends Protocol { boolean done = false; // done reading responses? notifyResponseHandlers(responses); + if (r.isUnTagged() && r.isOK()) // Still here + try { + DataOutputStream output = (DataOutputStream) getOutputStream(); + output.writeBytes("DONE"); + output.write(CRLF); + output.flush(); + } catch (IOException ex) { + throw new ProtocolException("IDLE/DONE", ex); + } + if (r.isBYE()) // shouldn't wait for command completion response done = true; diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 29717f0afe..42c14e58f6 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -973,13 +973,6 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences if (e.getMessageType() == StoreEvent.NOTICE) { EntityLog.log(ServiceSynchronize.this, account.name + " notice: " + message); - // Store NOOP - try { - iservice.getStore().isConnected(); - } catch (Throwable ex) { - Log.e(ex); - } - if ("Still here".equals(message) && !isTransient(account)) { long now = new Date().getTime(); if (now - start < STILL_THERE_THRESHOLD)