From 73aa38dac475c1b15aff39165571d6e6c4006f8f Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 22 Feb 2020 14:52:26 +0100 Subject: [PATCH] Automatically switch to polling on "Still here" --- .../eu/faircode/email/ServiceSynchronize.java | 23 +++++++++++++++++-- 1 file changed, 21 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 e1afbb8335..03cf299c60 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -816,9 +816,28 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences String message = e.getMessage(); if (TextUtils.isEmpty(message)) message = "?"; - if (e.getMessageType() == StoreEvent.NOTICE) + if (e.getMessageType() == StoreEvent.NOTICE) { EntityLog.log(ServiceSynchronize.this, account.name + " notice: " + message); - else + + if ("Still here".equals(message) && !account.ondemand) { + int pollInterval = prefs.getInt("poll_interval", 0); + if (pollInterval == 0) { + prefs.edit().putInt("poll_interval", 30).apply(); + try { + db.beginTransaction(); + for (EntityAccount a : db.account().getAccounts()) + db.account().setAccountPollExempted(a.id, !a.id.equals(account.id)); + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + ServiceSynchronize.eval(ServiceSynchronize.this, message); + } else if (account.poll_exempted) { + db.account().setAccountPollExempted(account.id, false); + ServiceSynchronize.eval(ServiceSynchronize.this, message); + } + } + } else try { wlFolder.acquire();