diff options
Diffstat (limited to 'src/com/android/settings/users/UserSettings.java')
-rw-r--r-- | src/com/android/settings/users/UserSettings.java | 74 |
1 files changed, 54 insertions, 20 deletions
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 33b4195..984ac08 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -56,6 +56,7 @@ import com.android.settings.R; import com.android.settings.SelectableEditTextPreference; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; +import com.android.settings.SettingsPreferenceFragment.SettingsDialogFragment; import java.util.ArrayList; import java.util.List; @@ -66,6 +67,11 @@ public class UserSettings extends SettingsPreferenceFragment private static final String TAG = "UserSettings"; + /** UserId of the user being removed */ + private static final String SAVE_REMOVING_USER = "removing_user"; + /** UserId of the user that was just added */ + private static final String SAVE_ADDING_USER = "adding_user"; + private static final String KEY_USER_NICKNAME = "user_nickname"; private static final String KEY_USER_LIST = "user_list"; private static final String KEY_USER_ME = "user_me"; @@ -85,12 +91,14 @@ public class UserSettings extends SettingsPreferenceFragment "key_add_user_long_message_displayed"; private static final int[] USER_DRAWABLES = { - R.drawable.ic_user_orange, - R.drawable.ic_user_cyan, - R.drawable.ic_user_green, - R.drawable.ic_user_purple, - R.drawable.ic_user_red, - R.drawable.ic_user_yellow + R.drawable.avatar_default_1, + R.drawable.avatar_default_2, + R.drawable.avatar_default_3, + R.drawable.avatar_default_4, + R.drawable.avatar_default_5, + R.drawable.avatar_default_6, + R.drawable.avatar_default_7, + R.drawable.avatar_default_8 }; private PreferenceGroup mUserListCategory; @@ -140,6 +148,15 @@ public class UserSettings extends SettingsPreferenceFragment public void onCreate(Bundle icicle) { super.onCreate(icicle); + if (icicle != null) { + if (icicle.containsKey(SAVE_ADDING_USER)) { + mAddedUserId = icicle.getInt(SAVE_ADDING_USER); + } + if (icicle.containsKey(SAVE_REMOVING_USER)) { + mRemovingUserId = icicle.getInt(SAVE_REMOVING_USER); + } + } + mUserManager = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); addPreferencesFromResource(R.xml.user_settings); mUserListCategory = (PreferenceGroup) findPreference(KEY_USER_LIST); @@ -180,6 +197,14 @@ public class UserSettings extends SettingsPreferenceFragment } @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + + outState.putInt(SAVE_ADDING_USER, mAddedUserId); + outState.putInt(SAVE_REMOVING_USER, mRemovingUserId); + } + + @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { if (mIsOwner) { if (UserManager.getMaxSupportedUsers() > mUserManager.getUsers(false).size()) { @@ -245,7 +270,6 @@ public class UserSettings extends SettingsPreferenceFragment synchronized (mUserLock) { if (mRemovingUserId == -1 && !mAddingUser) { showDialog(DIALOG_ADD_USER); - setOnDismissListener(this); } } } @@ -255,7 +279,6 @@ public class UserSettings extends SettingsPreferenceFragment if (mRemovingUserId == -1 && !mAddingUser) { mRemovingUserId = userId; showDialog(DIALOG_CONFIRM_REMOVE); - setOnDismissListener(this); } } } @@ -266,10 +289,17 @@ public class UserSettings extends SettingsPreferenceFragment } @Override + public void onDialogShowing() { + super.onDialogShowing(); + + setOnDismissListener(this); + } + + @Override public Dialog onCreateDialog(int dialogId) { switch (dialogId) { - case DIALOG_CONFIRM_REMOVE: - return new AlertDialog.Builder(getActivity()) + case DIALOG_CONFIRM_REMOVE: { + Dialog dlg = new AlertDialog.Builder(getActivity()) .setTitle(UserHandle.myUserId() == mRemovingUserId ? R.string.user_confirm_remove_self_title : R.string.user_confirm_remove_title) @@ -284,12 +314,14 @@ public class UserSettings extends SettingsPreferenceFragment }) .setNegativeButton(android.R.string.cancel, null) .create(); + return dlg; + } case DIALOG_USER_CANNOT_MANAGE: return new AlertDialog.Builder(getActivity()) .setMessage(R.string.user_cannot_manage_message) .setPositiveButton(android.R.string.ok, null) .create(); - case DIALOG_ADD_USER: + case DIALOG_ADD_USER: { final SharedPreferences preferences = getActivity().getPreferences( Context.MODE_PRIVATE); final boolean longMessageDisplayed = preferences.getBoolean( @@ -297,7 +329,7 @@ public class UserSettings extends SettingsPreferenceFragment final int messageResId = longMessageDisplayed ? R.string.user_add_user_message_short : R.string.user_add_user_message_long; - return new AlertDialog.Builder(getActivity()) + Dialog dlg = new AlertDialog.Builder(getActivity()) .setTitle(R.string.user_add_user_title) .setMessage(messageResId) .setPositiveButton(android.R.string.ok, @@ -312,8 +344,10 @@ public class UserSettings extends SettingsPreferenceFragment }) .setNegativeButton(android.R.string.cancel, null) .create(); - case DIALOG_SETUP_USER: - return new AlertDialog.Builder(getActivity()) + return dlg; + } + case DIALOG_SETUP_USER: { + Dialog dlg = new AlertDialog.Builder(getActivity()) .setTitle(R.string.user_setup_dialog_title) .setMessage(R.string.user_setup_dialog_message) .setPositiveButton(R.string.user_setup_button_setup_now, @@ -324,7 +358,8 @@ public class UserSettings extends SettingsPreferenceFragment }) .setNegativeButton(R.string.user_setup_button_setup_later, null) .create(); - + return dlg; + } default: return null; } @@ -396,9 +431,7 @@ public class UserSettings extends SettingsPreferenceFragment final ArrayList<Integer> missingIcons = new ArrayList<Integer>(); for (UserInfo user : users) { Preference pref; - if (user.id == mRemovingUserId) { - continue; - } else if (user.id == UserHandle.myUserId()) { + if (user.id == UserHandle.myUserId()) { pref = mMePreference; mNicknamePreference.setText(user.name); mNicknamePreference.setSummary(user.name); @@ -419,7 +452,7 @@ public class UserSettings extends SettingsPreferenceFragment if (user.iconPath != null) { if (mUserIcons.get(user.id) == null) { missingIcons.add(user.id); - pref.setIcon(R.drawable.ic_user); + pref.setIcon(R.drawable.avatar_default_1); } else { setPhotoId(pref, user); } @@ -432,7 +465,7 @@ public class UserSettings extends SettingsPreferenceFragment pref.setEnabled(false); pref.setTitle(R.string.user_new_user_name); pref.setSummary(R.string.user_adding_new_user); - pref.setIcon(R.drawable.ic_user); + pref.setIcon(R.drawable.avatar_default_1); mUserListCategory.addPreference(pref); } getActivity().invalidateOptionsMenu(); @@ -544,6 +577,7 @@ public class UserSettings extends SettingsPreferenceFragment synchronized (mUserLock) { mAddingUser = false; mRemovingUserId = -1; + updateUserList(); } } |