diff options
Diffstat (limited to 'tests/RailwayReferenceApp/src/com/google/android/car/networking/railway/ConfigurationUpdater.java')
-rw-r--r-- | tests/RailwayReferenceApp/src/com/google/android/car/networking/railway/ConfigurationUpdater.java | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/tests/RailwayReferenceApp/src/com/google/android/car/networking/railway/ConfigurationUpdater.java b/tests/RailwayReferenceApp/src/com/google/android/car/networking/railway/ConfigurationUpdater.java index 5164d1c851..bdf780f7a8 100644 --- a/tests/RailwayReferenceApp/src/com/google/android/car/networking/railway/ConfigurationUpdater.java +++ b/tests/RailwayReferenceApp/src/com/google/android/car/networking/railway/ConfigurationUpdater.java @@ -27,6 +27,8 @@ import android.net.NetworkCapabilities; import android.net.StaticIpConfiguration; import android.os.OutcomeReceiver; +import androidx.annotation.Nullable; + import com.google.common.base.Strings; import java.util.ArrayList; @@ -51,30 +53,47 @@ public final class ConfigurationUpdater { String interfaceName) throws IllegalArgumentException, PackageManager.NameNotFoundException { - IpConfiguration ipConfiguration = Strings.isNullOrEmpty(ipConfigurationText) ? null : + EthernetNetworkUpdateRequest request = new EthernetNetworkUpdateRequest.Builder() + .setIpConfiguration(getIpConfiguration(ipConfigurationText)) + .setNetworkCapabilities(getCapabilities(networkCapabilitiesText, packageNames)) + .build(); + + mEthernetManager.updateConfiguration(interfaceName, request, + mApplicationContext.getMainExecutor(), mCallback); + } + + @Nullable + private IpConfiguration getIpConfiguration(String ipConfigurationText) { + return Strings.isNullOrEmpty(ipConfigurationText) ? null : new IpConfiguration.Builder() .setStaticIpConfiguration(new StaticIpConfiguration.Builder() .setIpAddress(new LinkAddress(ipConfigurationText)).build()) .build(); + } - NetworkCapabilities.Builder networkCapabilitiesBuilder = new NetworkCapabilities.Builder() - .addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET); - - networkCapabilitiesBuilder.setAllowedUids( - UidToPackageNameConverter.convertToUids(mApplicationContext, packageNames)); + @Nullable + private NetworkCapabilities getCapabilities(String networkCapabilitiesText, + String packageNames) throws PackageManager.NameNotFoundException { + // TODO: Allow for setting package names without capabilities. In this case, the existing + // capabilities should be used. + if (Strings.isNullOrEmpty(networkCapabilitiesText)) { + return null; + } + NetworkCapabilities.Builder networkCapabilitiesBuilder = + NetworkCapabilities.Builder.withoutDefaultCapabilities() + .addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET); for (int capability : getCapabilitiesList(networkCapabilitiesText)) { networkCapabilitiesBuilder.addCapability(capability); } - EthernetNetworkUpdateRequest request = new EthernetNetworkUpdateRequest.Builder() - .setIpConfiguration(ipConfiguration) - .setNetworkCapabilities(networkCapabilitiesBuilder.build()) - .build(); + if (!Strings.isNullOrEmpty(packageNames)) { + networkCapabilitiesBuilder.setAllowedUids( + UidToPackageNameConverter.convertToUids(mApplicationContext, packageNames)); + } - mEthernetManager.updateConfiguration(interfaceName, request, - mApplicationContext.getMainExecutor(), mCallback); + return networkCapabilitiesBuilder.build(); } private static List<Integer> getCapabilitiesList(String capabilitiesText) |