summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java24
-rw-r--r--core/java/android/app/admin/WifiSsidPolicy.java19
2 files changed, 30 insertions, 13 deletions
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 83265800c04f..487ce4848419 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -59,6 +59,7 @@ import android.graphics.drawable.Drawable;
import android.net.PrivateDnsConnectivityChecker;
import android.net.ProxyInfo;
import android.net.Uri;
+import android.net.wifi.WifiSsid;
import android.nfc.NfcAdapter;
import android.os.Binder;
import android.os.Build;
@@ -111,6 +112,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.net.InetSocketAddress;
import java.net.Proxy;
+import java.nio.charset.StandardCharsets;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.NoSuchAlgorithmException;
@@ -14896,10 +14898,14 @@ public class DevicePolicyManager {
mService.setSsidAllowlist(new ArrayList<>());
} else {
int policyType = policy.getPolicyType();
+ List<String> ssidList = new ArrayList<>();
+ for (WifiSsid ssid : policy.getSsids()) {
+ ssidList.add(new String(ssid.getBytes(), StandardCharsets.UTF_8));
+ }
if (policyType == WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_ALLOWLIST) {
- mService.setSsidAllowlist(new ArrayList<>(policy.getSsids()));
+ mService.setSsidAllowlist(ssidList);
} else {
- mService.setSsidDenylist(new ArrayList<>(policy.getSsids()));
+ mService.setSsidDenylist(ssidList);
}
}
} catch (RemoteException e) {
@@ -14925,11 +14931,21 @@ public class DevicePolicyManager {
try {
List<String> allowlist = mService.getSsidAllowlist();
if (!allowlist.isEmpty()) {
- return WifiSsidPolicy.createAllowlistPolicy(new ArraySet<>(allowlist));
+ List<WifiSsid> wifiSsidAllowlist = new ArrayList<>();
+ for (String ssid : allowlist) {
+ wifiSsidAllowlist.add(
+ WifiSsid.fromBytes(ssid.getBytes(StandardCharsets.UTF_8)));
+ }
+ return WifiSsidPolicy.createAllowlistPolicy(new ArraySet<>(wifiSsidAllowlist));
}
List<String> denylist = mService.getSsidDenylist();
if (!denylist.isEmpty()) {
- return WifiSsidPolicy.createDenylistPolicy(new ArraySet<>(denylist));
+ List<WifiSsid> wifiSsidDenylist = new ArrayList<>();
+ for (String ssid : denylist) {
+ wifiSsidDenylist.add(
+ WifiSsid.fromBytes(ssid.getBytes(StandardCharsets.UTF_8)));
+ }
+ return WifiSsidPolicy.createDenylistPolicy(new ArraySet<>(wifiSsidDenylist));
}
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
diff --git a/core/java/android/app/admin/WifiSsidPolicy.java b/core/java/android/app/admin/WifiSsidPolicy.java
index 37150179cc68..a7046d41704a 100644
--- a/core/java/android/app/admin/WifiSsidPolicy.java
+++ b/core/java/android/app/admin/WifiSsidPolicy.java
@@ -18,6 +18,7 @@ package android.app.admin;
import android.annotation.IntDef;
import android.annotation.NonNull;
+import android.net.wifi.WifiSsid;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.ArraySet;
@@ -70,25 +71,25 @@ public final class WifiSsidPolicy implements Parcelable {
public @interface WifiSsidPolicyType {}
private @WifiSsidPolicyType int mPolicyType;
- private ArraySet<String> mSsids;
+ private ArraySet<WifiSsid> mSsids;
- private WifiSsidPolicy(@WifiSsidPolicyType int policyType, @NonNull Set<String> ssids) {
+ private WifiSsidPolicy(@WifiSsidPolicyType int policyType, @NonNull Set<WifiSsid> ssids) {
mPolicyType = policyType;
mSsids = new ArraySet<>(ssids);
}
private WifiSsidPolicy(Parcel in) {
mPolicyType = in.readInt();
- mSsids = (ArraySet<String>) in.readArraySet(null);
+ mSsids = (ArraySet<WifiSsid>) in.readArraySet(null);
}
/**
* Create the allowlist Wi-Fi SSID Policy.
*
- * @param ssids allowlist of SSIDs in UTF-8 without double quotes format
+ * @param ssids allowlist of {@link WifiSsid}
* @throws IllegalArgumentException if the input ssids list is empty
*/
@NonNull
- public static WifiSsidPolicy createAllowlistPolicy(@NonNull Set<String> ssids) {
+ public static WifiSsidPolicy createAllowlistPolicy(@NonNull Set<WifiSsid> ssids) {
if (ssids.isEmpty()) {
throw new IllegalArgumentException("SSID list cannot be empty");
}
@@ -98,11 +99,11 @@ public final class WifiSsidPolicy implements Parcelable {
/**
* Create the denylist Wi-Fi SSID Policy.
*
- * @param ssids denylist of SSIDs in UTF-8 without double quotes format
+ * @param ssids denylist of {@link WifiSsid}
* @throws IllegalArgumentException if the input ssids list is empty
*/
@NonNull
- public static WifiSsidPolicy createDenylistPolicy(@NonNull Set<String> ssids) {
+ public static WifiSsidPolicy createDenylistPolicy(@NonNull Set<WifiSsid> ssids) {
if (ssids.isEmpty()) {
throw new IllegalArgumentException("SSID list cannot be empty");
}
@@ -110,10 +111,10 @@ public final class WifiSsidPolicy implements Parcelable {
}
/**
- * Returns the set of SSIDs in UTF-8 without double quotes format.
+ * Returns the set of {@link WifiSsid}
*/
@NonNull
- public Set<String> getSsids() {
+ public Set<WifiSsid> getSsids() {
return mSsids;
}