Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8115d996 authored by josephpv's avatar josephpv
Browse files

Define new error code to send on profile create restrition

With this change a new error code is defined that will be set when
profile creation is not allowed due to restrictions enforced on the
user.

Bug: 340130375
Test: Manual
Flag: android.multiuser.show_different_creation_error_for_unsupported_devices
Change-Id: I4a8c8fde97c31a132496bba42baa177f9eba18cf
parent f43ac720
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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 {}

+7 −1
Original line number Diff line number Diff line
@@ -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,10 +8040,15 @@ public class UserManagerService extends IUserManager.Stub {
            String errorMessage = (message != null ? (message + ": ") : "")
                    + restriction + " is enabled.";
            Slog.w(LOG_TAG, 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);
            }
        }
    }

    /**
     * Throws CheckedUserOperationException and shows error log