Migrate wifi.SdkLevelUtil to com.android.modules.utils.build.SdkLevel
Migrate to standard implementation. Bug: 170538050 Test: boots up and connects to wifi Change-Id: I8fca04fa22d6053aff0f58730adfa87f0bafaa3a
This commit is contained in:
@@ -75,25 +75,34 @@ test_access_hidden_api_whitelist = [
|
|||||||
"//external/sl4a:__subpackages__",
|
"//external/sl4a:__subpackages__",
|
||||||
]
|
]
|
||||||
|
|
||||||
// wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility
|
// defaults shared between `framework-wifi` & `framework-wifi-pre-jarjar`
|
||||||
// classes before they are renamed.
|
// java_sdk_library `framework-wifi` needs sources to generate stubs, so it cannot reuse
|
||||||
java_library {
|
// `framework-wifi-pre-jarjar`
|
||||||
name: "framework-wifi-pre-jarjar",
|
java_defaults {
|
||||||
|
name: "framework-wifi-defaults",
|
||||||
defaults: ["wifi-module-sdk-version-defaults"],
|
defaults: ["wifi-module-sdk-version-defaults"],
|
||||||
sdk_version: "module_current",
|
|
||||||
static_libs: [
|
static_libs: [
|
||||||
"framework-wifi-util-lib",
|
"framework-wifi-util-lib",
|
||||||
"android.hardware.wifi-V1.0-java-constants",
|
"android.hardware.wifi-V1.0-java-constants",
|
||||||
|
"modules-utils-build",
|
||||||
],
|
],
|
||||||
libs: [
|
libs: [
|
||||||
"framework-annotations-lib",
|
|
||||||
"unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
|
"unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
|
||||||
],
|
],
|
||||||
srcs: [
|
srcs: [
|
||||||
":framework-wifi-updatable-sources",
|
":framework-wifi-updatable-sources",
|
||||||
":framework-wifi-util-lib-aidls",
|
":framework-wifi-util-lib-aidls",
|
||||||
],
|
],
|
||||||
// java_api_finder must accompany `srcs`
|
}
|
||||||
|
|
||||||
|
// wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility
|
||||||
|
// classes before they are renamed.
|
||||||
|
java_library {
|
||||||
|
name: "framework-wifi-pre-jarjar",
|
||||||
|
defaults: ["framework-wifi-defaults"],
|
||||||
|
sdk_version: "module_current",
|
||||||
|
libs: ["framework-annotations-lib"],
|
||||||
|
// java_api_finder must accompany `srcs` (`srcs` defined in `framework-wifi-defaults`)
|
||||||
plugins: ["java_api_finder"],
|
plugins: ["java_api_finder"],
|
||||||
installable: false,
|
installable: false,
|
||||||
visibility: [
|
visibility: [
|
||||||
@@ -107,18 +116,7 @@ java_sdk_library {
|
|||||||
name: "framework-wifi",
|
name: "framework-wifi",
|
||||||
defaults: [
|
defaults: [
|
||||||
"framework-module-defaults",
|
"framework-module-defaults",
|
||||||
"wifi-module-sdk-version-defaults",
|
"framework-wifi-defaults",
|
||||||
],
|
|
||||||
static_libs: [
|
|
||||||
"framework-wifi-util-lib",
|
|
||||||
"android.hardware.wifi-V1.0-java-constants",
|
|
||||||
],
|
|
||||||
libs: [
|
|
||||||
"unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
|
|
||||||
],
|
|
||||||
srcs: [
|
|
||||||
":framework-wifi-updatable-sources",
|
|
||||||
":framework-wifi-util-lib-aidls",
|
|
||||||
],
|
],
|
||||||
|
|
||||||
jarjar_rules: ":wifi-jarjar-rules",
|
jarjar_rules: ":wifi-jarjar-rules",
|
||||||
|
|||||||
@@ -123,3 +123,4 @@ rule com.android.internal.util.Preconditions* com.android.wifi.x.@0
|
|||||||
rule com.android.internal.util.Protocol* com.android.wifi.x.@0
|
rule com.android.internal.util.Protocol* com.android.wifi.x.@0
|
||||||
|
|
||||||
rule com.android.net.module.util.** com.android.wifi.x.@0
|
rule com.android.net.module.util.** com.android.wifi.x.@0
|
||||||
|
rule com.android.modules.utils.** com.android.wifi.x.@0
|
||||||
|
|||||||
@@ -21,10 +21,11 @@ import android.annotation.NonNull;
|
|||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.net.wifi.SoftApConfiguration.BandType;
|
import android.net.wifi.SoftApConfiguration.BandType;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -176,7 +177,7 @@ public final class SoftApCapability implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public int[] getSupportedChannelList(@BandType int band) {
|
public int[] getSupportedChannelList(@BandType int band) {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
switch (band) {
|
switch (band) {
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import android.annotation.NonNull;
|
|||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.net.MacAddress;
|
import android.net.MacAddress;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -31,6 +30,7 @@ import android.util.SparseIntArray;
|
|||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.internal.util.Preconditions;
|
import com.android.internal.util.Preconditions;
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
@@ -499,7 +499,7 @@ public final class SoftApConfiguration implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
public @NonNull int[] getBands() {
|
public @NonNull int[] getBands() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
int[] bands = new int[mChannels.size()];
|
int[] bands = new int[mChannels.size()];
|
||||||
@@ -535,7 +535,7 @@ public final class SoftApConfiguration implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
public @NonNull SparseIntArray getChannels() {
|
public @NonNull SparseIntArray getChannels() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
return mChannels;
|
return mChannels;
|
||||||
@@ -635,7 +635,7 @@ public final class SoftApConfiguration implements Parcelable {
|
|||||||
@SystemApi
|
@SystemApi
|
||||||
@MacRandomizationSetting
|
@MacRandomizationSetting
|
||||||
public int getMacRandomizationSetting() {
|
public int getMacRandomizationSetting() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
return mMacRandomizationSetting;
|
return mMacRandomizationSetting;
|
||||||
@@ -1219,7 +1219,7 @@ public final class SoftApConfiguration implements Parcelable {
|
|||||||
@NonNull
|
@NonNull
|
||||||
public Builder setMacRandomizationSetting(
|
public Builder setMacRandomizationSetting(
|
||||||
@MacRandomizationSetting int macRandomizationSetting) {
|
@MacRandomizationSetting int macRandomizationSetting) {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
mMacRandomizationSetting = macRandomizationSetting;
|
mMacRandomizationSetting = macRandomizationSetting;
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ import android.annotation.NonNull;
|
|||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.net.MacAddress;
|
import android.net.MacAddress;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
import com.android.internal.util.Preconditions;
|
import com.android.internal.util.Preconditions;
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ public final class SoftApInfo implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public MacAddress getBssid() {
|
public MacAddress getBssid() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
return mBssid;
|
return mBssid;
|
||||||
@@ -180,7 +180,7 @@ public final class SoftApInfo implements Parcelable {
|
|||||||
* @return valid values from {@link ScanResult}'s {@code WIFI_STANDARD_}
|
* @return valid values from {@link ScanResult}'s {@code WIFI_STANDARD_}
|
||||||
*/
|
*/
|
||||||
public @WifiAnnotations.WifiStandard int getWifiStandard() {
|
public @WifiAnnotations.WifiStandard int getWifiStandard() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
return mWifiStandard;
|
return mWifiStandard;
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ import android.net.wifi.hotspot2.IProvisioningCallback;
|
|||||||
import android.net.wifi.hotspot2.OsuProvider;
|
import android.net.wifi.hotspot2.OsuProvider;
|
||||||
import android.net.wifi.hotspot2.PasspointConfiguration;
|
import android.net.wifi.hotspot2.PasspointConfiguration;
|
||||||
import android.net.wifi.hotspot2.ProvisioningCallback;
|
import android.net.wifi.hotspot2.ProvisioningCallback;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -62,6 +61,7 @@ import android.util.SparseArray;
|
|||||||
|
|
||||||
import com.android.internal.annotations.GuardedBy;
|
import com.android.internal.annotations.GuardedBy;
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
@@ -2493,7 +2493,7 @@ public class WifiManager {
|
|||||||
* @return true if this device supports multiple STA concurrency, false otherwise.
|
* @return true if this device supports multiple STA concurrency, false otherwise.
|
||||||
*/
|
*/
|
||||||
public boolean isMultiStaConcurrencySupported() {
|
public boolean isMultiStaConcurrencySupported() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
return isFeatureSupported(WIFI_FEATURE_ADDITIONAL_STA);
|
return isFeatureSupported(WIFI_FEATURE_ADDITIONAL_STA);
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import android.annotation.SystemApi;
|
|||||||
import android.net.MacAddress;
|
import android.net.MacAddress;
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
import android.net.wifi.hotspot2.PasspointConfiguration;
|
import android.net.wifi.hotspot2.PasspointConfiguration;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import android.telephony.SubscriptionInfo;
|
import android.telephony.SubscriptionInfo;
|
||||||
@@ -34,6 +33,8 @@ import android.telephony.SubscriptionManager;
|
|||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import java.nio.charset.CharsetEncoder;
|
import java.nio.charset.CharsetEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -451,7 +452,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
|||||||
* @return Instance of {@link Builder} to enable chaining of the builder method.
|
* @return Instance of {@link Builder} to enable chaining of the builder method.
|
||||||
*/
|
*/
|
||||||
public @NonNull Builder setSubscriptionId(int subId) {
|
public @NonNull Builder setSubscriptionId(int subId) {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
mSubscriptionId = subId;
|
mSubscriptionId = subId;
|
||||||
@@ -466,7 +467,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
|||||||
* @return Instance of {@link Builder} to enable chaining of the builder method.
|
* @return Instance of {@link Builder} to enable chaining of the builder method.
|
||||||
*/
|
*/
|
||||||
public @NonNull Builder setPriorityGroup(int priorityGroup) {
|
public @NonNull Builder setPriorityGroup(int priorityGroup) {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
mPriorityGroup = priorityGroup;
|
mPriorityGroup = priorityGroup;
|
||||||
@@ -707,7 +708,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
public @NonNull Builder setOemPaid(boolean isOemPaid) {
|
public @NonNull Builder setOemPaid(boolean isOemPaid) {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
mIsNetworkOemPaid = isOemPaid;
|
mIsNetworkOemPaid = isOemPaid;
|
||||||
@@ -1204,7 +1205,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
public boolean isOemPaid() {
|
public boolean isOemPaid() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
return wifiConfiguration.oemPaid;
|
return wifiConfiguration.oemPaid;
|
||||||
@@ -1242,7 +1243,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
|||||||
* @see Builder#setPriorityGroup(int)
|
* @see Builder#setPriorityGroup(int)
|
||||||
*/
|
*/
|
||||||
public int getPriorityGroup() {
|
public int getPriorityGroup() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
return priorityGroup;
|
return priorityGroup;
|
||||||
@@ -1252,7 +1253,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
|||||||
* @see Builder#setSubscriptionId(int)
|
* @see Builder#setSubscriptionId(int)
|
||||||
*/
|
*/
|
||||||
public int getSubscriptionId() {
|
public int getSubscriptionId() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
return wifiConfiguration.subscriptionId;
|
return wifiConfiguration.subscriptionId;
|
||||||
|
|||||||
@@ -17,11 +17,12 @@
|
|||||||
package android.net.wifi.aware;
|
package android.net.wifi.aware;
|
||||||
|
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
@@ -92,7 +93,7 @@ public final class Characteristics implements Parcelable {
|
|||||||
* @return True if supported, false otherwise.
|
* @return True if supported, false otherwise.
|
||||||
*/
|
*/
|
||||||
public boolean isInstantCommunicationModeSupported() {
|
public boolean isInstantCommunicationModeSupported() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
return mCharacteristics.getBoolean(KEY_IS_INSTANT_COMMUNICATION_MODE_SUPPORTED);
|
return mCharacteristics.getBoolean(KEY_IS_INSTANT_COMMUNICATION_MODE_SUPPORTED);
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ import android.net.ConnectivityManager;
|
|||||||
import android.net.NetworkRequest;
|
import android.net.NetworkRequest;
|
||||||
import android.net.NetworkSpecifier;
|
import android.net.NetworkSpecifier;
|
||||||
import android.net.wifi.util.HexEncoding;
|
import android.net.wifi.util.HexEncoding;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -39,6 +38,8 @@ import android.os.Message;
|
|||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
@@ -210,7 +211,7 @@ public class WifiAwareManager {
|
|||||||
* or not (false).
|
* or not (false).
|
||||||
*/
|
*/
|
||||||
public boolean isDeviceAttached() {
|
public boolean isDeviceAttached() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -229,7 +230,7 @@ public class WifiAwareManager {
|
|||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
public void enableInstantCommunicationMode(boolean enable) {
|
public void enableInstantCommunicationMode(boolean enable) {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -246,7 +247,7 @@ public class WifiAwareManager {
|
|||||||
* @return true if it is enabled, false otherwise.
|
* @return true if it is enabled, false otherwise.
|
||||||
*/
|
*/
|
||||||
public boolean isInstantCommunicationModeEnabled() {
|
public boolean isInstantCommunicationModeEnabled() {
|
||||||
if (!SdkLevelUtil.isAtLeastS()) {
|
if (!SdkLevel.isAtLeastS()) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2020 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package android.net.wifi.util;
|
|
||||||
|
|
||||||
import android.os.Build;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Utility to check the SDK version of the device that the code is running on.
|
|
||||||
*
|
|
||||||
* This can be used to disable new Wifi APIs added in Mainline updates on older SDK versions.
|
|
||||||
*
|
|
||||||
* Note: if certain functionality is gated with SdkLevelUtil, its corresponding unit tests should
|
|
||||||
* also be gated by the same condition. Then, those unit tests will only be exercised on a base
|
|
||||||
* system image satisfying that condition.
|
|
||||||
* Alternatively, it can be tested via static mocking.
|
|
||||||
*
|
|
||||||
* @hide
|
|
||||||
*/
|
|
||||||
public class SdkLevelUtil {
|
|
||||||
|
|
||||||
/** This class is not instantiable. */
|
|
||||||
private SdkLevelUtil() {}
|
|
||||||
|
|
||||||
/** Returns true if the Android platform SDK is at least "S", false otherwise. */
|
|
||||||
public static boolean isAtLeastS() {
|
|
||||||
// TODO(b/167575586): after S SDK finalization, this method should just be
|
|
||||||
// `return Build.VERSION.SDK_INT >= Build.VERSION_CODES.S;`
|
|
||||||
|
|
||||||
// at least S: return true
|
|
||||||
// this condition only evaluates to true after S SDK finalization when VERSION_CODES.S
|
|
||||||
// is set to something like "31", before SDK finalization the value is "10000"
|
|
||||||
// Note that Build.VERSION_CODES.S is inlined at compile time. If it's inlined to 10000,
|
|
||||||
// this condition never evaluates to true.
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Assume for now that S = R + 1
|
|
||||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.R) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// R: check CODENAME
|
|
||||||
// Before S SDK finalization, SDK_INT = R = 30 i.e. remains on the previous version
|
|
||||||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.R) {
|
|
||||||
// CODENAME = "REL" on R release builds
|
|
||||||
// CODENAME = "S" on S development builds
|
|
||||||
return "S".equals(Build.VERSION.CODENAME);
|
|
||||||
}
|
|
||||||
|
|
||||||
// older than R: return false
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -31,10 +31,11 @@ android_test {
|
|||||||
static_libs: [
|
static_libs: [
|
||||||
"androidx.test.rules",
|
"androidx.test.rules",
|
||||||
"core-test-rules",
|
"core-test-rules",
|
||||||
|
"frameworks-base-testutils",
|
||||||
"guava",
|
"guava",
|
||||||
"mockito-target-minus-junit4",
|
"mockito-target-minus-junit4",
|
||||||
|
"modules-utils-build",
|
||||||
"net-tests-utils",
|
"net-tests-utils",
|
||||||
"frameworks-base-testutils",
|
|
||||||
"truth-prebuilt",
|
"truth-prebuilt",
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -47,4 +48,8 @@ android_test {
|
|||||||
"device-tests",
|
"device-tests",
|
||||||
"mts",
|
"mts",
|
||||||
],
|
],
|
||||||
|
|
||||||
|
// static libs used by both framework-wifi & FrameworksWifiApiTests. Need to rename test usage
|
||||||
|
// to a different package name to prevent conflict with the copy in production code.
|
||||||
|
jarjar_rules: "test-jarjar-rules.txt",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,14 +16,15 @@
|
|||||||
|
|
||||||
package android.net.wifi;
|
package android.net.wifi;
|
||||||
|
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Parcel;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assume.assumeTrue;
|
import static org.junit.Assume.assumeTrue;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -93,7 +94,7 @@ public class SoftApCapabilityTest {
|
|||||||
|
|
||||||
@Test(expected = IllegalArgumentException.class)
|
@Test(expected = IllegalArgumentException.class)
|
||||||
public void testGetSupportedChannelListWithInvalidBand() {
|
public void testGetSupportedChannelListWithInvalidBand() {
|
||||||
assumeTrue(SdkLevelUtil.isAtLeastS());
|
assumeTrue(SdkLevel.isAtLeastS());
|
||||||
|
|
||||||
long testSoftApFeature = SoftApCapability.SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT
|
long testSoftApFeature = SoftApCapability.SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT
|
||||||
| SoftApCapability.SOFTAP_FEATURE_ACS_OFFLOAD;
|
| SoftApCapability.SOFTAP_FEATURE_ACS_OFFLOAD;
|
||||||
|
|||||||
@@ -22,12 +22,13 @@ import static org.junit.Assert.assertNull;
|
|||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import android.net.MacAddress;
|
import android.net.MacAddress;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.util.SparseIntArray;
|
import android.util.SparseIntArray;
|
||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -84,7 +85,7 @@ public class SoftApConfigurationTest {
|
|||||||
assertThat(original.getChannel()).isEqualTo(0);
|
assertThat(original.getChannel()).isEqualTo(0);
|
||||||
assertThat(original.isHiddenSsid()).isEqualTo(false);
|
assertThat(original.isHiddenSsid()).isEqualTo(false);
|
||||||
assertThat(original.getMaxNumberOfClients()).isEqualTo(0);
|
assertThat(original.getMaxNumberOfClients()).isEqualTo(0);
|
||||||
if (SdkLevelUtil.isAtLeastS()) {
|
if (SdkLevel.isAtLeastS()) {
|
||||||
assertThat(original.getMacRandomizationSetting())
|
assertThat(original.getMacRandomizationSetting())
|
||||||
.isEqualTo(SoftApConfiguration.RANDOMIZATION_PERSISTENT);
|
.isEqualTo(SoftApConfiguration.RANDOMIZATION_PERSISTENT);
|
||||||
}
|
}
|
||||||
@@ -140,7 +141,7 @@ public class SoftApConfigurationTest {
|
|||||||
.setClientControlByUserEnabled(true)
|
.setClientControlByUserEnabled(true)
|
||||||
.setBlockedClientList(testBlockedClientList)
|
.setBlockedClientList(testBlockedClientList)
|
||||||
.setAllowedClientList(testAllowedClientList);
|
.setAllowedClientList(testAllowedClientList);
|
||||||
if (SdkLevelUtil.isAtLeastS()) {
|
if (SdkLevel.isAtLeastS()) {
|
||||||
originalBuilder.setMacRandomizationSetting(SoftApConfiguration.RANDOMIZATION_NONE);
|
originalBuilder.setMacRandomizationSetting(SoftApConfiguration.RANDOMIZATION_NONE);
|
||||||
}
|
}
|
||||||
SoftApConfiguration original = originalBuilder.build();
|
SoftApConfiguration original = originalBuilder.build();
|
||||||
@@ -156,7 +157,7 @@ public class SoftApConfigurationTest {
|
|||||||
assertThat(original.isClientControlByUserEnabled()).isEqualTo(true);
|
assertThat(original.isClientControlByUserEnabled()).isEqualTo(true);
|
||||||
assertThat(original.getBlockedClientList()).isEqualTo(testBlockedClientList);
|
assertThat(original.getBlockedClientList()).isEqualTo(testBlockedClientList);
|
||||||
assertThat(original.getAllowedClientList()).isEqualTo(testAllowedClientList);
|
assertThat(original.getAllowedClientList()).isEqualTo(testAllowedClientList);
|
||||||
if (SdkLevelUtil.isAtLeastS()) {
|
if (SdkLevel.isAtLeastS()) {
|
||||||
assertThat(original.getMacRandomizationSetting())
|
assertThat(original.getMacRandomizationSetting())
|
||||||
.isEqualTo(SoftApConfiguration.RANDOMIZATION_NONE);
|
.isEqualTo(SoftApConfiguration.RANDOMIZATION_NONE);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,14 +16,15 @@
|
|||||||
|
|
||||||
package android.net.wifi;
|
package android.net.wifi;
|
||||||
|
|
||||||
import android.net.MacAddress;
|
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Parcel;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import android.net.MacAddress;
|
||||||
|
import android.os.Parcel;
|
||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,7 +85,7 @@ public class SoftApInfoTest {
|
|||||||
SoftApInfo info = new SoftApInfo();
|
SoftApInfo info = new SoftApInfo();
|
||||||
assertEquals(info.getFrequency(), 0);
|
assertEquals(info.getFrequency(), 0);
|
||||||
assertEquals(info.getBandwidth(), SoftApInfo.CHANNEL_WIDTH_INVALID);
|
assertEquals(info.getBandwidth(), SoftApInfo.CHANNEL_WIDTH_INVALID);
|
||||||
if (SdkLevelUtil.isAtLeastS()) {
|
if (SdkLevel.isAtLeastS()) {
|
||||||
assertEquals(info.getBssid(), null);
|
assertEquals(info.getBssid(), null);
|
||||||
assertEquals(info.getWifiStandard(), ScanResult.WIFI_STANDARD_UNKNOWN);
|
assertEquals(info.getWifiStandard(), ScanResult.WIFI_STANDARD_UNKNOWN);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,7 +86,6 @@ import android.net.wifi.WifiManager.SoftApCallback;
|
|||||||
import android.net.wifi.WifiManager.SuggestionConnectionStatusListener;
|
import android.net.wifi.WifiManager.SuggestionConnectionStatusListener;
|
||||||
import android.net.wifi.WifiManager.TrafficStateCallback;
|
import android.net.wifi.WifiManager.TrafficStateCallback;
|
||||||
import android.net.wifi.WifiManager.WifiConnectedNetworkScorer;
|
import android.net.wifi.WifiManager.WifiConnectedNetworkScorer;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerExecutor;
|
import android.os.HandlerExecutor;
|
||||||
@@ -98,6 +97,8 @@ import android.util.SparseArray;
|
|||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
@@ -1729,7 +1730,7 @@ public class WifiManagerTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testIsMultiStaConcurrencyOpenSupported() throws Exception {
|
public void testIsMultiStaConcurrencyOpenSupported() throws Exception {
|
||||||
assumeTrue(SdkLevelUtil.isAtLeastS());
|
assumeTrue(SdkLevel.isAtLeastS());
|
||||||
|
|
||||||
when(mWifiService.getSupportedFeatures())
|
when(mWifiService.getSupportedFeatures())
|
||||||
.thenReturn(new Long(WIFI_FEATURE_ADDITIONAL_STA));
|
.thenReturn(new Long(WIFI_FEATURE_ADDITIONAL_STA));
|
||||||
|
|||||||
@@ -27,11 +27,12 @@ import static org.junit.Assume.assumeTrue;
|
|||||||
import android.net.MacAddress;
|
import android.net.MacAddress;
|
||||||
import android.net.wifi.hotspot2.PasspointConfiguration;
|
import android.net.wifi.hotspot2.PasspointConfiguration;
|
||||||
import android.net.wifi.hotspot2.PasspointTestUtils;
|
import android.net.wifi.hotspot2.PasspointTestUtils;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
@@ -198,7 +199,7 @@ public class WifiNetworkSuggestionTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testWifiNetworkSuggestionBuilderForOemPaidEnhancedOpenNetworkWithBssid() {
|
public void testWifiNetworkSuggestionBuilderForOemPaidEnhancedOpenNetworkWithBssid() {
|
||||||
assumeTrue(SdkLevelUtil.isAtLeastS());
|
assumeTrue(SdkLevel.isAtLeastS());
|
||||||
|
|
||||||
WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder()
|
WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder()
|
||||||
.setSsid(TEST_SSID)
|
.setSsid(TEST_SSID)
|
||||||
@@ -953,7 +954,7 @@ public class WifiNetworkSuggestionTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testSimCredentialNetworkWithSubId() {
|
public void testSimCredentialNetworkWithSubId() {
|
||||||
assumeTrue(SdkLevelUtil.isAtLeastS());
|
assumeTrue(SdkLevel.isAtLeastS());
|
||||||
WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
|
WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
|
||||||
enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.SIM);
|
enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.SIM);
|
||||||
enterpriseConfig.setPhase2Method(WifiEnterpriseConfig.Phase2.NONE);
|
enterpriseConfig.setPhase2Method(WifiEnterpriseConfig.Phase2.NONE);
|
||||||
@@ -1254,7 +1255,7 @@ public class WifiNetworkSuggestionTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testSetIsNetworkAsOemPaid() {
|
public void testSetIsNetworkAsOemPaid() {
|
||||||
assumeTrue(SdkLevelUtil.isAtLeastS());
|
assumeTrue(SdkLevel.isAtLeastS());
|
||||||
|
|
||||||
WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder()
|
WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder()
|
||||||
.setSsid(TEST_SSID)
|
.setSsid(TEST_SSID)
|
||||||
@@ -1272,7 +1273,7 @@ public class WifiNetworkSuggestionTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testSetIsNetworkAsOemPaidOnPasspointNetwork() {
|
public void testSetIsNetworkAsOemPaidOnPasspointNetwork() {
|
||||||
assumeTrue(SdkLevelUtil.isAtLeastS());
|
assumeTrue(SdkLevel.isAtLeastS());
|
||||||
|
|
||||||
PasspointConfiguration passpointConfiguration = PasspointTestUtils.createConfig();
|
PasspointConfiguration passpointConfiguration = PasspointTestUtils.createConfig();
|
||||||
WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder()
|
WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder()
|
||||||
@@ -1307,7 +1308,7 @@ public class WifiNetworkSuggestionTest {
|
|||||||
*/
|
*/
|
||||||
@Test(expected = IllegalStateException.class)
|
@Test(expected = IllegalStateException.class)
|
||||||
public void testSetCredentialSharedWithUserWithSetIsNetworkAsOemPaid() {
|
public void testSetCredentialSharedWithUserWithSetIsNetworkAsOemPaid() {
|
||||||
assumeTrue(SdkLevelUtil.isAtLeastS());
|
assumeTrue(SdkLevel.isAtLeastS());
|
||||||
|
|
||||||
new WifiNetworkSuggestion.Builder()
|
new WifiNetworkSuggestion.Builder()
|
||||||
.setSsid(TEST_SSID)
|
.setSsid(TEST_SSID)
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ import android.content.pm.PackageManager;
|
|||||||
import android.net.MacAddress;
|
import android.net.MacAddress;
|
||||||
import android.net.wifi.RttManager;
|
import android.net.wifi.RttManager;
|
||||||
import android.net.wifi.util.HexEncoding;
|
import android.net.wifi.util.HexEncoding;
|
||||||
import android.net.wifi.util.SdkLevelUtil;
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
@@ -48,6 +47,8 @@ import android.os.test.TestLooper;
|
|||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.modules.utils.build.SdkLevel;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -164,7 +165,7 @@ public class WifiAwareManagerTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testEnableInstantCommunicationMode() throws Exception {
|
public void testEnableInstantCommunicationMode() throws Exception {
|
||||||
assumeTrue(SdkLevelUtil.isAtLeastS());
|
assumeTrue(SdkLevel.isAtLeastS());
|
||||||
mDut.isInstantCommunicationModeEnabled();
|
mDut.isInstantCommunicationModeEnabled();
|
||||||
verify(mockAwareService).isInstantCommunicationModeEnabled();
|
verify(mockAwareService).isInstantCommunicationModeEnabled();
|
||||||
mDut.enableInstantCommunicationMode(true);
|
mDut.enableInstantCommunicationMode(true);
|
||||||
|
|||||||
1
wifi/tests/test-jarjar-rules.txt
Normal file
1
wifi/tests/test-jarjar-rules.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
rule com.android.modules.utils.** com.android.wifi.test.x.@0
|
||||||
Reference in New Issue
Block a user