Add an isListen method to NetworkRequests.

This allows simplification of the ConnectivityService code.

Bug: 23113288
Change-Id: I124544b99c5a920124e9a3d31cda8c6d2abc21fd
This commit is contained in:
Lorenzo Colitti
2016-07-18 18:17:08 +09:00
parent 6f0405308b
commit 3ed97e63bb
2 changed files with 14 additions and 5 deletions

View File

@@ -283,6 +283,15 @@ public class NetworkRequest implements Parcelable {
}
};
/**
* Returns true iff. the contained NetworkRequest is of type LISTEN.
*
* @hide
*/
public boolean isListen() {
return type == Type.LISTEN;
}
/**
* Returns true iff. the contained NetworkRequest is one that:
*

View File

@@ -2283,7 +2283,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
if (VDBG) log("NetworkFactory connected");
// A network factory has connected. Send it all current NetworkRequests.
for (NetworkRequestInfo nri : mNetworkRequests.values()) {
if (!nri.request.isRequest()) continue;
if (nri.request.isListen()) continue;
NetworkAgentInfo nai = mNetworkForRequestId.get(nri.request.requestId);
ac.sendMessage(android.net.NetworkFactory.CMD_REQUEST_NETWORK,
(nai != null ? nai.getCurrentScore() : 0), 0, nri.request);
@@ -2425,7 +2425,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
private void handleRegisterNetworkRequest(NetworkRequestInfo nri) {
mNetworkRequests.put(nri.request, nri);
mNetworkRequestInfoLogs.log("REGISTER " + nri);
if (!nri.request.isRequest()) {
if (nri.request.isListen()) {
for (NetworkAgentInfo network : mNetworkAgentInfos.values()) {
if (nri.request.networkCapabilities.hasSignalStrength() &&
network.satisfiesImmutableCapabilitiesOf(nri.request)) {
@@ -4573,7 +4573,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
for (int i = 0; i < nai.numNetworkRequests(); i++) {
NetworkRequest nr = nai.requestAt(i);
// Don't send listening requests to factories. b/17393458
if (!nr.isRequest()) continue;
if (nr.isListen()) continue;
sendUpdatedScoreToFactories(nr, nai.getCurrentScore());
}
}
@@ -4667,7 +4667,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
for (int i = 0; i < nai.numNetworkRequests(); i++) {
NetworkRequest nr = nai.requestAt(i);
// Ignore listening requests.
if (!nr.isRequest()) continue;
if (nr.isListen()) continue;
loge("Dead network still had at least " + nr);
break;
}
@@ -4759,7 +4759,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
// check if it satisfies the NetworkCapabilities
if (VDBG) log(" checking if request is satisfied: " + nri.request);
if (satisfies) {
if (!nri.request.isRequest()) {
if (nri.request.isListen()) {
// This is not a request, it's a callback listener.
// Add it to newNetwork regardless of score.
if (newNetwork.addRequest(nri.request)) addedRequests.add(nri);