From 1b2fbf990e7c54e1682eb8834e5fd8f65132a3f1 Mon Sep 17 00:00:00 2001 From: Ahmed ElArabawy Date: Wed, 19 Feb 2020 15:13:55 -0800 Subject: [PATCH] Wifi: Add some interface annotations This commit adds some Wifi related interface annotations. This includes: Annotations.WifiStandard Annotations.ChannelWidth The commit also converts some APIs to @hide Bug: 149420144 Test: Builds correctly (no new functionality in commit) Change-Id: I007a7d828197e24e32d8f9bb558500e56d8b74dc --- api/system-current.txt | 3 --- wifi/java/android/net/wifi/ScanResult.java | 18 +++-------------- .../android/net/wifi/WifiAnnotations.java | 20 +++++++++++++++++++ wifi/java/android/net/wifi/WifiInfo.java | 6 +++--- wifi/java/android/net/wifi/WifiManager.java | 2 +- .../wifi/nl80211/DeviceWiphyCapabilities.java | 19 ++++++++++++++---- .../src/android/net/wifi/ScanResultTest.java | 2 +- 7 files changed, 43 insertions(+), 27 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index 2ce6fd0ff3018..9dc5cae7cdd5a 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -7812,9 +7812,6 @@ package android.net.wifi.nl80211 { method public int getMaxNumberTxSpatialStreams(); method public boolean isChannelWidthSupported(int); method public boolean isWifiStandardSupported(int); - method public void setChannelWidthSupported(int, boolean); - method public void setMaxNumberRxSpatialStreams(int); - method public void setMaxNumberTxSpatialStreams(int); method public void setWifiStandardSupport(int, boolean); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; diff --git a/wifi/java/android/net/wifi/ScanResult.java b/wifi/java/android/net/wifi/ScanResult.java index 9256c57ab4b9f..70542b5d3c655 100644 --- a/wifi/java/android/net/wifi/ScanResult.java +++ b/wifi/java/android/net/wifi/ScanResult.java @@ -16,16 +16,15 @@ package android.net.wifi; -import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; +import android.net.wifi.WifiAnnotations.ChannelWidth; +import android.net.wifi.WifiAnnotations.WifiStandard; import android.os.Parcel; import android.os.Parcelable; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; @@ -313,17 +312,6 @@ public class ScanResult implements Parcelable { */ public static final int WIFI_STANDARD_11AX = 6; - /** @hide */ - @IntDef(prefix = { "WIFI_STANDARD_" }, value = { - WIFI_STANDARD_UNKNOWN, - WIFI_STANDARD_LEGACY, - WIFI_STANDARD_11N, - WIFI_STANDARD_11AC, - WIFI_STANDARD_11AX - }) - @Retention(RetentionPolicy.SOURCE) - public @interface WifiStandard{} - /** * AP wifi standard. */ @@ -368,7 +356,7 @@ public class ScanResult implements Parcelable { * {@link #CHANNEL_WIDTH_80MHZ}, {@link #CHANNEL_WIDTH_160MHZ} * or {@link #CHANNEL_WIDTH_80MHZ_PLUS_MHZ}. */ - public int channelWidth; + public @ChannelWidth int channelWidth; /** * Not used if the AP bandwidth is 20 MHz diff --git a/wifi/java/android/net/wifi/WifiAnnotations.java b/wifi/java/android/net/wifi/WifiAnnotations.java index 05e5b1d456848..acda7e06c95db 100644 --- a/wifi/java/android/net/wifi/WifiAnnotations.java +++ b/wifi/java/android/net/wifi/WifiAnnotations.java @@ -61,6 +61,26 @@ public final class WifiAnnotations { @Retention(RetentionPolicy.SOURCE) public @interface Bandwidth {} + @IntDef(prefix = { "CHANNEL_WIDTH_" }, value = { + ScanResult.CHANNEL_WIDTH_20MHZ, + ScanResult.CHANNEL_WIDTH_40MHZ, + ScanResult.CHANNEL_WIDTH_80MHZ, + ScanResult.CHANNEL_WIDTH_160MHZ, + ScanResult.CHANNEL_WIDTH_80MHZ_PLUS_MHZ, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface ChannelWidth{} + + @IntDef(prefix = { "WIFI_STANDARD_" }, value = { + ScanResult.WIFI_STANDARD_UNKNOWN, + ScanResult.WIFI_STANDARD_LEGACY, + ScanResult.WIFI_STANDARD_11N, + ScanResult.WIFI_STANDARD_11AC, + ScanResult.WIFI_STANDARD_11AX, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface WifiStandard{} + @IntDef(prefix = { "PROTOCOL_" }, value = { ScanResult.PROTOCOL_NONE, ScanResult.PROTOCOL_WPA, diff --git a/wifi/java/android/net/wifi/WifiInfo.java b/wifi/java/android/net/wifi/WifiInfo.java index 142854a9e41bc..70c5e72e4e0c0 100644 --- a/wifi/java/android/net/wifi/WifiInfo.java +++ b/wifi/java/android/net/wifi/WifiInfo.java @@ -103,7 +103,7 @@ public class WifiInfo implements Parcelable { /** * Wi-Fi standard for the connection */ - private @ScanResult.WifiStandard int mWifiStandard; + private @WifiAnnotations.WifiStandard int mWifiStandard; /** * The unit in which links speeds are expressed. @@ -518,7 +518,7 @@ public class WifiInfo implements Parcelable { * Sets the Wi-Fi standard * @hide */ - public void setWifiStandard(@ScanResult.WifiStandard int wifiStandard) { + public void setWifiStandard(@WifiAnnotations.WifiStandard int wifiStandard) { mWifiStandard = wifiStandard; } @@ -526,7 +526,7 @@ public class WifiInfo implements Parcelable { * Get connection Wi-Fi standard * @return the connection Wi-Fi standard */ - public @ScanResult.WifiStandard int getWifiStandard() { + public @WifiAnnotations.WifiStandard int getWifiStandard() { return mWifiStandard; } diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index 9703fa61ea23b..ff6229684b879 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -2563,7 +2563,7 @@ public class WifiManager { * valid values from {@link ScanResult}'s {@code WIFI_STANDARD_} * @return {@code true} if supported, {@code false} otherwise. */ - public boolean isWifiStandardSupported(@ScanResult.WifiStandard int standard) { + public boolean isWifiStandardSupported(@WifiAnnotations.WifiStandard int standard) { try { return mService.isWifiStandardSupported(standard); } catch (RemoteException e) { diff --git a/wifi/java/android/net/wifi/nl80211/DeviceWiphyCapabilities.java b/wifi/java/android/net/wifi/nl80211/DeviceWiphyCapabilities.java index a045aad9f64cd..bb0cc975a3dba 100644 --- a/wifi/java/android/net/wifi/nl80211/DeviceWiphyCapabilities.java +++ b/wifi/java/android/net/wifi/nl80211/DeviceWiphyCapabilities.java @@ -19,6 +19,8 @@ package android.net.wifi.nl80211; import android.annotation.NonNull; import android.annotation.SystemApi; import android.net.wifi.ScanResult; +import android.net.wifi.WifiAnnotations.ChannelWidth; +import android.net.wifi.WifiAnnotations.WifiStandard; import android.os.Parcel; import android.os.Parcelable; import android.util.Log; @@ -28,6 +30,9 @@ import java.util.Objects; /** * DeviceWiphyCapabilities for wificond * + * Contains the WiFi physical layer attributes and capabilities of the device. + * It is used to collect these attributes from the device driver via wificond. + * * @hide */ @SystemApi @@ -61,7 +66,7 @@ public final class DeviceWiphyCapabilities implements Parcelable { * valid values from {@link ScanResult}'s {@code WIFI_STANDARD_} * @return {@code true} if supported, {@code false} otherwise. */ - public boolean isWifiStandardSupported(int standard) { + public boolean isWifiStandardSupported(@WifiStandard int standard) { switch (standard) { case ScanResult.WIFI_STANDARD_LEGACY: return true; @@ -84,7 +89,7 @@ public final class DeviceWiphyCapabilities implements Parcelable { * valid values from {@link ScanResult}'s {@code WIFI_STANDARD_} * @param support {@code true} if supported, {@code false} otherwise. */ - public void setWifiStandardSupport(int standard, boolean support) { + public void setWifiStandardSupport(@WifiStandard int standard, boolean support) { switch (standard) { case ScanResult.WIFI_STANDARD_11N: m80211nSupported = support; @@ -107,7 +112,7 @@ public final class DeviceWiphyCapabilities implements Parcelable { * * @return {@code true} if supported, {@code false} otherwise. */ - public boolean isChannelWidthSupported(int chWidth) { + public boolean isChannelWidthSupported(@ChannelWidth int chWidth) { switch (chWidth) { case ScanResult.CHANNEL_WIDTH_20MHZ: return true; @@ -131,8 +136,10 @@ public final class DeviceWiphyCapabilities implements Parcelable { * @param chWidth valid values are {@link ScanResult#CHANNEL_WIDTH_160MHZ} and * {@link ScanResult#CHANNEL_WIDTH_80MHZ_PLUS_MHZ} * @param support {@code true} if supported, {@code false} otherwise. + * + * @hide */ - public void setChannelWidthSupported(int chWidth, boolean support) { + public void setChannelWidthSupported(@ChannelWidth int chWidth, boolean support) { switch (chWidth) { case ScanResult.CHANNEL_WIDTH_160MHZ: mChannelWidth160MhzSupported = support; @@ -159,6 +166,8 @@ public final class DeviceWiphyCapabilities implements Parcelable { * Set maximum number of transmit spatial streams * * @param streams number of spatial streams + * + * @hide */ public void setMaxNumberTxSpatialStreams(int streams) { mMaxNumberTxSpatialStreams = streams; @@ -177,6 +186,8 @@ public final class DeviceWiphyCapabilities implements Parcelable { * Set maximum number of receive spatial streams * * @param streams number of streams + * + * @hide */ public void setMaxNumberRxSpatialStreams(int streams) { mMaxNumberRxSpatialStreams = streams; diff --git a/wifi/tests/src/android/net/wifi/ScanResultTest.java b/wifi/tests/src/android/net/wifi/ScanResultTest.java index b5c74d1d01b1e..4c22d5d6dc7e6 100644 --- a/wifi/tests/src/android/net/wifi/ScanResultTest.java +++ b/wifi/tests/src/android/net/wifi/ScanResultTest.java @@ -42,7 +42,7 @@ public class ScanResultTest { public static final int TEST_LEVEL = -56; public static final int TEST_FREQUENCY = 2412; public static final long TEST_TSF = 04660l; - public static final @ScanResult.WifiStandard int TEST_WIFI_STANDARD = + public static final @WifiAnnotations.WifiStandard int TEST_WIFI_STANDARD = ScanResult.WIFI_STANDARD_11AC; /**