Making the sync manager take the data connected value from ConnectivityManager and not from the intent.
BUG:3337128 Change-Id: Ife2705569fcdde1b201773d6622a8a9d0b7ccfa1
This commit is contained in:
@@ -237,43 +237,7 @@ public class SyncManager implements OnAccountsUpdateListener {
|
||||
private BroadcastReceiver mConnectivityIntentReceiver =
|
||||
new BroadcastReceiver() {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
NetworkInfo networkInfo =
|
||||
intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
|
||||
NetworkInfo.State state = (networkInfo == null ? NetworkInfo.State.UNKNOWN :
|
||||
networkInfo.getState());
|
||||
if (Log.isLoggable(TAG, Log.VERBOSE)) {
|
||||
Log.v(TAG, "received connectivity action. network info: " + networkInfo);
|
||||
}
|
||||
|
||||
final boolean wasConnected = mDataConnectionIsConnected;
|
||||
// only pay attention to the CONNECTED and DISCONNECTED states.
|
||||
// if connected, we are connected.
|
||||
// if disconnected, we may not be connected. in some cases, we may be connected on
|
||||
// a different network.
|
||||
// e.g., if switching from GPRS to WiFi, we may receive the CONNECTED to WiFi and
|
||||
// DISCONNECTED for GPRS in any order. if we receive the CONNECTED first, and then
|
||||
// a DISCONNECTED, we want to make sure we set mDataConnectionIsConnected to true
|
||||
// since we still have a WiFi connection.
|
||||
switch (state) {
|
||||
case CONNECTED:
|
||||
mDataConnectionIsConnected = true;
|
||||
break;
|
||||
case DISCONNECTED:
|
||||
mDataConnectionIsConnected = !intent.getBooleanExtra(
|
||||
ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
|
||||
break;
|
||||
default:
|
||||
// ignore the rest of the states -- leave our boolean alone.
|
||||
}
|
||||
if (mDataConnectionIsConnected) {
|
||||
if (!wasConnected) {
|
||||
if (Log.isLoggable(TAG, Log.VERBOSE)) {
|
||||
Log.v(TAG, "Reconnection detected: clearing all backoffs");
|
||||
}
|
||||
mSyncStorageEngine.clearAllBackoffs();
|
||||
}
|
||||
sendCheckAlarmsMessage();
|
||||
}
|
||||
sendCheckAlarmsMessage();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1409,6 +1373,10 @@ public class SyncManager implements OnAccountsUpdateListener {
|
||||
public void handleMessage(Message msg) {
|
||||
long earliestFuturePollTime = Long.MAX_VALUE;
|
||||
long nextPendingSyncTime = Long.MAX_VALUE;
|
||||
// Setting the value here instead of a method because we want the dumpsys logs
|
||||
// to have the most recent value used.
|
||||
mDataConnectionIsConnected =
|
||||
getConnectivityManager().getActiveNetworkInfo().isConnected();
|
||||
try {
|
||||
waitUntilReadyToRun();
|
||||
mSyncManagerWakeLock.acquire();
|
||||
|
||||
Reference in New Issue
Block a user