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
This commit is contained in:
Anthony Hugh
2019-10-17 11:28:30 -07:00
parent 4446634572
commit 75908bcb4d
2 changed files with 8 additions and 14 deletions

View File

@@ -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();
}

View File

@@ -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<UserRecord> userRecords = createUserRecords(getAllUsers());
List<UserRecord> userRecords = createUserRecords(getUsersForUserGrid());
mAdapter = new UserAdapter(mContext, userRecords);
super.setAdapter(mAdapter);
}
private List<UserInfo> getAllUsers() {
Stream<UserInfo> 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<UserInfo> getUsersForUserGrid() {
return mUserManager.getUsers(/* excludeDying= */ true)
.stream()
.filter(UserInfo::supportsSwitchToByUser)
.collect(Collectors.toList());
}
private List<UserRecord> createUserRecords(List<UserInfo> 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();
}