Don't always change username when adding account
During Setup Wizard for a new user, if an account is added, the user's name gets updated to match their account's name. Recently, however, the user can actually type in a name before even reaching the Setup Wizard. If they elect to do so, we shouldn't overwrite their name with their account name, so this cl makes sure to only use the account name if the original name wasn't manually entered. Bug: 171255493 Test: manual verification (create new user and enter account during SUW. Do both with and without entering initial user name.) Change-Id: I443648dafc0d83a71750f7f6472bbea4e2ee23bb
This commit is contained in:
@@ -50,14 +50,23 @@ public class ProfileUpdateReceiver extends BroadcastReceiver {
|
||||
return;
|
||||
}
|
||||
|
||||
int userId = UserHandle.myUserId();
|
||||
UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||
String profileName = Utils.getMeProfileName(context, false /* partial name */);
|
||||
if (profileName != null && profileName.length() > 0) {
|
||||
um.setUserName(userId, profileName);
|
||||
final int userId = UserHandle.myUserId();
|
||||
final UserManager um = context.getSystemService(UserManager.class);
|
||||
final String newName = Utils.getMeProfileName(context, false /* partial name */);
|
||||
if (newName != null && newName.length() > 0 && !isCurrentNameInteresting(context, um)) {
|
||||
um.setUserName(userId, newName);
|
||||
// Flag that we've written the profile one time at least. No need to do it in the
|
||||
// future.
|
||||
prefs.edit().putBoolean(KEY_PROFILE_NAME_COPIED_ONCE, true).commit();
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns whether the current user name is different from the default one. */
|
||||
private static boolean isCurrentNameInteresting(Context context, UserManager um) {
|
||||
final String currentName = um.getUserName();
|
||||
final String defaultName = um.isRestrictedProfile() || um.isProfile() ?
|
||||
context.getString(com.android.settingslib.R.string.user_new_profile_name) :
|
||||
context.getString(com.android.settingslib.R.string.user_new_user_name);
|
||||
return currentName != null && !currentName.equals(defaultName);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user