summaryrefslogtreecommitdiffstats
path: root/provider_src
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2015-06-17 09:17:45 +0200
committerSteve Kondik <steve@cyngn.com>2015-10-18 14:06:01 -0700
commitc96099279b8be37bbcce9bf2d2d6334c688714a2 (patch)
treefb7066f0c32959d0f1ef82cca096d075dc4979cf /provider_src
parenta7bc7d857295c645f5c1c1774f6dfb0bb9dfda63 (diff)
downloadandroid_packages_apps_Email-c96099279b8be37bbcce9bf2d2d6334c688714a2.tar.gz
android_packages_apps_Email-c96099279b8be37bbcce9bf2d2d6334c688714a2.tar.bz2
android_packages_apps_Email-c96099279b8be37bbcce9bf2d2d6334c688714a2.zip
Properly unregister alarm manager callbacks.
Change-Id: I2d474bc1cee168a5b76b8710b382498cd6c2fd59
Diffstat (limited to 'provider_src')
-rw-r--r--provider_src/com/android/email/mail/store/ImapFolder.java7
-rw-r--r--provider_src/com/android/email/service/ImapService.java11
2 files changed, 18 insertions, 0 deletions
diff --git a/provider_src/com/android/email/mail/store/ImapFolder.java b/provider_src/com/android/email/mail/store/ImapFolder.java
index 05f44c477..bb7a6fe4b 100644
--- a/provider_src/com/android/email/mail/store/ImapFolder.java
+++ b/provider_src/com/android/email/mail/store/ImapFolder.java
@@ -85,6 +85,10 @@ public class ImapFolder extends Folder {
*/
public void onIdled();
/**
+ * Invoked when idle state is left
+ */
+ public void onIdlingDone();
+ /**
* Invoked when a new change is communicated by the server.
*
* @param needSync whether a sync is required
@@ -313,6 +317,9 @@ public class ImapFolder extends Folder {
mIdling = false;
}
+ if (callback != null) {
+ callback.onIdlingDone();
+ }
} catch (MessagingException me) {
cleanupConnection(connection, false);
synchronized (mIdleSync) {
diff --git a/provider_src/com/android/email/service/ImapService.java b/provider_src/com/android/email/service/ImapService.java
index 292a64218..52ba306d3 100644
--- a/provider_src/com/android/email/service/ImapService.java
+++ b/provider_src/com/android/email/service/ImapService.java
@@ -198,6 +198,12 @@ public class ImapService extends Service {
}
@Override
+ public void onIdlingDone() {
+ cancelKickIdleConnection();
+ resetPingDelay();
+ }
+
+ @Override
public void onNewServerChange(final boolean needSync, final List<String> fetchMessages) {
// Instead of checking every received change, request a sync of the mailbox
if (Logging.LOGD) {
@@ -551,6 +557,10 @@ public class ImapService extends Service {
mContext = context;
}
+ public void destroy() {
+ cancelIdleConnectionRestart();
+ }
+
@Override
public void onConnectivityRestored(int networkType) {
if (Logging.LOGD) {
@@ -778,6 +788,7 @@ public class ImapService extends Service {
ImapIdleFolderHolder.getInstance().unregisterAllIdledMailboxes(true);
mConnectivityManager.unregister();
getContentResolver().unregisterContentObserver(mLocalChangesObserver);
+ mConnectivityManager.destroy();
super.onDestroy();
}