From b64ee170ebaf00a3a7aee8ef4ae40e7e542eaef6 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 31 Mar 2020 11:11:11 +0200 Subject: [PATCH] Reset keep-alive tuning on changing interval --- .../java/eu/faircode/email/FragmentAccount.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index f03c664210..cffae85921 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -925,8 +925,8 @@ public class FragmentAccount extends FragmentBase { throw new IllegalArgumentException(context.getString(R.string.title_no_user)); if (synchronize && TextUtils.isEmpty(password) && !insecure && certificate == null && !should) throw new IllegalArgumentException(context.getString(R.string.title_no_password)); - if (TextUtils.isEmpty(interval)) - interval = Integer.toString(EntityAccount.DEFAULT_KEEP_ALIVE_INTERVAL); + int poll_interval = (TextUtils.isEmpty(interval) + ? EntityAccount.DEFAULT_KEEP_ALIVE_INTERVAL : Integer.parseInt(interval)); if (TextUtils.isEmpty(realm)) realm = null; @@ -982,7 +982,7 @@ public class FragmentAccount extends FragmentBase { return true; if (!Objects.equals(account.auto_seen, auto_seen)) return true; - if (!Objects.equals(account.poll_interval, Integer.parseInt(interval))) + if (!Objects.equals(account.poll_interval, poll_interval)) return true; if (!Objects.equals(account.partial_fetch, partial_fetch)) return true; @@ -1110,7 +1110,13 @@ public class FragmentAccount extends FragmentBase { account.notify = notify; account.browse = browse; account.auto_seen = auto_seen; - account.poll_interval = Integer.parseInt(interval); + + if (account.poll_interval != poll_interval) { + account.keep_alive_ok = false; + account.keep_alive_failed = 0; + } + account.poll_interval = poll_interval; + account.partial_fetch = partial_fetch; account.ignore_size = ignore_size; account.use_date = use_date;