Fixed call to UserManager.getVisibleUsers()
Test: atest android.car.test.mocks.AndroidMockitoHelperTest
Test: m EmbeddedKitchenSinkApp
Bug: 242801948
Change-Id: Ie18531e65bff66c7e4f9af8b5134e04a8d4f1016
diff --git a/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java b/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java
index 2bbab59..5b62a6b 100644
--- a/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java
+++ b/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java
@@ -62,6 +62,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
@@ -377,9 +378,9 @@
* returns {@link UserHandle UserHandles} with the given {@code userIds}.
*/
public static void mockUmGetVisibleUsers(UserManager um, @UserIdInt int...userIds) {
- List<UserHandle> users = Arrays.stream(userIds).mapToObj(u -> UserHandle.of(u))
- .collect(Collectors.toList());
- Log.v(TAG, "mockUmGetUserSwitchability(" + Arrays.toString(userIds) + ": returning "
+ Set<UserHandle> users = Arrays.stream(userIds).mapToObj(u -> UserHandle.of(u))
+ .collect(Collectors.toSet());
+ Log.v(TAG, "mockUmGetVisibleUsers(" + Arrays.toString(userIds) + ": returning "
+ users);
when(um.getVisibleUsers()).thenReturn(users);
}
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/users/SimpleUserPickerFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/users/SimpleUserPickerFragment.java
index 06e438b..9c7091b 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/users/SimpleUserPickerFragment.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/users/SimpleUserPickerFragment.java
@@ -53,7 +53,9 @@
import com.google.android.car.kitchensink.UserPickerActivity;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
+import java.util.Set;
import java.util.concurrent.TimeUnit;
public final class SimpleUserPickerFragment extends Fragment {
@@ -449,7 +451,7 @@
private ArrayList<String> getUnassignedUsers() {
ArrayList<String> users = new ArrayList<>();
List<UserInfo> aliveUsers = mUserManager.getAliveUsers();
- List<UserHandle> visibleUsers = mUserManager.getVisibleUsers();
+ Set<UserHandle> visibleUsers = mUserManager.getVisibleUsers();
// Exclude visible users and only show unassigned users.
for (int i = 0; i < aliveUsers.size(); ++i) {
UserInfo u = aliveUsers.get(i);
@@ -487,13 +489,8 @@
return displays;
}
- private static boolean isIncluded(int userId, List<UserHandle> visibleUsers) {
- for (int i = 0; i < visibleUsers.size(); ++i) {
- if (userId == visibleUsers.get(i).getIdentifier()) {
- return true;
- }
- }
- return false;
+ private static boolean isIncluded(int userId, Collection<UserHandle> users) {
+ return users.stream().anyMatch(u -> u.getIdentifier() == userId);
}
private static final class SpinnerWrapper {