Merge "Disable Add user until Setup prompt is shown" into nyc-dev

This commit is contained in:
Fyodor Kupolov
2016-03-29 16:45:59 +00:00
committed by Android (Google) Code Review

View File

@@ -140,6 +140,7 @@ public class UserSettings extends SettingsPreferenceFragment
private int mRemovingUserId = -1; private int mRemovingUserId = -1;
private int mAddedUserId = 0; private int mAddedUserId = 0;
private boolean mAddingUser; private boolean mAddingUser;
private String mAddingUserName;
private UserCapabilities mUserCaps; private UserCapabilities mUserCaps;
private boolean mShouldUpdateUserList = true; private boolean mShouldUpdateUserList = true;
private final Object mUserLock = new Object(); private final Object mUserLock = new Object();
@@ -402,15 +403,13 @@ public class UserSettings extends SettingsPreferenceFragment
} }
private UserInfo createRestrictedProfile() { private UserInfo createRestrictedProfile() {
UserInfo newUserInfo = mUserManager.createRestrictedProfile( UserInfo newUserInfo = mUserManager.createRestrictedProfile(mAddingUserName);
getResources().getString(R.string.user_new_profile_name));
assignDefaultPhoto(newUserInfo); assignDefaultPhoto(newUserInfo);
return newUserInfo; return newUserInfo;
} }
private UserInfo createTrustedUser() { private UserInfo createTrustedUser() {
UserInfo newUserInfo = mUserManager.createUser( UserInfo newUserInfo = mUserManager.createUser(mAddingUserName, 0);
getResources().getString(R.string.user_new_user_name), 0);
if (newUserInfo != null) { if (newUserInfo != null) {
assignDefaultPhoto(newUserInfo); assignDefaultPhoto(newUserInfo);
} }
@@ -418,6 +417,7 @@ public class UserSettings extends SettingsPreferenceFragment
} }
private void onManageUserClicked(int userId, boolean newUser) { private void onManageUserClicked(int userId, boolean newUser) {
mAddingUser = false;
if (userId == UserPreference.USERID_GUEST_DEFAULTS) { if (userId == UserPreference.USERID_GUEST_DEFAULTS) {
Bundle extras = new Bundle(); Bundle extras = new Bundle();
extras.putBoolean(UserDetailsSettings.EXTRA_USER_GUEST, true); extras.putBoolean(UserDetailsSettings.EXTRA_USER_GUEST, true);
@@ -453,6 +453,7 @@ public class UserSettings extends SettingsPreferenceFragment
private void onUserCreated(int userId) { private void onUserCreated(int userId) {
mAddedUserId = userId; mAddedUserId = userId;
mAddingUser = false;
if (mUserManager.getUserInfo(userId).isRestricted()) { if (mUserManager.getUserInfo(userId).isRestricted()) {
showDialog(DIALOG_SETUP_PROFILE); showDialog(DIALOG_SETUP_PROFILE);
} else { } else {
@@ -653,6 +654,8 @@ public class UserSettings extends SettingsPreferenceFragment
private void addUserNow(final int userType) { private void addUserNow(final int userType) {
synchronized (mUserLock) { synchronized (mUserLock) {
mAddingUser = true; mAddingUser = true;
mAddingUserName = userType == USER_TYPE_USER ? getString(R.string.user_new_user_name)
: getString(R.string.user_new_profile_name);
//updateUserList(); //updateUserList();
new Thread() { new Thread() {
public void run() { public void run() {
@@ -664,10 +667,10 @@ public class UserSettings extends SettingsPreferenceFragment
user = createRestrictedProfile(); user = createRestrictedProfile();
} }
if (user == null) { if (user == null) {
mAddingUser = false;
return; return;
} }
synchronized (mUserLock) { synchronized (mUserLock) {
mAddingUser = false;
if (userType == USER_TYPE_USER) { if (userType == USER_TYPE_USER) {
mHandler.sendEmptyMessage(MESSAGE_UPDATE_LIST); mHandler.sendEmptyMessage(MESSAGE_UPDATE_LIST);
mHandler.sendMessage(mHandler.obtainMessage( mHandler.sendMessage(mHandler.obtainMessage(
@@ -775,7 +778,7 @@ public class UserSettings extends SettingsPreferenceFragment
UserPreference pref = new UserPreference(getPrefContext(), null, UserPreference pref = new UserPreference(getPrefContext(), null,
UserPreference.USERID_UNKNOWN, null, null); UserPreference.USERID_UNKNOWN, null, null);
pref.setEnabled(false); pref.setEnabled(false);
pref.setTitle(R.string.user_new_user_name); pref.setTitle(mAddingUserName);
pref.setIcon(getEncircledDefaultIcon()); pref.setIcon(getEncircledDefaultIcon());
userPreferences.add(pref); userPreferences.add(pref);
} }
@@ -830,7 +833,7 @@ public class UserSettings extends SettingsPreferenceFragment
boolean moreUsers = mUserManager.canAddMoreUsers(); boolean moreUsers = mUserManager.canAddMoreUsers();
mAddUser.setOrder(Preference.DEFAULT_ORDER); mAddUser.setOrder(Preference.DEFAULT_ORDER);
preferenceScreen.addPreference(mAddUser); preferenceScreen.addPreference(mAddUser);
mAddUser.setEnabled(moreUsers); mAddUser.setEnabled(moreUsers && !mAddingUser);
if (!moreUsers) { if (!moreUsers) {
mAddUser.setSummary(getString(R.string.user_add_max_count, getMaxRealUsers())); mAddUser.setSummary(getString(R.string.user_add_max_count, getMaxRealUsers()));
} else { } else {
@@ -991,7 +994,6 @@ public class UserSettings extends SettingsPreferenceFragment
@Override @Override
public void onDismiss(DialogInterface dialog) { public void onDismiss(DialogInterface dialog) {
synchronized (mUserLock) { synchronized (mUserLock) {
mAddingUser = false;
mRemovingUserId = -1; mRemovingUserId = -1;
updateUserList(); updateUserList();
} }