Allow clicking on guest user
This is needed since the user switch will be hidden by default in QS and will show up once multi-user has been activated in some way. Test: click on guest Bug: 37152893 Change-Id: I351a5d95e9e8a5e47e388d9f0611924b077754da
This commit is contained in:
@@ -725,6 +725,7 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
final boolean voiceCapable = Utils.isVoiceCapable(context);
|
final boolean voiceCapable = Utils.isVoiceCapable(context);
|
||||||
final ArrayList<Integer> missingIcons = new ArrayList<>();
|
final ArrayList<Integer> missingIcons = new ArrayList<>();
|
||||||
final ArrayList<UserPreference> userPreferences = new ArrayList<>();
|
final ArrayList<UserPreference> userPreferences = new ArrayList<>();
|
||||||
|
int guestId = UserPreference.USERID_GUEST_DEFAULTS;
|
||||||
userPreferences.add(mMePreference);
|
userPreferences.add(mMePreference);
|
||||||
|
|
||||||
for (UserInfo user : users) {
|
for (UserInfo user : users) {
|
||||||
@@ -738,6 +739,7 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
pref = mMePreference;
|
pref = mMePreference;
|
||||||
} else if (user.isGuest()) {
|
} else if (user.isGuest()) {
|
||||||
// Skip over Guest. We add generic Guest settings after this loop
|
// Skip over Guest. We add generic Guest settings after this loop
|
||||||
|
guestId = user.id;
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
// With Telephony:
|
// With Telephony:
|
||||||
@@ -814,10 +816,24 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
userPreferences.add(pref);
|
userPreferences.add(pref);
|
||||||
pref.setDisabledByAdmin(
|
pref.setDisabledByAdmin(
|
||||||
mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
|
mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
|
||||||
if (!pref.isDisabledByAdmin()) {
|
int finalGuestId = guestId;
|
||||||
pref.setSelectable(false);
|
pref.setOnPreferenceClickListener(preference -> {
|
||||||
|
int id = finalGuestId;
|
||||||
|
if (id == UserPreference.USERID_GUEST_DEFAULTS) {
|
||||||
|
UserInfo guest = mUserManager.createGuest(
|
||||||
|
getContext(), preference.getTitle().toString());
|
||||||
|
if (guest != null) {
|
||||||
|
id = guest.id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
ActivityManager.getService().switchUser(id);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
e.rethrowFromSystemServer();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Sort list of users by serialNum
|
// Sort list of users by serialNum
|
||||||
Collections.sort(userPreferences, UserPreference.SERIAL_NUMBER_COMPARATOR);
|
Collections.sort(userPreferences, UserPreference.SERIAL_NUMBER_COMPARATOR);
|
||||||
|
Reference in New Issue
Block a user