[CS02]Remove hidden API usage of NetworkCapabilities

The connection service will become the mainline module. The mutable
NetworkCapabilities is deprecated, and the NetworkCapabilities should
be built through their Builder instead.

Bug: 170598012
Test: atest EthernetServiceTests
Change-Id: I31f12a39a924302beca980b8d920e3c5c18816d4
This commit is contained in:
lifr
2021-01-28 19:11:04 +08:00
parent ab2e555c99
commit 810d8f0c94
2 changed files with 21 additions and 13 deletions

View File

@@ -161,12 +161,20 @@ public class EthernetNetworkFactory extends NetworkFactory {
updateCapabilityFilter();
}
private static NetworkCapabilities mixInCapabilities(NetworkCapabilities nc,
NetworkCapabilities addedNc) {
final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder(nc);
for (int transport : addedNc.getTransportTypes()) builder.addTransportType(transport);
for (int capability : addedNc.getCapabilities()) builder.addCapability(capability);
return builder.build();
}
private void updateCapabilityFilter() {
NetworkCapabilities capabilitiesFilter = new NetworkCapabilities();
capabilitiesFilter.clearAll();
for (NetworkInterfaceState iface: mTrackingInterfaces.values()) {
capabilitiesFilter.combineCapabilities(iface.mCapabilities);
capabilitiesFilter = mixInCapabilities(capabilitiesFilter, iface.mCapabilities);
}
if (DBG) Log.d(TAG, "updateCapabilityFilter: " + capabilitiesFilter);
@@ -210,7 +218,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
private NetworkInterfaceState networkForRequest(NetworkRequest request) {
String requestedIface = null;
NetworkSpecifier specifier = request.networkCapabilities.getNetworkSpecifier();
NetworkSpecifier specifier = request.getNetworkSpecifier();
if (specifier instanceof StringNetworkSpecifier) {
requestedIface = ((StringNetworkSpecifier) specifier).specifier;
}

View File

@@ -506,9 +506,9 @@ final class EthernetTracker {
boolean clearDefaultCapabilities, @Nullable String commaSeparatedCapabilities,
@Nullable String overrideTransport) {
NetworkCapabilities nc = new NetworkCapabilities();
final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder();
if (clearDefaultCapabilities) {
nc.clearAll(); // Remove default capabilities and transports
builder.clearAll(); // Remove default capabilities and transports
}
// Determine the transport type. If someone has tried to define an override transport then
@@ -536,21 +536,21 @@ final class EthernetTracker {
// Apply the transport. If the user supplied a valid number that is not a valid transport
// then adding will throw an exception. Default back to TRANSPORT_ETHERNET if that happens
try {
nc.addTransportType(transport);
builder.addTransportType(transport);
} catch (IllegalArgumentException iae) {
Log.e(TAG, transport + " is not a valid NetworkCapability.TRANSPORT_* value. "
+ "Defaulting to TRANSPORT_ETHERNET");
nc.addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET);
builder.addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET);
}
nc.setLinkUpstreamBandwidthKbps(100 * 1000);
nc.setLinkDownstreamBandwidthKbps(100 * 1000);
builder.setLinkUpstreamBandwidthKbps(100 * 1000);
builder.setLinkDownstreamBandwidthKbps(100 * 1000);
if (!TextUtils.isEmpty(commaSeparatedCapabilities)) {
for (String strNetworkCapability : commaSeparatedCapabilities.split(",")) {
if (!TextUtils.isEmpty(strNetworkCapability)) {
try {
nc.addCapability(Integer.valueOf(strNetworkCapability));
builder.addCapability(Integer.valueOf(strNetworkCapability));
} catch (NumberFormatException nfe) {
Log.e(TAG, "Capability '" + strNetworkCapability + "' could not be parsed");
} catch (IllegalArgumentException iae) {
@@ -562,11 +562,11 @@ final class EthernetTracker {
}
// Ethernet networks have no way to update the following capabilities, so they always
// have them.
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING);
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_CONGESTED);
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED);
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING);
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_CONGESTED);
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED);
return nc;
return builder.build();
}
/**