summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2015-06-10 12:49:02 +0200
committerGerrit Code Review <gerrit@cyanogenmod.org>2015-06-11 06:03:33 +0000
commit381a2c24ac73c069c609dac8942752c72beba8e7 (patch)
treee055029a4bc52f769665753b1fd35039a45b9c84
parent6a9853416cd2ae9848a2dcabdab98867f84972f4 (diff)
downloadandroid_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.java16
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();
- }
}
}
});