Merge "Update state in NetworkInfo when network resumes"
This commit is contained in:
@@ -6907,6 +6907,15 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
// worry about multiple different substates of CONNECTED.
|
// worry about multiple different substates of CONNECTED.
|
||||||
newInfo.setDetailedState(NetworkInfo.DetailedState.SUSPENDED, info.getReason(),
|
newInfo.setDetailedState(NetworkInfo.DetailedState.SUSPENDED, info.getReason(),
|
||||||
info.getExtraInfo());
|
info.getExtraInfo());
|
||||||
|
} else if (!suspended && info.getDetailedState() == NetworkInfo.DetailedState.SUSPENDED) {
|
||||||
|
// SUSPENDED state is currently only overridden from CONNECTED state. In the case the
|
||||||
|
// network agent is created, then goes to suspended, then goes out of suspended without
|
||||||
|
// ever setting connected. Check if network agent is ever connected to update the state.
|
||||||
|
newInfo.setDetailedState(nai.everConnected
|
||||||
|
? NetworkInfo.DetailedState.CONNECTED
|
||||||
|
: NetworkInfo.DetailedState.CONNECTING,
|
||||||
|
info.getReason(),
|
||||||
|
info.getExtraInfo());
|
||||||
}
|
}
|
||||||
newInfo.setRoaming(!nai.networkCapabilities.hasCapability(NET_CAPABILITY_NOT_ROAMING));
|
newInfo.setRoaming(!nai.networkCapabilities.hasCapability(NET_CAPABILITY_NOT_ROAMING));
|
||||||
return newInfo;
|
return newInfo;
|
||||||
|
|||||||
@@ -3154,6 +3154,7 @@ public class ConnectivityServiceTest {
|
|||||||
mCellNetworkAgent);
|
mCellNetworkAgent);
|
||||||
cellNetworkCallback.expectCallback(CallbackEntry.SUSPENDED, mCellNetworkAgent);
|
cellNetworkCallback.expectCallback(CallbackEntry.SUSPENDED, mCellNetworkAgent);
|
||||||
cellNetworkCallback.assertNoCallback();
|
cellNetworkCallback.assertNoCallback();
|
||||||
|
assertEquals(NetworkInfo.State.SUSPENDED, mCm.getActiveNetworkInfo().getState());
|
||||||
|
|
||||||
// Register a garden variety default network request.
|
// Register a garden variety default network request.
|
||||||
TestNetworkCallback dfltNetworkCallback = new TestNetworkCallback();
|
TestNetworkCallback dfltNetworkCallback = new TestNetworkCallback();
|
||||||
@@ -3169,6 +3170,7 @@ public class ConnectivityServiceTest {
|
|||||||
mCellNetworkAgent);
|
mCellNetworkAgent);
|
||||||
cellNetworkCallback.expectCallback(CallbackEntry.RESUMED, mCellNetworkAgent);
|
cellNetworkCallback.expectCallback(CallbackEntry.RESUMED, mCellNetworkAgent);
|
||||||
cellNetworkCallback.assertNoCallback();
|
cellNetworkCallback.assertNoCallback();
|
||||||
|
assertEquals(NetworkInfo.State.CONNECTED, mCm.getActiveNetworkInfo().getState());
|
||||||
|
|
||||||
dfltNetworkCallback = new TestNetworkCallback();
|
dfltNetworkCallback = new TestNetworkCallback();
|
||||||
mCm.registerDefaultNetworkCallback(dfltNetworkCallback);
|
mCm.registerDefaultNetworkCallback(dfltNetworkCallback);
|
||||||
|
|||||||
Reference in New Issue
Block a user