Merge "DO NOT MERGE - Switch user picker/switcher to use CarUserManagerHelper." into pi-dev

This commit is contained in:
Ying Zheng
2018-05-21 20:44:23 +00:00
committed by Android (Google) Code Review
2 changed files with 26 additions and 22 deletions

View File

@@ -18,13 +18,13 @@ package com.android.systemui.statusbar.car;
import android.animation.Animator; import android.animation.Animator;
import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorListenerAdapter;
import android.car.user.CarUserManagerHelper;
import android.content.Context; import android.content.Context;
import android.view.View; import android.view.View;
import android.view.ViewStub; import android.view.ViewStub;
import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.GridLayoutManager;
import com.android.settingslib.users.UserManagerHelper;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.statusbar.phone.StatusBar; import com.android.systemui.statusbar.phone.StatusBar;
@@ -37,7 +37,7 @@ public class FullscreenUserSwitcher {
private final UserGridRecyclerView mUserGridView; private final UserGridRecyclerView mUserGridView;
private final int mShortAnimDuration; private final int mShortAnimDuration;
private final StatusBar mStatusBar; private final StatusBar mStatusBar;
private final UserManagerHelper mUserManagerHelper; private final CarUserManagerHelper mCarUserManagerHelper;
private int mCurrentForegroundUserId; private int mCurrentForegroundUserId;
private boolean mShowing; private boolean mShowing;
@@ -52,7 +52,7 @@ public class FullscreenUserSwitcher {
mUserGridView.buildAdapter(); mUserGridView.buildAdapter();
mUserGridView.setUserSelectionListener(this::onUserSelected); mUserGridView.setUserSelectionListener(this::onUserSelected);
mUserManagerHelper = new UserManagerHelper(context); mCarUserManagerHelper = new CarUserManagerHelper(context);
updateCurrentForegroundUser(); updateCurrentForegroundUser();
mShortAnimDuration = mContainer.getResources() mShortAnimDuration = mContainer.getResources()
@@ -84,11 +84,11 @@ public class FullscreenUserSwitcher {
} }
private boolean foregroundUserChanged() { private boolean foregroundUserChanged() {
return mCurrentForegroundUserId != mUserManagerHelper.getForegroundUserId(); return mCurrentForegroundUserId != mCarUserManagerHelper.getCurrentForegroundUserId();
} }
private void updateCurrentForegroundUser() { private void updateCurrentForegroundUser() {
mCurrentForegroundUserId = mUserManagerHelper.getForegroundUserId(); mCurrentForegroundUserId = mCarUserManagerHelper.getCurrentForegroundUserId();
} }
private void onUserSelected(UserGridRecyclerView.UserRecord record) { private void onUserSelected(UserGridRecyclerView.UserRecord record) {

View File

@@ -21,6 +21,7 @@ import static android.content.DialogInterface.BUTTON_POSITIVE;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.AlertDialog.Builder; import android.app.AlertDialog.Builder;
import android.app.Dialog; import android.app.Dialog;
import android.car.user.CarUserManagerHelper;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.pm.UserInfo; import android.content.pm.UserInfo;
@@ -41,7 +42,6 @@ import android.widget.TextView;
import androidx.car.widget.PagedListView; import androidx.car.widget.PagedListView;
import com.android.internal.util.UserIcons; import com.android.internal.util.UserIcons;
import com.android.settingslib.users.UserManagerHelper;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.statusbar.phone.SystemUIDialog;
@@ -53,16 +53,16 @@ import java.util.List;
* One of the uses of this is for the lock screen in auto. * One of the uses of this is for the lock screen in auto.
*/ */
public class UserGridRecyclerView extends PagedListView implements public class UserGridRecyclerView extends PagedListView implements
UserManagerHelper.OnUsersUpdateListener { CarUserManagerHelper.OnUsersUpdateListener {
private UserSelectionListener mUserSelectionListener; private UserSelectionListener mUserSelectionListener;
private UserAdapter mAdapter; private UserAdapter mAdapter;
private UserManagerHelper mUserManagerHelper; private CarUserManagerHelper mCarUserManagerHelper;
private Context mContext; private Context mContext;
public UserGridRecyclerView(Context context, AttributeSet attrs) { public UserGridRecyclerView(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
mContext = context; mContext = context;
mUserManagerHelper = new UserManagerHelper(mContext); mCarUserManagerHelper = new CarUserManagerHelper(mContext);
} }
/** /**
@@ -71,7 +71,7 @@ public class UserGridRecyclerView extends PagedListView implements
@Override @Override
public void onFinishInflate() { public void onFinishInflate() {
super.onFinishInflate(); super.onFinishInflate();
mUserManagerHelper.registerOnUsersUpdateListener(this); mCarUserManagerHelper.registerOnUsersUpdateListener(this);
} }
/** /**
@@ -80,7 +80,7 @@ public class UserGridRecyclerView extends PagedListView implements
@Override @Override
public void onDetachedFromWindow() { public void onDetachedFromWindow() {
super.onDetachedFromWindow(); super.onDetachedFromWindow();
mUserManagerHelper.unregisterOnUsersUpdateListener(); mCarUserManagerHelper.unregisterOnUsersUpdateListener();
} }
/** /**
@@ -89,7 +89,7 @@ public class UserGridRecyclerView extends PagedListView implements
* @return the adapter * @return the adapter
*/ */
public void buildAdapter() { public void buildAdapter() {
List<UserRecord> userRecords = createUserRecords(mUserManagerHelper List<UserRecord> userRecords = createUserRecords(mCarUserManagerHelper
.getAllUsers()); .getAllUsers());
mAdapter = new UserAdapter(mContext, userRecords); mAdapter = new UserAdapter(mContext, userRecords);
super.setAdapter(mAdapter); super.setAdapter(mAdapter);
@@ -102,19 +102,20 @@ public class UserGridRecyclerView extends PagedListView implements
// Don't display guests in the switcher. // Don't display guests in the switcher.
continue; continue;
} }
boolean isForeground = mUserManagerHelper.getForegroundUserId() == userInfo.id; boolean isForeground =
mCarUserManagerHelper.getCurrentForegroundUserId() == userInfo.id;
UserRecord record = new UserRecord(userInfo, false /* isStartGuestSession */, UserRecord record = new UserRecord(userInfo, false /* isStartGuestSession */,
false /* isAddUser */, isForeground); false /* isAddUser */, isForeground);
userRecords.add(record); userRecords.add(record);
} }
// Add guest user record if the foreground user is not a guest // Add guest user record if the foreground user is not a guest
if (!mUserManagerHelper.foregroundUserIsGuestUser()) { if (!mCarUserManagerHelper.isForegroundUserGuest()) {
userRecords.add(addGuestUserRecord()); userRecords.add(addGuestUserRecord());
} }
// Add add user record if the foreground user can add users // Add add user record if the foreground user can add users
if (mUserManagerHelper.foregroundUserCanAddUsers()) { if (mCarUserManagerHelper.canForegroundUserAddUsers()) {
userRecords.add(addUserRecord()); userRecords.add(addUserRecord());
} }
@@ -148,7 +149,7 @@ public class UserGridRecyclerView extends PagedListView implements
@Override @Override
public void onUsersUpdate() { public void onUsersUpdate() {
mAdapter.clearUsers(); mAdapter.clearUsers();
mAdapter.updateUsers(createUserRecords(mUserManagerHelper.getAllUsers())); mAdapter.updateUsers(createUserRecords(mCarUserManagerHelper.getAllUsers()));
mAdapter.notifyDataSetChanged(); mAdapter.notifyDataSetChanged();
} }
@@ -212,7 +213,7 @@ public class UserGridRecyclerView extends PagedListView implements
// If the user selects Guest, start the guest session. // If the user selects Guest, start the guest session.
if (userRecord.mIsStartGuestSession) { if (userRecord.mIsStartGuestSession) {
mUserManagerHelper.startNewGuestSession(mGuestName); mCarUserManagerHelper.startNewGuestSession(mGuestName);
return; return;
} }
@@ -239,14 +240,14 @@ public class UserGridRecyclerView extends PagedListView implements
return; return;
} }
// If the user doesn't want to be a guest or add a user, switch to the user selected // If the user doesn't want to be a guest or add a user, switch to the user selected
mUserManagerHelper.switchToUser(userRecord.mInfo); mCarUserManagerHelper.switchToUser(userRecord.mInfo);
}); });
} }
private Bitmap getUserRecordIcon(UserRecord userRecord) { private Bitmap getUserRecordIcon(UserRecord userRecord) {
if (userRecord.mIsStartGuestSession) { if (userRecord.mIsStartGuestSession) {
return mUserManagerHelper.getGuestDefaultIcon(); return mCarUserManagerHelper.getGuestDefaultIcon();
} }
if (userRecord.mIsAddUser) { if (userRecord.mIsAddUser) {
@@ -254,7 +255,7 @@ public class UserGridRecyclerView extends PagedListView implements
.getDrawable(R.drawable.car_add_circle_round)); .getDrawable(R.drawable.car_add_circle_round));
} }
return mUserManagerHelper.getUserIcon(userRecord.mInfo); return mCarUserManagerHelper.getUserIcon(userRecord.mInfo);
} }
@Override @Override
@@ -272,7 +273,10 @@ public class UserGridRecyclerView extends PagedListView implements
@Override @Override
protected UserInfo doInBackground(String... userNames) { protected UserInfo doInBackground(String... userNames) {
return mUserManagerHelper.createNewUser(userNames[0]); // Default to create a non admin user for now. Need to add logic
// for user to choose whether they want to create an admin or non-admin
// user later.
return mCarUserManagerHelper.createNewNonAdminUser(userNames[0]);
} }
@Override @Override
@@ -282,7 +286,7 @@ public class UserGridRecyclerView extends PagedListView implements
@Override @Override
protected void onPostExecute(UserInfo user) { protected void onPostExecute(UserInfo user) {
if (user != null) { if (user != null) {
mUserManagerHelper.switchToUser(user); mCarUserManagerHelper.switchToUser(user);
} }
} }
} }