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

Commit e50a485c authored by Greg Plesur's avatar Greg Plesur Committed by Android (Google) Code Review
Browse files

Merge "If the current device is a watch, fix DeviceOwner/ProfileOwner logic." into cw-f-dev

parents 343dbac2 34fb70ab
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -6144,6 +6144,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        return hasUserSetupCompleted(UserHandle.getCallingUserId());
    }

    // This checks only if the Setup Wizard has run.  Since Wear devices pair before
    // completing Setup Wizard, and pairing involves transferring user data, calling
    // logic may want to check mIsWatch or mPaired in addition to hasUserSetupCompleted().
    private boolean hasUserSetupCompleted(int userHandle) {
        if (!mHasFeature) {
            return true;
@@ -6388,7 +6391,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        }
        int callingUid = mInjector.binderGetCallingUid();
        if (callingUid == Process.SHELL_UID || callingUid == Process.ROOT_UID) {
            if (hasUserSetupCompleted(userHandle)
            if ((mIsWatch || hasUserSetupCompleted(userHandle))
                    && hasIncompatibleAccountsLocked(userHandle, owner)) {
                throw new IllegalStateException("Not allowed to set the profile owner because "
                        + "there are already some accounts on the profile");
@@ -6396,7 +6399,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
            return;
        }
        enforceCanManageProfileAndDeviceOwners();
        if (hasUserSetupCompleted(userHandle) && !isCallerWithSystemUid()) {
        if ((mIsWatch || hasUserSetupCompleted(userHandle)) && !isCallerWithSystemUid()) {
            throw new IllegalStateException("Cannot set the profile owner on a user which is "
                    + "already set-up");
        }
@@ -8633,6 +8636,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
            if (hasUserSetupCompleted(callingUserId)) {
                return false;
            }
            if (mIsWatch && hasPaired(UserHandle.USER_SYSTEM)) {
                return false;
            }
            return true;
        } else if (DevicePolicyManager.ACTION_PROVISION_MANAGED_SHAREABLE_DEVICE.equals(action)) {
            if (!mInjector.userManagerIsSplitSystemUser()) {
@@ -8664,7 +8670,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        }
        if (isAdb) {
            // if shell command runs after user setup completed check device status. Otherwise, OK.
            if (hasUserSetupCompleted(UserHandle.USER_SYSTEM)) {
            if (mIsWatch || hasUserSetupCompleted(UserHandle.USER_SYSTEM)) {
                if (!mInjector.userManagerIsSplitSystemUser()) {
                    if (mUserManager.getUserCount() > 1) {
                        return CODE_NONSYSTEM_USER_EXISTS;