Publish FOREGROUND and add NOT_SUSPENDED capabilities.
NOT_SUSPENDED and FOREGROUND are capabilities that need to be public so as to reach feature parity with what information can be gotten through the use of CONNECTIVITY_ACTION and synchronous calls to ConnectivityManager. This change makes them public, and wires up the NOT_SUSPENDED capability. This deprecates in effect the old onSuspended and onResumed callbacks, but these have never been public. This also converts the onAvailable path from a multiple binder call design to a simpler, single binder call. This is only for internal convenience Test: runtest frameworks-net Test: cts Test: also manual testing Change-Id: I6ea524bb361ecef0569ea2f9006c1e516378bc25
This commit is contained in:
@@ -35,6 +35,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_MMS;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_RCS;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_SUPL;
|
||||
@@ -528,6 +529,11 @@ public class ConnectivityServiceTest {
|
||||
mNetworkAgent.sendNetworkInfo(mNetworkInfo);
|
||||
}
|
||||
|
||||
public void resume() {
|
||||
mNetworkInfo.setDetailedState(DetailedState.CONNECTED, null, null);
|
||||
mNetworkAgent.sendNetworkInfo(mNetworkInfo);
|
||||
}
|
||||
|
||||
public void disconnect() {
|
||||
mNetworkInfo.setDetailedState(DetailedState.DISCONNECTED, null, null);
|
||||
mNetworkAgent.sendNetworkInfo(mNetworkInfo);
|
||||
@@ -569,6 +575,10 @@ public class ConnectivityServiceTest {
|
||||
assertTrue(mNetworkStatusReceived.block(TIMEOUT_MS));
|
||||
return mRedirectUrl;
|
||||
}
|
||||
|
||||
public NetworkCapabilities getNetworkCapabilities() {
|
||||
return mNetworkCapabilities;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1273,6 +1283,7 @@ public class ConnectivityServiceTest {
|
||||
NETWORK_CAPABILITIES,
|
||||
LINK_PROPERTIES,
|
||||
SUSPENDED,
|
||||
RESUMED,
|
||||
LOSING,
|
||||
LOST,
|
||||
UNAVAILABLE
|
||||
@@ -1343,6 +1354,11 @@ public class ConnectivityServiceTest {
|
||||
setLastCallback(CallbackState.SUSPENDED, network, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNetworkResumed(Network network) {
|
||||
setLastCallback(CallbackState.RESUMED, network, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLosing(Network network, int maxMsToLive) {
|
||||
setLastCallback(CallbackState.LOSING, network, maxMsToLive /* autoboxed int */);
|
||||
@@ -2459,16 +2475,31 @@ public class ConnectivityServiceTest {
|
||||
|
||||
// Suspend the network.
|
||||
mCellNetworkAgent.suspend();
|
||||
cellNetworkCallback.expectCapabilitiesWithout(NET_CAPABILITY_NOT_SUSPENDED,
|
||||
mCellNetworkAgent);
|
||||
cellNetworkCallback.expectCallback(CallbackState.SUSPENDED, mCellNetworkAgent);
|
||||
cellNetworkCallback.assertNoCallback();
|
||||
|
||||
// Register a garden variety default network request.
|
||||
final TestNetworkCallback dfltNetworkCallback = new TestNetworkCallback();
|
||||
TestNetworkCallback dfltNetworkCallback = new TestNetworkCallback();
|
||||
mCm.registerDefaultNetworkCallback(dfltNetworkCallback);
|
||||
// We should get onAvailable(), onCapabilitiesChanged(), onLinkPropertiesChanged(),
|
||||
// as well as onNetworkSuspended() in rapid succession.
|
||||
dfltNetworkCallback.expectAvailableAndSuspendedCallbacks(mCellNetworkAgent, true);
|
||||
dfltNetworkCallback.assertNoCallback();
|
||||
mCm.unregisterNetworkCallback(dfltNetworkCallback);
|
||||
|
||||
mCellNetworkAgent.resume();
|
||||
cellNetworkCallback.expectCapabilitiesWith(NET_CAPABILITY_NOT_SUSPENDED,
|
||||
mCellNetworkAgent);
|
||||
cellNetworkCallback.expectCallback(CallbackState.RESUMED, mCellNetworkAgent);
|
||||
cellNetworkCallback.assertNoCallback();
|
||||
|
||||
dfltNetworkCallback = new TestNetworkCallback();
|
||||
mCm.registerDefaultNetworkCallback(dfltNetworkCallback);
|
||||
// This time onNetworkSuspended should not be called.
|
||||
dfltNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||
dfltNetworkCallback.assertNoCallback();
|
||||
|
||||
mCm.unregisterNetworkCallback(dfltNetworkCallback);
|
||||
mCm.unregisterNetworkCallback(cellNetworkCallback);
|
||||
|
||||
Reference in New Issue
Block a user