diff options
author | Jonathan Scott <scottjonathan@google.com> | 2020-02-05 11:52:09 +0000 |
---|---|---|
committer | Jonathan Scott <scottjonathan@google.com> | 2020-02-13 12:54:17 +0000 |
commit | 7e40b0d68217dd2bd0c6cfc25df6a860d989b555 (patch) | |
tree | c303212f93a90c67cd0d973b746f7c937918532c | |
parent | 00c493f147935aaed0750aacb23ccc5699bc230e (diff) | |
download | robolectric-shadows-7e40b0d68217dd2bd0c6cfc25df6a860d989b555.tar.gz |
Copy getUserSerialNumber from google3.
Test: All tests are already failing. Tested through atest CrossProfileAppsSnapshotTest
Change-Id: I4f5136d158d827fe882f066fb08b7aa2a9e2b362
-rw-r--r-- | shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java index d4cc6ef32..9464c2f77 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java @@ -10,6 +10,7 @@ import static android.os.Build.VERSION_CODES.R; import static org.robolectric.shadow.api.Shadow.directlyOn; import android.Manifest.permission; +import android.annotation.UserIdInt; import android.content.Context; import android.content.pm.PackageManager; import android.content.pm.UserInfo; @@ -174,8 +175,8 @@ public class ShadowUserManager { protected boolean isManagedProfile() { if (enforcePermissions && !hasManageUsersPermission()) { throw new SecurityException( - "You need MANAGE_USERS permission to: check if specified user a " + - "managed profile outside your profile group"); + "You need MANAGE_USERS permission to: check if specified user a " + + "managed profile outside your profile group"); } return managedProfile; } @@ -277,6 +278,16 @@ public class ShadowUserManager { return userProfiles.inverse().get(serialNumber); } + /** + * @see #addProfile(int, int, String, int) + * @see #addUser(int, String, int) + */ + @Implementation + protected int getUserSerialNumber(@UserIdInt int userHandle) { + Long result = userProfiles.get(UserHandle.of(userHandle)); + return result != null ? result.intValue() : -1; + } + private boolean hasManageUsersPermission() { return context.getPackageManager().checkPermission(permission.MANAGE_USERS, context.getPackageName()) == PackageManager.PERMISSION_GRANTED; } @@ -426,8 +437,8 @@ public class ShadowUserManager { UserState state = userState.get(handle.getIdentifier()); if (state == UserState.STATE_RUNNING_LOCKED - || state == UserState.STATE_RUNNING_UNLOCKED - || state == UserState.STATE_RUNNING_UNLOCKING) { + || state == UserState.STATE_RUNNING_UNLOCKED + || state == UserState.STATE_RUNNING_UNLOCKING) { return true; } else { return false; @@ -443,9 +454,9 @@ public class ShadowUserManager { UserState state = userState.get(handle.getIdentifier()); if (state == UserState.STATE_RUNNING_LOCKED - || state == UserState.STATE_RUNNING_UNLOCKED - || state == UserState.STATE_RUNNING_UNLOCKING - || state == UserState.STATE_STOPPING) { + || state == UserState.STATE_RUNNING_UNLOCKED + || state == UserState.STATE_RUNNING_UNLOCKING + || state == UserState.STATE_STOPPING) { return true; } else { return false; @@ -533,16 +544,16 @@ public class ShadowUserManager { */ public void addUser(int id, String name, int flags) { UserHandle userHandle = - id == UserHandle.USER_SYSTEM ? Process.myUserHandle() : new UserHandle(id); + id == UserHandle.USER_SYSTEM ? Process.myUserHandle() : new UserHandle(id); addUserProfile(userHandle); setSerialNumberForUser(userHandle, (long) id); profiles.putIfAbsent(id, new ArrayList<>()); userInfoMap.put(id, new UserInfo(id, name, flags)); userPidMap.put( - id, - id == UserHandle.USER_SYSTEM - ? Process.myUid() - : id * UserHandle.PER_USER_RANGE + ShadowProcess.getRandomApplicationUid()); + id, + id == UserHandle.USER_SYSTEM + ? Process.myUid() + : id * UserHandle.PER_USER_RANGE + ShadowProcess.getRandomApplicationUid()); } @Resetter @@ -554,4 +565,4 @@ public class ShadowUserManager { userPidMap.put(UserHandle.USER_SYSTEM, Process.myUid()); } } -} +}
\ No newline at end of file |