WifiSsidPolicy replace static method with constructor

Bug: 216628454
Test: DevicePolicyManagerTest
Change-Id: I149dad0caf3725cd59204b2d3a04828f5950ed3e
This commit is contained in:
Stephanie Bak
2022-02-04 07:31:48 +00:00
parent 22caa6fb93
commit 8d01b763eb
4 changed files with 34 additions and 40 deletions

View File

@@ -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<android.net.wifi.WifiSsid>);
method @NonNull public static android.app.admin.WifiSsidPolicy createDenylistPolicy(@NonNull java.util.Set<android.net.wifi.WifiSsid>);
ctor public WifiSsidPolicy(int, @NonNull java.util.Set<android.net.wifi.WifiSsid>);
method public int describeContents();
method public int getPolicyType();
method @NonNull public java.util.Set<android.net.wifi.WifiSsid> getSsids();

View File

@@ -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<String> 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();

View File

@@ -73,7 +73,21 @@ public final class WifiSsidPolicy implements Parcelable {
private @WifiSsidPolicyType int mPolicyType;
private ArraySet<WifiSsid> mSsids;
private WifiSsidPolicy(@WifiSsidPolicyType int policyType, @NonNull Set<WifiSsid> 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<WifiSsid> 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<WifiSsid>) 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<WifiSsid> 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<WifiSsid> 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}

View File

@@ -8338,7 +8338,8 @@ public class DevicePolicyManagerTest extends DpmTestBase {
public void testSetSsidAllowlist_noDeviceOwnerOrPoOfOrgOwnedDevice() {
final Set<WifiSsid> 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<WifiSsid> 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<WifiSsid> 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<WifiSsid> 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<WifiSsid> 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<WifiSsid> ssids = new ArraySet<>();
assertThrows(IllegalArgumentException.class,
() -> WifiSsidPolicy.createDenylistPolicy(ssids));
() -> new WifiSsidPolicy(WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_DENYLIST, ssids));
}
@Test