From df9611cab797004743c88b299ec0a29df62f5714 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Thu, 13 May 2021 10:17:16 +0800 Subject: [PATCH] Replace clearAll with withoutDefaultCapabilities As the feedback from API review, the clearAll method in Builder does not match the actual usage. Thus, remove it and replace with withoutDefaultCapabilities to provide clearer usage. Bug: 184735772 Test: make update-api ; m Change-Id: Ida8d25d57504864f046e3403f593cc606fbfe982 CTS-Coverage-Bug: 186061922 --- framework/api/system-current.txt | 2 +- .../src/android/net/NetworkCapabilities.java | 26 +++++++++++-------- 2 files changed, 16 insertions(+), 12 deletions(-) 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 0bafd5b2f8..b3bb4517f6 100644 --- a/framework/src/android/net/NetworkCapabilities.java +++ b/framework/src/android/net/NetworkCapabilities.java @@ -2418,6 +2418,11 @@ public final class NetworkCapabilities implements Parcelable { return mTransportInfo.getApplicableRedactions(); } + private NetworkCapabilities removeDefaultCapabilites() { + mNetworkCapabilities &= ~DEFAULT_CAPABILITIES; + return this; + } + /** * Builder class for NetworkCapabilities. * @@ -2453,6 +2458,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. * @@ -2512,17 +2527,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. *