Loading res/values/strings.xml +5 −3 Original line number Diff line number Diff line Loading @@ -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> src/com/android/settings/users/UserDetailsSettings.java +1 −1 Original line number Diff line number Diff line Loading @@ -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))); Loading src/com/android/settings/users/UserSettings.java +31 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 = Loading @@ -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 Loading Loading @@ -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()); Loading Loading @@ -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()); } Loading Loading @@ -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) { Loading Loading @@ -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} * Loading tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading
res/values/strings.xml +5 −3 Original line number Diff line number Diff line Loading @@ -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>
src/com/android/settings/users/UserDetailsSettings.java +1 −1 Original line number Diff line number Diff line Loading @@ -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))); Loading
src/com/android/settings/users/UserSettings.java +31 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 = Loading @@ -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 Loading Loading @@ -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()); Loading Loading @@ -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()); } Loading Loading @@ -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) { Loading Loading @@ -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} * Loading
tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -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); } Loading