summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/os/UserManager.java8
-rw-r--r--services/core/java/com/android/server/pm/UserManagerService.java8
2 files changed, 14 insertions, 2 deletions
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 392b6eb6d51b..06c516aee8f3 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -2391,10 +2391,15 @@ public class UserManager {
*/
public static final int USER_OPERATION_ERROR_DISABLED_USER = 8;
/**
- * Indicates user operation failed because user is disabled on the device.
+ * Indicates user operation failed because private space is disabled on the device.
* @hide
*/
public static final int USER_OPERATION_ERROR_PRIVATE_PROFILE = 9;
+ /**
+ * Indicates user operation failed because user is restricted on the device.
+ * @hide
+ */
+ public static final int USER_OPERATION_ERROR_USER_RESTRICTED = 10;
/**
* Result returned from various user operations.
@@ -2413,6 +2418,7 @@ public class UserManager {
USER_OPERATION_ERROR_USER_ACCOUNT_ALREADY_EXISTS,
USER_OPERATION_ERROR_DISABLED_USER,
USER_OPERATION_ERROR_PRIVATE_PROFILE,
+ USER_OPERATION_ERROR_USER_RESTRICTED,
})
public @interface UserOperationResult {}
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index c902fb26495a..829ee27287c2 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -29,6 +29,7 @@ import static android.os.UserManager.DEV_CREATE_OVERRIDE_PROPERTY;
import static android.os.UserManager.DISALLOW_USER_SWITCH;
import static android.os.UserManager.SYSTEM_USER_MODE_EMULATION_PROPERTY;
import static android.os.UserManager.USER_OPERATION_ERROR_UNKNOWN;
+import static android.os.UserManager.USER_OPERATION_ERROR_USER_RESTRICTED;
import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE;
import static com.android.internal.app.SetScreenLockDialogActivity.EXTRA_ORIGIN_USER_ID;
@@ -8039,8 +8040,13 @@ public class UserManagerService extends IUserManager.Stub {
String errorMessage = (message != null ? (message + ": ") : "")
+ restriction + " is enabled.";
Slog.w(LOG_TAG, errorMessage);
- throw new UserManager.CheckedUserOperationException(errorMessage,
+ if (android.multiuser.Flags.showDifferentCreationErrorForUnsupportedDevices()) {
+ throw new UserManager.CheckedUserOperationException(errorMessage,
+ USER_OPERATION_ERROR_USER_RESTRICTED);
+ } else {
+ throw new UserManager.CheckedUserOperationException(errorMessage,
USER_OPERATION_ERROR_UNKNOWN);
+ }
}
}