[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
diff --git a/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java b/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java
index 3c67927..b9ebf89 100644
--- a/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java
+++ b/service-t/src/com/android/server/ethernet/EthernetNetworkFactory.java
@@ -161,12 +161,20 @@
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 @@
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;
}
diff --git a/service-t/src/com/android/server/ethernet/EthernetTracker.java b/service-t/src/com/android/server/ethernet/EthernetTracker.java
index 381f961..05b2782 100644
--- a/service-t/src/com/android/server/ethernet/EthernetTracker.java
+++ b/service-t/src/com/android/server/ethernet/EthernetTracker.java
@@ -506,9 +506,9 @@
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 @@
// 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 @@
}
// 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();
}
/**