diff --git a/framework/api/system-current.txt b/framework/api/system-current.txt index 730555ba7e..27bf114b52 100644 --- a/framework/api/system-current.txt +++ b/framework/api/system-current.txt @@ -294,7 +294,6 @@ package android.net { method @NonNull public android.net.NetworkCapabilities.Builder addCapability(int); method @NonNull public android.net.NetworkCapabilities.Builder addTransportType(int); method @NonNull public android.net.NetworkCapabilities build(); - method @NonNull public android.net.NetworkCapabilities.Builder clearAll(); method @NonNull public android.net.NetworkCapabilities.Builder removeCapability(int); method @NonNull public android.net.NetworkCapabilities.Builder removeTransportType(int); method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public android.net.NetworkCapabilities.Builder setAdministratorUids(@NonNull int[]); @@ -308,6 +307,7 @@ package android.net { method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public android.net.NetworkCapabilities.Builder setSsid(@Nullable String); method @NonNull public android.net.NetworkCapabilities.Builder setSubscriptionIds(@NonNull java.util.Set); method @NonNull public android.net.NetworkCapabilities.Builder setTransportInfo(@Nullable android.net.TransportInfo); + method @NonNull public static android.net.NetworkCapabilities.Builder withoutDefaultCapabilities(); } public class NetworkProvider { diff --git a/framework/src/android/net/NetworkCapabilities.java b/framework/src/android/net/NetworkCapabilities.java index c19a906ecd..90d821bd3b 100644 --- a/framework/src/android/net/NetworkCapabilities.java +++ b/framework/src/android/net/NetworkCapabilities.java @@ -2399,6 +2399,11 @@ public final class NetworkCapabilities implements Parcelable { return mTransportInfo.getApplicableRedactions(); } + private NetworkCapabilities removeDefaultCapabilites() { + mNetworkCapabilities &= ~DEFAULT_CAPABILITIES; + return this; + } + /** * Builder class for NetworkCapabilities. * @@ -2434,6 +2439,16 @@ public final class NetworkCapabilities implements Parcelable { mCaps = new NetworkCapabilities(nc); } + /** + * Creates a new Builder without the default capabilities. + */ + @NonNull + public static Builder withoutDefaultCapabilities() { + final NetworkCapabilities nc = new NetworkCapabilities(); + nc.removeDefaultCapabilites(); + return new Builder(nc); + } + /** * Adds the given transport type. * @@ -2494,17 +2509,6 @@ public final class NetworkCapabilities implements Parcelable { return this; } - /** - * Completely clears the contents of this object, removing even the capabilities that are - * set by default when the object is constructed. - * @return this builder - */ - @NonNull - public Builder clearAll() { - mCaps.clearAll(); - return this; - } - /** * Sets the owner UID. *