diff options
author | Danny Baumann <dannybaumann@web.de> | 2015-06-10 12:49:02 +0200 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2015-06-11 06:03:33 +0000 |
commit | 381a2c24ac73c069c609dac8942752c72beba8e7 (patch) | |
tree | e055029a4bc52f769665753b1fd35039a45b9c84 | |
parent | 6a9853416cd2ae9848a2dcabdab98867f84972f4 (diff) | |
download | android_packages_apps_Email-381a2c24ac73c069c609dac8942752c72beba8e7.tar.gz android_packages_apps_Email-381a2c24ac73c069c609dac8942752c72beba8e7.tar.bz2 android_packages_apps_Email-381a2c24ac73c069c609dac8942752c72beba8e7.zip |
Don't re-sync when refreshing the IDLE connection.
The refreshing (done every 25 minutes) should be a cheap operation.
Instead, do a (quick) re-sync after idling failed.
Change-Id: Idfcc775417dc02417142e51ca546c9564c660aab
-rw-r--r-- | provider_src/com/android/email/service/ImapService.java | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/provider_src/com/android/email/service/ImapService.java b/provider_src/com/android/email/service/ImapService.java index c036e6795..f4328bc6c 100644 --- a/provider_src/com/android/email/service/ImapService.java +++ b/provider_src/com/android/email/service/ImapService.java @@ -265,6 +265,10 @@ public class ImapService extends Service { ImapIdleFolderHolder holder = ImapIdleFolderHolder.getInstance(); holder.registerMailboxForIdle(mContext, account, mMailbox); + + // Request a quick sync to make sure we didn't lose any new mails + // during the failure time + ImapService.requestSync(mContext, account, mMailbox.mId, false); } catch (MessagingException ex) { LogUtils.w(LOG_TAG, ex, "Failed to register mailbox for idle. Reschedule."); reschedulePing(increasePingDelay()); @@ -904,24 +908,12 @@ public class ImapService extends Service { return; } - Store remoteStore = null; try { - // Since we were idling, just perform a full sync of the mailbox to ensure - // we have all the items before kick the connection - remoteStore = Store.getInstance(account, context); - synchronizeMailboxGeneric(context, account, remoteStore, - mailbox, false, true); - - // Kick mailbox ImapIdleFolderHolder holder = ImapIdleFolderHolder.getInstance(); holder.kickIdledMailbox(context, mailbox, account); } catch (Exception e) { LogUtils.e(Logging.LOG_TAG,"Failed to kick idled connection " + "for mailbox " + mailboxId, e); - } finally { - if (remoteStore != null) { - remoteStore.closeConnections(); - } } } }); |