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

Commit f22eb597 authored by Peter Kalauskas's avatar Peter Kalauskas Committed by Android (Google) Code Review
Browse files

Merge "Update icons and text for guest user"

parents e49ae19b 0fa7edbb
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -7111,13 +7111,15 @@
    <!-- Title for Guest user [CHAR LIMIT=35] -->
    <string name="user_guest">Guest</string>
    <!-- Label for item to exit guest mode [CHAR LIMIT=35] -->
    <string name="user_exit_guest_title">Remove guest</string>
    <string name="user_clear_guest_menu">Clear guest data</string>
    <!-- Label for item to exit guest mode [CHAR LIMIT=35] -->
    <string name="user_exit_guest_menu">End guest session</string>
    <!-- Title of dialog to user to confirm exiting guest. [CHAR LIMIT=50] -->
    <string name="user_exit_guest_confirm_title">Remove guest?</string>
    <string name="user_exit_guest_confirm_title">End guest session?</string>
    <!-- Message to user to confirm exiting guest. [CHAR LIMIT=none] -->
    <string name="user_exit_guest_confirm_message">All apps and data in this session will be deleted.</string>
    <!-- Label for button in confirmation dialog when exiting guest session [CHAR LIMIT=35] -->
    <string name="user_exit_guest_dialog_remove">Remove</string>
    <string name="user_exit_guest_dialog_remove">End session</string>
    <!-- Title of preference to enable calling[CHAR LIMIT=40] -->
    <string name="user_enable_calling">Turn on phone calls</string>
+1 −1
Original line number Diff line number Diff line
@@ -243,7 +243,7 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
                mDefaultGuestRestrictions = mUserManager.getDefaultGuestRestrictions();
                mPhonePref.setChecked(
                        !mDefaultGuestRestrictions.getBoolean(UserManager.DISALLOW_OUTGOING_CALLS));
                mRemoveUserPref.setTitle(R.string.user_exit_guest_title);
                mRemoveUserPref.setTitle(R.string.user_exit_guest_menu);
            } else {
                mPhonePref.setChecked(!mUserManager.hasUserRestriction(
                        UserManager.DISALLOW_OUTGOING_CALLS, new UserHandle(userId)));
+31 −3
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
@@ -164,6 +165,7 @@ public class UserSettings extends SettingsPreferenceFragment
    private final Object mUserLock = new Object();
    private UserManager mUserManager;
    private static SparseArray<Bitmap> sDarkDefaultUserBitmapCache = new SparseArray<>();
    private static Bitmap sRemoveGuestBitmap = null;

    private MultiUserSwitchBarController mSwitchBarController;
    private EditUserInfoController mEditUserInfoController =
@@ -177,6 +179,7 @@ public class UserSettings extends SettingsPreferenceFragment

    // A place to cache the generated default avatar
    private Drawable mDefaultIconDrawable;
    private Drawable mRemoveGuestIconDrawable;

    // TODO:   Replace current Handler solution to something that doesn't leak memory and works
    // TODO:   during a configuration change
@@ -383,8 +386,8 @@ public class UserSettings extends SettingsPreferenceFragment
    private void loadProfile() {
        if (isCurrentUserGuest()) {
            // No need to load profile information
            mMePreference.setIcon(getEncircledDefaultIcon());
            mMePreference.setTitle(R.string.user_exit_guest_title);
            mMePreference.setIcon(getEncircledRemoveGuestIcon());
            mMePreference.setTitle(R.string.user_clear_guest_menu);
            mMePreference.setSelectable(true);
            // removing a guest will result in switching back to the admin user
            mMePreference.setEnabled(canSwitchUserNow());
@@ -899,7 +902,7 @@ public class UserSettings extends SettingsPreferenceFragment
                } else {
                    setPhotoId(pref, user);
                }
            } else {
            } else if (!user.isGuest()) {
                // Icon not available yet, print a placeholder
                pref.setIcon(getEncircledDefaultIcon());
            }
@@ -1044,6 +1047,14 @@ public class UserSettings extends SettingsPreferenceFragment
        return mDefaultIconDrawable;
    }

    private Drawable getEncircledRemoveGuestIcon() {
        if (mRemoveGuestIconDrawable == null) {
            mRemoveGuestIconDrawable = encircle(
                    getRemoveGuestIconAsBitmap(getContext().getResources()));
        }
        return mRemoveGuestIconDrawable;
    }

    private void setPhotoId(Preference pref, UserInfo user) {
        Bitmap bitmap = mUserIcons.get(user.id);
        if (bitmap != null) {
@@ -1122,6 +1133,23 @@ public class UserSettings extends SettingsPreferenceFragment
        return bitmap;
    }

    /**
     * Returns a remove guest icon (as a {@link Bitmap})
     *
     * @param resources resources object to fetch the remove guest icon.
     */
    private static Bitmap getRemoveGuestIconAsBitmap(Resources resources) {
        if (sRemoveGuestBitmap == null) {
            Drawable icon = resources.getDrawable(R.drawable.ic_delete, null).mutate();
            icon.setColorFilter(
                    resources.getColor(com.android.internal.R.color.user_icon_default_gray, null),
                    PorterDuff.Mode.SRC_IN);
            icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight());
            sRemoveGuestBitmap = UserIcons.convertToBitmap(icon);
        }
        return sRemoveGuestBitmap;
    }

    /**
     * Assign the default photo to user with {@paramref userId}
     *
+1 −1
Original line number Diff line number Diff line
@@ -363,7 +363,7 @@ public class UserDetailsSettingsTest {
        mFragment.initialize(mActivity, mArguments);

        verify(mRemoveUserPref).setOnPreferenceClickListener(mFragment);
        verify(mRemoveUserPref).setTitle(R.string.user_exit_guest_title);
        verify(mRemoveUserPref).setTitle(R.string.user_exit_guest_menu);
        verify(mFragment, never()).removePreference(KEY_REMOVE_USER);
    }