Merge "Ensure getUserName cannot return null" into tm-dev

This commit is contained in:
Adam Bookatz
2022-05-04 17:20:45 +00:00
committed by Android (Google) Code Review
4 changed files with 15 additions and 6 deletions

View File

@@ -919,7 +919,7 @@ package android.content.pm {
field public int id;
field public String lastLoggedInFingerprint;
field public long lastLoggedInTime;
field public String name;
field @Nullable public String name;
field public boolean partial;
field public boolean preCreated;
field public int profileBadge;

View File

@@ -18,6 +18,7 @@ package android.content.pm;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.TestApi;
import android.annotation.UserIdInt;
import android.compat.annotation.UnsupportedAppUsage;
@@ -170,7 +171,7 @@ public class UserInfo implements Parcelable {
@UnsupportedAppUsage
public int serialNumber;
@UnsupportedAppUsage
public String name;
public @Nullable String name;
@UnsupportedAppUsage
public String iconPath;
@UnsupportedAppUsage

View File

@@ -2179,7 +2179,10 @@ public class UserManager {
}
} else {
UserInfo userInfo = getUserInfo(mUserId);
return userInfo == null ? "" : userInfo.name;
if (userInfo != null && userInfo.name != null) {
return userInfo.name;
}
return "";
}
}

View File

@@ -1430,6 +1430,8 @@ public class UserManagerService extends IUserManager.Stub {
/**
* Returns a UserInfo object with the name filled in, for Owner and Guest, or the original
* if the name is already set.
*
* Note: Currently, the resulting name can be null if a user was truly created with a null name.
*/
private UserInfo userWithName(UserInfo orig) {
if (orig != null && orig.name == null) {
@@ -1638,7 +1640,7 @@ public class UserManagerService extends IUserManager.Stub {
}
@Override
public String getUserName() {
public @NonNull String getUserName() {
final int callingUid = Binder.getCallingUid();
if (!hasQueryOrCreateUsersPermission()
&& !hasPermissionGranted(
@@ -1649,7 +1651,10 @@ public class UserManagerService extends IUserManager.Stub {
final int userId = UserHandle.getUserId(callingUid);
synchronized (mUsersLock) {
UserInfo userInfo = userWithName(getUserInfoLU(userId));
return userInfo == null ? "" : userInfo.name;
if (userInfo != null && userInfo.name != null) {
return userInfo.name;
}
return "";
}
}
@@ -4165,7 +4170,7 @@ public class UserManagerService extends IUserManager.Stub {
* @return the converted user, or {@code null} if no pre-created user could be converted.
*/
private @Nullable UserInfo convertPreCreatedUserIfPossible(String userType,
@UserInfoFlag int flags, String name, @Nullable Object token) {
@UserInfoFlag int flags, @Nullable String name, @Nullable Object token) {
final UserData preCreatedUserData;
synchronized (mUsersLock) {
preCreatedUserData = getPreCreatedUserLU(userType);