diff --git a/framework/api/system-current.txt b/framework/api/system-current.txt index 52673c9267..bb239f77a3 100644 --- a/framework/api/system-current.txt +++ b/framework/api/system-current.txt @@ -296,7 +296,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[]); @@ -310,6 +309,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 2e4d8f8284..4932952434 100644 --- a/framework/src/android/net/NetworkCapabilities.java +++ b/framework/src/android/net/NetworkCapabilities.java @@ -2416,6 +2416,11 @@ public final class NetworkCapabilities implements Parcelable { return mTransportInfo.getApplicableRedactions(); } + private NetworkCapabilities removeDefaultCapabilites() { + mNetworkCapabilities &= ~DEFAULT_CAPABILITIES; + return this; + } + /** * Builder class for NetworkCapabilities. * @@ -2451,6 +2456,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. * @@ -2511,17 +2526,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. *