diff --git a/core/api/current.txt b/core/api/current.txt index fe8b979a55e5f..17e87e234e9ba 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -7930,8 +7930,7 @@ package android.app.admin { } public final class WifiSsidPolicy implements android.os.Parcelable { - method @NonNull public static android.app.admin.WifiSsidPolicy createAllowlistPolicy(@NonNull java.util.Set); - method @NonNull public static android.app.admin.WifiSsidPolicy createDenylistPolicy(@NonNull java.util.Set); + ctor public WifiSsidPolicy(int, @NonNull java.util.Set); method public int describeContents(); method public int getPolicyType(); method @NonNull public java.util.Set getSsids(); diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 487ce48484195..ad9b8f7f21748 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -14936,7 +14936,8 @@ public class DevicePolicyManager { wifiSsidAllowlist.add( WifiSsid.fromBytes(ssid.getBytes(StandardCharsets.UTF_8))); } - return WifiSsidPolicy.createAllowlistPolicy(new ArraySet<>(wifiSsidAllowlist)); + return new WifiSsidPolicy(WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_ALLOWLIST, + new ArraySet<>(wifiSsidAllowlist)); } List denylist = mService.getSsidDenylist(); if (!denylist.isEmpty()) { @@ -14945,7 +14946,8 @@ public class DevicePolicyManager { wifiSsidDenylist.add( WifiSsid.fromBytes(ssid.getBytes(StandardCharsets.UTF_8))); } - return WifiSsidPolicy.createDenylistPolicy(new ArraySet<>(wifiSsidDenylist)); + return new WifiSsidPolicy(WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_DENYLIST, + 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 a7046d41704a4..e91807535c6e8 100644 --- a/core/java/android/app/admin/WifiSsidPolicy.java +++ b/core/java/android/app/admin/WifiSsidPolicy.java @@ -73,7 +73,21 @@ public final class WifiSsidPolicy implements Parcelable { private @WifiSsidPolicyType int mPolicyType; private ArraySet mSsids; - private WifiSsidPolicy(@WifiSsidPolicyType int policyType, @NonNull Set ssids) { + /** + * Create the Wi-Fi SSID Policy. + * + * @param policyType indicate whether the policy is an allowlist or a denylist + * @param ssids set of {@link WifiSsid} + * @throws IllegalArgumentException if the input ssids set is empty or the policyType is invalid + */ + public WifiSsidPolicy(@WifiSsidPolicyType int policyType, @NonNull Set ssids) { + if (ssids.isEmpty()) { + throw new IllegalArgumentException("SSID list cannot be empty"); + } + if (policyType != WIFI_SSID_POLICY_TYPE_ALLOWLIST + && policyType != WIFI_SSID_POLICY_TYPE_DENYLIST) { + throw new IllegalArgumentException("Invalid policy type"); + } mPolicyType = policyType; mSsids = new ArraySet<>(ssids); } @@ -82,33 +96,6 @@ public final class WifiSsidPolicy implements Parcelable { mPolicyType = in.readInt(); mSsids = (ArraySet) in.readArraySet(null); } - /** - * Create the allowlist Wi-Fi SSID Policy. - * - * @param ssids allowlist of {@link WifiSsid} - * @throws IllegalArgumentException if the input ssids list is empty - */ - @NonNull - public static WifiSsidPolicy createAllowlistPolicy(@NonNull Set ssids) { - if (ssids.isEmpty()) { - throw new IllegalArgumentException("SSID list cannot be empty"); - } - return new WifiSsidPolicy(WIFI_SSID_POLICY_TYPE_ALLOWLIST, ssids); - } - - /** - * Create the denylist Wi-Fi SSID Policy. - * - * @param ssids denylist of {@link WifiSsid} - * @throws IllegalArgumentException if the input ssids list is empty - */ - @NonNull - public static WifiSsidPolicy createDenylistPolicy(@NonNull Set ssids) { - if (ssids.isEmpty()) { - throw new IllegalArgumentException("SSID list cannot be empty"); - } - return new WifiSsidPolicy(WIFI_SSID_POLICY_TYPE_DENYLIST, ssids); - } /** * Returns the set of {@link WifiSsid} diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java index b96bb23f89518..e92fc03f6149e 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java @@ -8338,7 +8338,8 @@ public class DevicePolicyManagerTest extends DpmTestBase { public void testSetSsidAllowlist_noDeviceOwnerOrPoOfOrgOwnedDevice() { final Set ssids = new ArraySet<>( Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8)))); - WifiSsidPolicy policy = WifiSsidPolicy.createAllowlistPolicy(ssids); + WifiSsidPolicy policy = new WifiSsidPolicy( + WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_ALLOWLIST, ssids); assertThrows(SecurityException.class, () -> dpm.setWifiSsidPolicy(policy)); } @@ -8348,7 +8349,8 @@ public class DevicePolicyManagerTest extends DpmTestBase { final Set ssids = new ArraySet<>( Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8)))); - WifiSsidPolicy policy = WifiSsidPolicy.createAllowlistPolicy(ssids); + WifiSsidPolicy policy = new WifiSsidPolicy( + WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_ALLOWLIST, ssids); dpm.setWifiSsidPolicy(policy); assertThat(dpm.getWifiSsidPolicy().getSsids()).isEqualTo(ssids); assertThat(dpm.getWifiSsidPolicy().getPolicyType()).isEqualTo( @@ -8367,7 +8369,8 @@ public class DevicePolicyManagerTest extends DpmTestBase { Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8)), WifiSsid.fromBytes("ssid2".getBytes(StandardCharsets.UTF_8)), WifiSsid.fromBytes("ssid3".getBytes(StandardCharsets.UTF_8)))); - WifiSsidPolicy policy = WifiSsidPolicy.createAllowlistPolicy(ssids); + WifiSsidPolicy policy = new WifiSsidPolicy( + WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_ALLOWLIST, ssids); dpm.setWifiSsidPolicy(policy); assertThat(dpm.getWifiSsidPolicy().getSsids()).isEqualTo(ssids); assertThat(dpm.getWifiSsidPolicy().getPolicyType()).isEqualTo( @@ -8380,14 +8383,15 @@ public class DevicePolicyManagerTest extends DpmTestBase { final Set ssids = new ArraySet<>(); assertThrows(IllegalArgumentException.class, - () -> WifiSsidPolicy.createAllowlistPolicy(ssids)); + () -> new WifiSsidPolicy(WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_ALLOWLIST, ssids)); } @Test public void testSetSsidDenylist_noDeviceOwnerOrPoOfOrgOwnedDevice() { final Set ssids = new ArraySet<>( Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8)))); - WifiSsidPolicy policy = WifiSsidPolicy.createDenylistPolicy(ssids); + WifiSsidPolicy policy = new WifiSsidPolicy( + WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_DENYLIST, ssids); assertThrows(SecurityException.class, () -> dpm.setWifiSsidPolicy(policy)); } @@ -8397,7 +8401,8 @@ public class DevicePolicyManagerTest extends DpmTestBase { final Set ssids = new ArraySet<>( Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8)))); - WifiSsidPolicy policy = WifiSsidPolicy.createDenylistPolicy(ssids); + WifiSsidPolicy policy = new WifiSsidPolicy( + WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_DENYLIST, ssids); dpm.setWifiSsidPolicy(policy); assertThat(dpm.getWifiSsidPolicy().getSsids()).isEqualTo(ssids); assertThat(dpm.getWifiSsidPolicy().getPolicyType()).isEqualTo( @@ -8416,7 +8421,8 @@ public class DevicePolicyManagerTest extends DpmTestBase { Arrays.asList(WifiSsid.fromBytes("ssid1".getBytes(StandardCharsets.UTF_8)), WifiSsid.fromBytes("ssid2".getBytes(StandardCharsets.UTF_8)), WifiSsid.fromBytes("ssid3".getBytes(StandardCharsets.UTF_8)))); - WifiSsidPolicy policy = WifiSsidPolicy.createDenylistPolicy(ssids); + WifiSsidPolicy policy = new WifiSsidPolicy( + WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_DENYLIST, ssids); dpm.setWifiSsidPolicy(policy); assertThat(dpm.getWifiSsidPolicy().getSsids()).isEqualTo(ssids); assertThat(dpm.getWifiSsidPolicy().getPolicyType()).isEqualTo( @@ -8429,7 +8435,7 @@ public class DevicePolicyManagerTest extends DpmTestBase { final Set ssids = new ArraySet<>(); assertThrows(IllegalArgumentException.class, - () -> WifiSsidPolicy.createDenylistPolicy(ssids)); + () -> new WifiSsidPolicy(WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_DENYLIST, ssids)); } @Test