From 914a0fff2e124483178cda92ee8cb33dbc825b57 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Thu, 9 Jan 2020 10:22:47 +0800 Subject: [PATCH 1/2] Expose NetworkSpecifier methods as SystemApi Support for Wi-Fi mainline module. Bug: 135998869 Test: build and make system-api-stubs-docs-update-current-api Test: atest FrameworksNetTests Change-Id: I88f00ca4f4cd51c71f7668b34f101fe7d1332c5c Merged-In: Id705ee0f2b5c464f6d8ccc91f20dcb39dcf6f2b8 --- api/system-current.txt | 16 ++++++++++++++++ core/java/android/net/NetworkSpecifier.java | 9 ++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/api/system-current.txt b/api/system-current.txt index 75bdf0ce633fa..08d07c4106353 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4376,6 +4376,7 @@ package android.net { public final class MatchAllNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable { ctor public MatchAllNetworkSpecifier(); method public int describeContents(); + method public boolean satisfiedBy(android.net.NetworkSpecifier); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } @@ -4439,6 +4440,12 @@ package android.net { method public void updateScores(@NonNull java.util.List); } + public abstract class NetworkSpecifier { + method public void assertValidFromUid(int); + method @Nullable public android.net.NetworkSpecifier redact(); + method public abstract boolean satisfiedBy(@Nullable android.net.NetworkSpecifier); + } + public class NetworkStack { field public static final String PERMISSION_MAINLINE_NETWORK_STACK = "android.permission.MAINLINE_NETWORK_STACK"; } @@ -4509,6 +4516,7 @@ package android.net { public final class StringNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable { ctor public StringNetworkSpecifier(@NonNull String); method public int describeContents(); + method public boolean satisfiedBy(android.net.NetworkSpecifier); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; field @NonNull public final String specifier; @@ -5382,6 +5390,10 @@ package android.net.wifi { field public int numUsage; } + public final class WifiNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable { + method public boolean satisfiedBy(android.net.NetworkSpecifier); + } + public class WifiScanner { method @Deprecated public void configureWifiChange(int, int, int, int, int, android.net.wifi.WifiScanner.BssidInfo[]); method @Deprecated public void configureWifiChange(android.net.wifi.WifiScanner.WifiChangeSettings); @@ -5546,6 +5558,10 @@ package android.net.wifi.aware { method @Deprecated public android.net.NetworkSpecifier createNetworkSpecifierPmk(@NonNull android.net.wifi.aware.PeerHandle, @NonNull byte[]); } + public final class WifiAwareNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable { + method public boolean satisfiedBy(android.net.NetworkSpecifier); + } + public static final class WifiAwareNetworkSpecifier.Builder { method @NonNull public android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder setPmk(@NonNull byte[]); } diff --git a/core/java/android/net/NetworkSpecifier.java b/core/java/android/net/NetworkSpecifier.java index 2bc3eb56ec2de..cf31d217c9678 100644 --- a/core/java/android/net/NetworkSpecifier.java +++ b/core/java/android/net/NetworkSpecifier.java @@ -16,6 +16,9 @@ package android.net; +import android.annotation.Nullable; +import android.annotation.SystemApi; + /** * Describes specific properties of a requested network for use in a {@link NetworkRequest}. * @@ -31,7 +34,8 @@ public abstract class NetworkSpecifier { * * @hide */ - public abstract boolean satisfiedBy(NetworkSpecifier other); + @SystemApi + public abstract boolean satisfiedBy(@Nullable NetworkSpecifier other); /** * Optional method which can be overridden by concrete implementations of NetworkSpecifier to @@ -45,6 +49,7 @@ public abstract class NetworkSpecifier { * * @hide */ + @SystemApi public void assertValidFromUid(int requestorUid) { // empty } @@ -68,6 +73,8 @@ public abstract class NetworkSpecifier { * * @hide */ + @SystemApi + @Nullable public NetworkSpecifier redact() { // TODO (b/122160111): convert default to null once all platform NetworkSpecifiers // implement this method. From 4bcef011b29e5e27a2d827155df5681d089c88fa Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Thu, 9 Jan 2020 10:25:03 +0800 Subject: [PATCH 2/2] Expose clearCapabilities for mainline module Support telephony mainline module usage. Bug: 138306002 Test: Build and make api-stubs-docs-update-current-api Change-Id: I6260695b01ec06244d2822f9438a7fae83539ff2 Merged-In: I0a462da4e87cae2c7d4a9b9a92de061a086c5752 --- api/current.txt | 1 + core/java/android/net/NetworkRequest.java | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/api/current.txt b/api/current.txt index 6dc6c7d42a98b..cac9bf90d80da 100644 --- a/api/current.txt +++ b/api/current.txt @@ -29160,6 +29160,7 @@ package android.net { method public android.net.NetworkRequest.Builder addCapability(int); method public android.net.NetworkRequest.Builder addTransportType(int); method public android.net.NetworkRequest build(); + method @NonNull public android.net.NetworkRequest.Builder clearCapabilities(); method public android.net.NetworkRequest.Builder removeCapability(int); method public android.net.NetworkRequest.Builder removeTransportType(int); method public android.net.NetworkRequest.Builder setNetworkSpecifier(String); diff --git a/core/java/android/net/NetworkRequest.java b/core/java/android/net/NetworkRequest.java index 0c83368a2970c..c7b30096db292 100644 --- a/core/java/android/net/NetworkRequest.java +++ b/core/java/android/net/NetworkRequest.java @@ -247,9 +247,8 @@ public class NetworkRequest implements Parcelable { * removing even the capabilities that are set by default when the object is constructed. * * @return The builder to facilitate chaining. - * @hide */ - @UnsupportedAppUsage + @NonNull public Builder clearCapabilities() { mNetworkCapabilities.clearAll(); return this;