Merge "Sort administrator UIDs for NetworkCapabilities."
This commit is contained in:
@@ -947,12 +947,19 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
* <p>The administrator UIDs are set by network agents.
|
* <p>The administrator UIDs are set by network agents.
|
||||||
*
|
*
|
||||||
* @param administratorUids the UIDs to be set as administrators of this Network.
|
* @param administratorUids the UIDs to be set as administrators of this Network.
|
||||||
|
* @throws IllegalArgumentException if duplicate UIDs are contained in administratorUids
|
||||||
* @see #mAdministratorUids
|
* @see #mAdministratorUids
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public NetworkCapabilities setAdministratorUids(@NonNull final int[] administratorUids) {
|
public NetworkCapabilities setAdministratorUids(@NonNull final int[] administratorUids) {
|
||||||
mAdministratorUids = Arrays.copyOf(administratorUids, administratorUids.length);
|
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;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -441,6 +441,23 @@ public class NetworkCapabilitiesTest {
|
|||||||
return range;
|
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
|
@Test
|
||||||
public void testCombineCapabilities() {
|
public void testCombineCapabilities() {
|
||||||
NetworkCapabilities nc1 = new NetworkCapabilities();
|
NetworkCapabilities nc1 = new NetworkCapabilities();
|
||||||
|
|||||||
Reference in New Issue
Block a user