diff options
author | Alon Albert <aalbert@google.com> | 2011-02-15 14:02:14 -0800 |
---|---|---|
committer | Alon Albert <aalbert@google.com> | 2011-02-16 10:17:49 -0800 |
commit | ed1d253573a238fd53d27def24d298314f24d425 (patch) | |
tree | 3c18ce03c299253c21826b99907188d0b6bf0d0a /core/java/android/content/SyncManager.java | |
parent | f313e95821cdb7e9dca8e61d87747064a63e807b (diff) | |
download | frameworks_base-ed1d253573a238fd53d27def24d298314f24d425.zip frameworks_base-ed1d253573a238fd53d27def24d298314f24d425.tar.gz frameworks_base-ed1d253573a238fd53d27def24d298314f24d425.tar.bz2 |
Bring back auto clear backoff on reconnect
Also, make sure it works this time by calling onBackoffChanged()
Bug: 3460736
Change-Id: I0470d6cb0aabd798dab4116d5d135c7a2364ed28
Diffstat (limited to 'core/java/android/content/SyncManager.java')
-rw-r--r-- | core/java/android/content/SyncManager.java | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java index 659b937..ebc1882 100644 --- a/core/java/android/content/SyncManager.java +++ b/core/java/android/content/SyncManager.java @@ -237,10 +237,28 @@ public class SyncManager implements OnAccountsUpdateListener { private BroadcastReceiver mConnectivityIntentReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { - sendCheckAlarmsMessage(); + final boolean wasConnected = mDataConnectionIsConnected; + + // don't use the intent to figure out if network is connected, just check + // ConnectivityManager directly. + mDataConnectionIsConnected = isNetworkConnected(); + if (mDataConnectionIsConnected) { + if (!wasConnected) { + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "Reconnection detected: clearing all backoffs"); + } + mSyncStorageEngine.clearAllBackoffs(mSyncQueue); + } + sendCheckAlarmsMessage(); + } } }; + private boolean isNetworkConnected() { + NetworkInfo networkInfo = getConnectivityManager().getActiveNetworkInfo(); + return (networkInfo != null) && networkInfo.isConnected(); + } + private BroadcastReceiver mShutdownIntentReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { @@ -1411,8 +1429,7 @@ public class SyncManager implements OnAccountsUpdateListener { // to have the most recent value used. try { waitUntilReadyToRun(); - NetworkInfo networkInfo = getConnectivityManager().getActiveNetworkInfo(); - mDataConnectionIsConnected = (networkInfo != null) && networkInfo.isConnected(); + mDataConnectionIsConnected = isNetworkConnected(); mSyncManagerWakeLock.acquire(); // Always do this first so that we be sure that any periodic syncs that // are ready to run have been converted into pending syncs. This allows the |