From f8dbf957b925e5f0e02ca084ecca308cdc41536d Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 26 Dec 2020 17:16:20 +0100 Subject: [PATCH] Skip idle when transient connection --- .../eu/faircode/email/ServiceSynchronize.java | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 48a3b7085d..e7812a6886 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1283,30 +1283,32 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences }); // Idle folder - Thread idler = new Thread(new Runnable() { - @Override - public void run() { - try { - Log.i(folder.name + " start idle"); - while (ifolder.isOpen() && state.isRunning() && state.isRecoverable()) { - Log.i(folder.name + " do idle"); - ifolder.idle(false); - state.activity(); + if (!account.isTransient(this)) { + Thread idler = new Thread(new Runnable() { + @Override + public void run() { + try { + Log.i(folder.name + " start idle"); + while (ifolder.isOpen() && state.isRunning() && state.isRecoverable()) { + Log.i(folder.name + " do idle"); + ifolder.idle(false); + state.activity(); + } + } catch (Throwable ex) { + Log.e(folder.name, ex); + EntityLog.log( + ServiceSynchronize.this, + folder.name + " " + Log.formatThrowable(ex, false)); + state.error(new FolderClosedException(ifolder, "IDLE", new Exception(ex))); + } finally { + Log.i(folder.name + " end idle"); } - } catch (Throwable ex) { - Log.e(folder.name, ex); - EntityLog.log( - ServiceSynchronize.this, - folder.name + " " + Log.formatThrowable(ex, false)); - state.error(new FolderClosedException(ifolder, "IDLE", new Exception(ex))); - } finally { - Log.i(folder.name + " end idle"); } - } - }, "idler." + folder.id); - idler.setPriority(THREAD_PRIORITY_BACKGROUND); - idler.start(); - idlers.add(idler); + }, "idler." + folder.id); + idler.setPriority(THREAD_PRIORITY_BACKGROUND); + idler.start(); + idlers.add(idler); + } EntityOperation.sync(this, folder.id, false, force && !forced);