Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d01b763 authored by Stephanie Bak's avatar Stephanie Bak
Browse files

WifiSsidPolicy replace static method with constructor

Bug: 216628454
Test: DevicePolicyManagerTest
Change-Id: I149dad0caf3725cd59204b2d3a04828f5950ed3e
parent 22caa6fb
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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();
+4 −2
Original line number Diff line number Diff line
@@ -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();
+14 −27
Original line number Diff line number Diff line
@@ -73,41 +73,28 @@ public final class WifiSsidPolicy implements Parcelable {
    private @WifiSsidPolicyType int mPolicyType;
    private ArraySet<WifiSsid> mSsids;

    private WifiSsidPolicy(@WifiSsidPolicyType int policyType, @NonNull Set<WifiSsid> ssids) {
        mPolicyType = policyType;
        mSsids = new ArraySet<>(ssids);
    }

    private WifiSsidPolicy(Parcel in) {
        mPolicyType = in.readInt();
        mSsids = (ArraySet<WifiSsid>) in.readArraySet(null);
    }
    /**
     * Create the allowlist Wi-Fi SSID Policy.
     * Create the Wi-Fi SSID Policy.
     *
     * @param ssids allowlist of {@link WifiSsid}
     * @throws IllegalArgumentException if the input ssids list is empty
     * @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
     */
    @NonNull
    public static WifiSsidPolicy createAllowlistPolicy(@NonNull Set<WifiSsid> ssids) {
    public WifiSsidPolicy(@WifiSsidPolicyType int policyType, @NonNull Set<WifiSsid> ssids) {
        if (ssids.isEmpty()) {
            throw new IllegalArgumentException("SSID list cannot be empty");
        }
        return new WifiSsidPolicy(WIFI_SSID_POLICY_TYPE_ALLOWLIST, ssids);
        if (policyType != WIFI_SSID_POLICY_TYPE_ALLOWLIST
                && policyType != WIFI_SSID_POLICY_TYPE_DENYLIST) {
            throw new IllegalArgumentException("Invalid policy type");
        }

    /**
     * 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");
        mPolicyType = policyType;
        mSsids = new ArraySet<>(ssids);
    }
        return new WifiSsidPolicy(WIFI_SSID_POLICY_TYPE_DENYLIST, ssids);

    private WifiSsidPolicy(Parcel in) {
        mPolicyType = in.readInt();
        mSsids = (ArraySet<WifiSsid>) in.readArraySet(null);
    }

    /**
+14 −8
Original line number Diff line number Diff line
@@ -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