From 75908bcb4db8b6140fdad1843abc2cd8f494a232 Mon Sep 17 00:00:00 2001 From: Anthony Hugh Date: Thu, 17 Oct 2019 11:28:30 -0700 Subject: [PATCH] Update UserInfo.supportsSwitchToByUser to support Headless User Mode Updates UserInfo.supportsSwitchToByUser() to support the headless system user mode. Fixes: 142492424 Test: Check user picker in UI and see that it works Change-Id: I46addf60b02025b882c705c292bca3335d0f0596 --- core/java/android/content/pm/UserInfo.java | 2 +- .../statusbar/car/UserGridRecyclerView.java | 20 +++++++------------ 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/core/java/android/content/pm/UserInfo.java b/core/java/android/content/pm/UserInfo.java index ccfa1843200cc..1e88ce7e3f5ca 100644 --- a/core/java/android/content/pm/UserInfo.java +++ b/core/java/android/content/pm/UserInfo.java @@ -312,7 +312,7 @@ public class UserInfo implements Parcelable { */ public boolean supportsSwitchToByUser() { // Hide the system user when it does not represent a human user. - boolean hideSystemUser = UserManager.isSplitSystemUser(); + boolean hideSystemUser = UserManager.isHeadlessSystemUserMode(); return (!hideSystemUser || id != UserHandle.USER_SYSTEM) && supportsSwitchTo(); } diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java index f7e5d012c76fd..f84fe5d8a7fbb 100644 --- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java +++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java @@ -54,7 +54,6 @@ import com.android.systemui.statusbar.phone.SystemUIDialog; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * Displays a GridLayout with icons for the users in the system to allow switching between users. @@ -108,21 +107,16 @@ public class UserGridRecyclerView extends RecyclerView { * @return the adapter */ public void buildAdapter() { - List userRecords = createUserRecords(getAllUsers()); + List userRecords = createUserRecords(getUsersForUserGrid()); mAdapter = new UserAdapter(mContext, userRecords); super.setAdapter(mAdapter); } - private List getAllUsers() { - Stream userListStream = - mUserManager.getUsers(/* excludeDying= */ true).stream(); - - if (UserManager.isHeadlessSystemUserMode()) { - userListStream = - userListStream.filter(userInfo -> userInfo.id != UserHandle.USER_SYSTEM); - } - userListStream = userListStream.filter(userInfo -> userInfo.supportsSwitchToByUser()); - return userListStream.collect(Collectors.toList()); + private List getUsersForUserGrid() { + return mUserManager.getUsers(/* excludeDying= */ true) + .stream() + .filter(UserInfo::supportsSwitchToByUser) + .collect(Collectors.toList()); } private List createUserRecords(List userInfoList) { @@ -189,7 +183,7 @@ public class UserGridRecyclerView extends RecyclerView { private void onUsersUpdate() { mAdapter.clearUsers(); - mAdapter.updateUsers(createUserRecords(getAllUsers())); + mAdapter.updateUsers(createUserRecords(getUsersForUserGrid())); mAdapter.notifyDataSetChanged(); }