Add supportsMultipleUsers() & setSupportsMultipleUsers() for ShadowUserManager
PiperOrigin-RevId: 235619220
diff --git a/robolectric/src/test/java/org/robolectric/shadows/ShadowUserManagerTest.java b/robolectric/src/test/java/org/robolectric/shadows/ShadowUserManagerTest.java
index 0e23682..5634a83 100644
--- a/robolectric/src/test/java/org/robolectric/shadows/ShadowUserManagerTest.java
+++ b/robolectric/src/test/java/org/robolectric/shadows/ShadowUserManagerTest.java
@@ -356,6 +356,15 @@
assertThat(userManager.getProfiles(TEST_USER_HANDLE).get(0).id).isEqualTo(PROFILE_USER_HANDLE);
}
+ @Test
+ @Config(minSdk = N)
+ public void supportsMultipleUsers() {
+ assertThat(UserManager.supportsMultipleUsers()).isFalse();
+
+ shadowOf(userManager).setSupportsMultipleUsers(true);
+ assertThat(UserManager.supportsMultipleUsers()).isTrue();
+ }
+
// Create user handle from parcel since UserHandle.of() was only added in later APIs.
private static UserHandle newUserHandle(int uid) {
Parcel userParcel = Parcel.obtain();
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 7bead6b..854032b 100644
--- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java
+++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowUserManager.java
@@ -48,6 +48,7 @@
public static final int FLAG_GUEST = UserInfo.FLAG_GUEST;
public static final int FLAG_RESTRICTED = UserInfo.FLAG_RESTRICTED;
+ private static boolean isMultiUserSupported = false;
private static Map<Integer, Integer> userPidMap = new HashMap<>();
@RealObject private UserManager realObject;
@@ -473,6 +474,19 @@
return true;
}
+ @Implementation(minSdk = N)
+ protected static boolean supportsMultipleUsers() {
+ return isMultiUserSupported;
+ }
+
+ /**
+ * Sets whether multiple users are supported; controls the return value of {@link
+ * UserManager#supportsMultipleUser}.
+ */
+ public void setSupportsMultipleUsers(boolean isMultiUserSupported) {
+ this.isMultiUserSupported = isMultiUserSupported;
+ }
+
/**
* Switches the current user to {@code userHandle}.
*