aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Scott <scottjonathan@google.com>2020-02-05 11:52:09 +0000
committerJonathan Scott <scottjonathan@google.com>2020-02-13 12:54:17 +0000
commit7e40b0d68217dd2bd0c6cfc25df6a860d989b555 (patch)
treec303212f93a90c67cd0d973b746f7c937918532c
parent00c493f147935aaed0750aacb23ccc5699bc230e (diff)
downloadrobolectric-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.java37
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