diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/admin/DevicePolicyManager.java | 24 | ||||
| -rw-r--r-- | core/java/android/app/admin/WifiSsidPolicy.java | 19 |
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; } |
