Always displays an option for starting a guest session in the full screen switcher.
If guest is already in the foreground, switcher will just get dimissed upon
the selection of starting a new guest session.
Change-Id: Ia79325a1583f00f35e32e30813163a208acfa0b5
Fixes: 111999338
Fixes: 111453367
Test: Manual in emulator while being logged in as Guest and interacting with the switcher.
diff --git a/packages/SystemUI/res/values/strings_car.xml b/packages/SystemUI/res/values/strings_car.xml
index 61d734f..2890cf2 100644
--- a/packages/SystemUI/res/values/strings_car.xml
+++ b/packages/SystemUI/res/values/strings_car.xml
@@ -19,7 +19,9 @@
<resources>
<!-- Name of Guest Profile. [CHAR LIMIT=30] -->
<string name="car_guest">Guest</string>
- <!-- Name of Add User Profile. [CHAR LIMIT=30] -->
+ <!-- Title for button that starts a guest session. [CHAR LIMIT=30] -->
+ <string name="start_guest_session">Guest</string>
+ <!-- Title for button that adds a new user. [CHAR LIMIT=30] -->
<string name="car_add_user">Add User</string>
<!-- Default name of the new user created. [CHAR LIMIT=30] -->
<string name="car_new_user">New User</string>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java b/packages/SystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java
index 25a55bd..af0ed284 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/car/FullscreenUserSwitcher.java
@@ -101,7 +101,8 @@
hideUserGrid();
}
- if (record.mIsForeground) {
+ if (record.mIsForeground || (record.mIsStartGuestSession
+ && mUserManagerHelper.foregroundUserIsGuestUser())) {
dismissKeyguard();
return;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java b/packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java
index 257fa75..23724c2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java
@@ -109,14 +109,12 @@
userRecords.add(record);
}
- // Add guest user record if the foreground user is not a guest
- if (!mUserManagerHelper.foregroundUserIsGuestUser()) {
- userRecords.add(addGuestUserRecord());
- }
+ // Add button for starting guest session.
+ userRecords.add(createStartGuestUserRecord());
// Add add user record if the foreground user can add users
if (mUserManagerHelper.foregroundUserCanAddUsers()) {
- userRecords.add(addUserRecord());
+ userRecords.add(createAddUserRecord());
}
return userRecords;
@@ -125,17 +123,17 @@
/**
* Create guest user record
*/
- private UserRecord addGuestUserRecord() {
+ private UserRecord createStartGuestUserRecord() {
UserInfo userInfo = new UserInfo();
- userInfo.name = mContext.getString(R.string.car_guest);
- return new UserRecord(userInfo, true /* isStartGuestSession */,
- false /* isAddUser */, false /* isForeground */);
+ userInfo.name = mContext.getString(R.string.start_guest_session);
+ return new UserRecord(userInfo, true /* isStartGuestSession */, false /* isAddUser */,
+ false /* isForeground */);
}
/**
* Create add user record
*/
- private UserRecord addUserRecord() {
+ private UserRecord createAddUserRecord() {
UserInfo userInfo = new UserInfo();
userInfo.name = mContext.getString(R.string.car_add_user);
return new UserRecord(userInfo, false /* isStartGuestSession */,
@@ -210,8 +208,6 @@
return;
}
-
- // If the user selects Guest, start the guest session.
if (userRecord.mIsStartGuestSession) {
notifyUserSelected(userRecord);
mUserManagerHelper.startNewGuestSession(mGuestName);