Merge cherrypicks of [13532551, 13532552, 13534990, 13533561, 13533870, 13533871, 13534991, 13533562, 13532553, 13533872, 13534992, 13532554, 13535065, 13535085, 13535105, 13535125, 13535126, 13535106, 13535107, 13535086] into rvc-qpr2-release
Change-Id: I5cca44426f73508e4e2645643de28bebf0cb4f42
This commit is contained in:
@@ -6318,6 +6318,25 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
return newNc;
|
||||
}
|
||||
|
||||
private void updateNetworkInfoForRoamingAndSuspended(NetworkAgentInfo nai,
|
||||
NetworkCapabilities prevNc, NetworkCapabilities newNc) {
|
||||
final boolean prevSuspended = !prevNc.hasCapability(NET_CAPABILITY_NOT_SUSPENDED);
|
||||
final boolean suspended = !newNc.hasCapability(NET_CAPABILITY_NOT_SUSPENDED);
|
||||
final boolean prevRoaming = !prevNc.hasCapability(NET_CAPABILITY_NOT_ROAMING);
|
||||
final boolean roaming = !newNc.hasCapability(NET_CAPABILITY_NOT_ROAMING);
|
||||
if (prevSuspended != suspended) {
|
||||
// TODO (b/73132094) : remove this call once the few users of onSuspended and
|
||||
// onResumed have been removed.
|
||||
notifyNetworkCallbacks(nai, suspended ? ConnectivityManager.CALLBACK_SUSPENDED
|
||||
: ConnectivityManager.CALLBACK_RESUMED);
|
||||
}
|
||||
if (prevSuspended != suspended || prevRoaming != roaming) {
|
||||
// updateNetworkInfo will mix in the suspended info from the capabilities and
|
||||
// take appropriate action for the network having possibly changed state.
|
||||
updateNetworkInfo(nai, nai.networkInfo);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the NetworkCapabilities for {@code nai} to {@code nc}. Specifically:
|
||||
*
|
||||
@@ -6349,25 +6368,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
// on this network. We might have been called by rematchNetworkAndRequests when a
|
||||
// network changed foreground state.
|
||||
processListenRequests(nai);
|
||||
final boolean prevSuspended = !prevNc.hasCapability(NET_CAPABILITY_NOT_SUSPENDED);
|
||||
final boolean suspended = !newNc.hasCapability(NET_CAPABILITY_NOT_SUSPENDED);
|
||||
final boolean prevRoaming = !prevNc.hasCapability(NET_CAPABILITY_NOT_ROAMING);
|
||||
final boolean roaming = !newNc.hasCapability(NET_CAPABILITY_NOT_ROAMING);
|
||||
if (prevSuspended != suspended || prevRoaming != roaming) {
|
||||
// TODO (b/73132094) : remove this call once the few users of onSuspended and
|
||||
// onResumed have been removed.
|
||||
notifyNetworkCallbacks(nai, suspended ? ConnectivityManager.CALLBACK_SUSPENDED
|
||||
: ConnectivityManager.CALLBACK_RESUMED);
|
||||
// updateNetworkInfo will mix in the suspended info from the capabilities and
|
||||
// take appropriate action for the network having possibly changed state.
|
||||
updateNetworkInfo(nai, nai.networkInfo);
|
||||
}
|
||||
} else {
|
||||
// If the requestable capabilities have changed or the score changed, we can't have been
|
||||
// called by rematchNetworkAndRequests, so it's safe to start a rematch.
|
||||
rematchAllNetworksAndRequests();
|
||||
notifyNetworkCallbacks(nai, ConnectivityManager.CALLBACK_CAP_CHANGED);
|
||||
}
|
||||
updateNetworkInfoForRoamingAndSuspended(nai, prevNc, newNc);
|
||||
|
||||
// TODO : static analysis indicates that prevNc can't be null here (getAndSetNetworkCaps
|
||||
// never returns null), so mark the relevant members and functions in nai as @NonNull and
|
||||
|
||||
@@ -195,7 +195,8 @@ class ConnectivityServiceIntegrationTest {
|
||||
"https://secure.test.android.com",
|
||||
responseCode = 204, contentLength = 42, redirectUrl = null))
|
||||
|
||||
val na = NetworkAgentWrapper(TRANSPORT_CELLULAR, LinkProperties(), context)
|
||||
val na = NetworkAgentWrapper(TRANSPORT_CELLULAR, LinkProperties(), null /* ncTemplate */,
|
||||
context)
|
||||
networkStackClient.verifyNetworkMonitorCreated(na.network, TEST_TIMEOUT_MS)
|
||||
|
||||
na.addCapability(NET_CAPABILITY_INTERNET)
|
||||
@@ -204,4 +205,4 @@ class ConnectivityServiceIntegrationTest {
|
||||
testCallback.expectAvailableThenValidatedCallbacks(na.network, TEST_TIMEOUT_MS)
|
||||
assertEquals(2, nsInstrumentation.getRequestUrls().size)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,12 +69,12 @@ public class NetworkAgentWrapper implements TestableNetworkCallback.HasNetwork {
|
||||
private int mStopKeepaliveError = SocketKeepalive.NO_KEEPALIVE;
|
||||
private Integer mExpectedKeepaliveSlot = null;
|
||||
|
||||
public NetworkAgentWrapper(int transport, LinkProperties linkProperties, Context context)
|
||||
throws Exception {
|
||||
public NetworkAgentWrapper(int transport, LinkProperties linkProperties,
|
||||
NetworkCapabilities ncTemplate, Context context) throws Exception {
|
||||
final int type = transportToLegacyType(transport);
|
||||
final String typeName = ConnectivityManager.getNetworkTypeName(type);
|
||||
mNetworkInfo = new NetworkInfo(type, 0, typeName, "Mock");
|
||||
mNetworkCapabilities = new NetworkCapabilities();
|
||||
mNetworkCapabilities = (ncTemplate != null) ? ncTemplate : new NetworkCapabilities();
|
||||
mNetworkCapabilities.addCapability(NET_CAPABILITY_NOT_SUSPENDED);
|
||||
mNetworkCapabilities.addTransportType(transport);
|
||||
switch (transport) {
|
||||
|
||||
@@ -35,4 +35,5 @@ class TestNetIdManager : NetIdManager() {
|
||||
private val nextId = AtomicInteger(MAX_NET_ID)
|
||||
override fun reserveNetId() = nextId.decrementAndGet()
|
||||
override fun releaseNetId(id: Int) = Unit
|
||||
fun peekNextNetId() = nextId.get() - 1
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user