summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/users/UserSettings.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/users/UserSettings.java')
-rw-r--r--src/com/android/settings/users/UserSettings.java74
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();
}
}