Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6434f449 authored by Jason Monk's avatar Jason Monk Committed by android-build-merger
Browse files

Allow clicking on guest user am: c1cc9fef

am: bc4df21e

Change-Id: I013a1c3eae74d34a05494d7a4a78f51e9ddd3470
parents afeb5e2d bc4df21e
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -725,6 +725,7 @@ public class UserSettings extends SettingsPreferenceFragment
        final boolean voiceCapable = Utils.isVoiceCapable(context);
        final ArrayList<Integer> missingIcons = new ArrayList<>();
        final ArrayList<UserPreference> userPreferences = new ArrayList<>();
        int guestId = UserPreference.USERID_GUEST_DEFAULTS;
        userPreferences.add(mMePreference);

        for (UserInfo user : users) {
@@ -738,6 +739,7 @@ public class UserSettings extends SettingsPreferenceFragment
                pref = mMePreference;
            } else if (user.isGuest()) {
                // Skip over Guest. We add generic Guest settings after this loop
                guestId = user.id;
                continue;
            } else {
                // With Telephony:
@@ -814,9 +816,23 @@ public class UserSettings extends SettingsPreferenceFragment
            userPreferences.add(pref);
            pref.setDisabledByAdmin(
                    mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
            if (!pref.isDisabledByAdmin()) {
                pref.setSelectable(false);
            int finalGuestId = guestId;
            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