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

Commit 833019fd authored by Cody Kesting's avatar Cody Kesting Committed by Automerger Merge Worker
Browse files

Sort administrator UIDs for NetworkCapabilities. am: 93c1e656 am: 2bf058b2 am: 0428d186

Change-Id: Ib5f251515ce53c381617671a198b983515a61087
parents f73541f8 0428d186
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -947,12 +947,19 @@ public final class NetworkCapabilities implements Parcelable {
     * <p>The administrator UIDs are set by network agents.
     *
     * @param administratorUids the UIDs to be set as administrators of this Network.
     * @throws IllegalArgumentException if duplicate UIDs are contained in administratorUids
     * @see #mAdministratorUids
     * @hide
     */
    @NonNull
    public NetworkCapabilities setAdministratorUids(@NonNull final int[] administratorUids) {
        mAdministratorUids = Arrays.copyOf(administratorUids, administratorUids.length);
        Arrays.sort(mAdministratorUids);
        for (int i = 0; i < mAdministratorUids.length - 1; i++) {
            if (mAdministratorUids[i] >= mAdministratorUids[i + 1]) {
                throw new IllegalArgumentException("All administrator UIDs must be unique");
            }
        }
        return this;
    }

+17 −0
Original line number Diff line number Diff line
@@ -441,6 +441,23 @@ public class NetworkCapabilitiesTest {
        return range;
    }

    @Test
    public void testSetAdministratorUids() {
        NetworkCapabilities nc =
                new NetworkCapabilities().setAdministratorUids(new int[] {2, 1, 3});

        assertArrayEquals(new int[] {1, 2, 3}, nc.getAdministratorUids());
    }

    @Test
    public void testSetAdministratorUidsWithDuplicates() {
        try {
            new NetworkCapabilities().setAdministratorUids(new int[] {1, 1});
            fail("Expected IllegalArgumentException for duplicate uids");
        } catch (IllegalArgumentException expected) {
        }
    }

    @Test
    public void testCombineCapabilities() {
        NetworkCapabilities nc1 = new NetworkCapabilities();