diff options
author | Amith Yamasani <yamasani@google.com> | 2012-09-28 00:00:53 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-09-28 00:00:54 -0700 |
commit | 990c5f2432add56ce6a32cb7c40c4c8bff1e8e5c (patch) | |
tree | 5d969409cd0a60a25737fbda6ad96e798ccb0625 /src/com/android/settings/users | |
parent | ec4a152071fb9e3dcdf00eec2444afc6df800540 (diff) | |
parent | 1a634d32ac04cb5f1d491a7881561930efda5b4a (diff) | |
download | packages_apps_Settings-990c5f2432add56ce6a32cb7c40c4c8bff1e8e5c.zip packages_apps_Settings-990c5f2432add56ce6a32cb7c40c4c8bff1e8e5c.tar.gz packages_apps_Settings-990c5f2432add56ce6a32cb7c40c4c8bff1e8e5c.tar.bz2 |
Merge "Bring up new user setup dialog when tapping on new user" into jb-mr1-dev
Diffstat (limited to 'src/com/android/settings/users')
-rw-r--r-- | src/com/android/settings/users/UserPreference.java | 2 | ||||
-rw-r--r-- | src/com/android/settings/users/UserSettings.java | 38 |
2 files changed, 33 insertions, 7 deletions
diff --git a/src/com/android/settings/users/UserPreference.java b/src/com/android/settings/users/UserPreference.java index 2ced7ae..23cca73 100644 --- a/src/com/android/settings/users/UserPreference.java +++ b/src/com/android/settings/users/UserPreference.java @@ -50,8 +50,6 @@ public class UserPreference extends Preference { @Override protected void onBindView(View view) { - view.setClickable(true); - view.setFocusable(true); View deleteView = view.findViewById(R.id.trash_user); if (deleteView != null) { deleteView.setOnClickListener(mDeleteClickListener); diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index abcb203..dcb5ac2 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -38,6 +38,7 @@ import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; import android.preference.Preference; +import android.preference.PreferenceScreen; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceGroup; import android.provider.ContactsContract; @@ -75,6 +76,7 @@ public class UserSettings extends SettingsPreferenceFragment private static final int DIALOG_CONFIRM_REMOVE = 1; private static final int DIALOG_ADD_USER = 2; private static final int DIALOG_SETUP_USER = 3; + private static final int DIALOG_USER_CANNOT_MANAGE = 4; private static final int MESSAGE_UPDATE_LIST = 1; private static final int MESSAGE_SETUP_USER = 2; @@ -186,9 +188,10 @@ public class UserSettings extends SettingsPreferenceFragment | MenuItem.SHOW_AS_ACTION_WITH_TEXT); } } else { - MenuItem removeThisUser = menu.add(0, MENU_REMOVE_USER, 0, R.string.user_remove_user_menu); - removeThisUser.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM - | MenuItem.SHOW_AS_ACTION_WITH_TEXT); + String nickname = mUserManager.getUserName(); + MenuItem removeThisUser = menu.add(0, MENU_REMOVE_USER, 0, + getResources().getString(R.string.user_remove_user_menu, nickname)); + removeThisUser.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); } super.onCreateOptionsMenu(menu, inflater); } @@ -273,7 +276,7 @@ public class UserSettings extends SettingsPreferenceFragment .setMessage(UserHandle.myUserId() == mRemovingUserId ? R.string.user_confirm_remove_self_message : R.string.user_confirm_remove_message) - .setPositiveButton(android.R.string.ok, + .setPositiveButton(R.string.user_delete_button, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { removeUserNow(); @@ -281,6 +284,11 @@ public class UserSettings extends SettingsPreferenceFragment }) .setNegativeButton(android.R.string.cancel, null) .create(); + 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: final SharedPreferences preferences = getActivity().getPreferences( Context.MODE_PRIVATE); @@ -392,7 +400,7 @@ public class UserSettings extends SettingsPreferenceFragment continue; } else if (user.id == UserHandle.myUserId()) { pref = mMePreference; - mNicknamePreference.getEditText().setText(user.name); + mNicknamePreference.setText(user.name); mNicknamePreference.setSummary(user.name); } else { pref = new UserPreference(getActivity(), null, user.id, @@ -404,6 +412,9 @@ public class UserSettings extends SettingsPreferenceFragment pref.setSummary(R.string.user_owner); } pref.setTitle(user.name); + if (!isInitialized(user)) { + pref.setSummary(R.string.user_summary_not_set_up); + } } if (user.iconPath != null) { if (mUserIcons.get(user.id) == null) { @@ -482,6 +493,7 @@ public class UserSettings extends SettingsPreferenceFragment private void setUserName(String name) { mUserManager.setUserName(UserHandle.myUserId(), name); mNicknamePreference.setSummary(name); + getActivity().invalidateOptionsMenu(); } @Override @@ -499,10 +511,26 @@ public class UserSettings extends SettingsPreferenceFragment // TODO: Make this a proper API editProfile.putExtra("finishActivityOnSaveCompleted", true); startActivity(editProfile); + } else if (pref instanceof UserPreference) { + int userId = ((UserPreference) pref).getUserId(); + // Get the latest status of the user + UserInfo user = mUserManager.getUserInfo(userId); + if (UserHandle.myUserId() != UserHandle.USER_OWNER) { + showDialog(DIALOG_USER_CANNOT_MANAGE); + } else { + if (!isInitialized(user)) { + mHandler.sendMessage(mHandler.obtainMessage( + MESSAGE_SETUP_USER, user.id, user.serialNumber)); + } + } } return false; } + private boolean isInitialized(UserInfo user) { + return (user.flags & UserInfo.FLAG_INITIALIZED) != 0; + } + @Override public void onClick(View v) { if (v.getTag() instanceof UserPreference) { |