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

Commit f420c413 authored by Ricky Wai's avatar Ricky Wai Committed by Android (Google) Code Review
Browse files

Merge "Unlock work profile storage even work mode is off" into nyc-dev

parents 99df649a 4266feeb
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -747,12 +747,6 @@ public class LockSettingsService extends ILockSettings.Stub {
            }
        };

        // Turn off quite mode if it's enabled, only managed profile can return true for now, it
        // will return false if it is not a managed profile.
        if (mUserManager.isQuietModeEnabled(new UserHandle(userId))) {
            mUserManager.setQuietModeEnabled(userId, false);
        }

        try {
            ActivityManagerNative.getDefault().unlockUser(userId, token, secret, listener);
        } catch (RemoteException e) {
@@ -771,7 +765,6 @@ public class LockSettingsService extends ILockSettings.Stub {
                    // Unlock managed profile with unified lock
                    if (pi.isManagedProfile()
                            && !mLockPatternUtils.isSeparateProfileChallengeEnabled(pi.id)
                            && !pi.isQuietModeEnabled()
                            && mStorage.hasChildProfileLock(pi.id)) {
                        unlockChildProfile(pi.id);
                    }
+10 −12
Original line number Diff line number Diff line
@@ -938,27 +938,25 @@ final class UserController {
    boolean unlockUserCleared(final int userId, byte[] token, byte[] secret,
            IProgressListener listener) {
        synchronized (mService) {
            // Bail if user isn't actually running, otherwise register the given
            // listener to watch for unlock progress
            final UserState uss = mStartedUsers.get(userId);
            if (uss == null) {
                notifyFinished(userId, listener);
                return false;
            } else {
                uss.mUnlockProgress.addListener(listener);
            }

            // TODO Move this block outside of synchronized if it causes lock contention
            if (!StorageManager.isUserKeyUnlocked(userId)) {
                final UserInfo userInfo = getUserInfo(userId);
                final IMountService mountService = getMountService();
                try {
                    // We always want to unlock user storage, even user is not started yet
                    mountService.unlockUserKey(userId, userInfo.serialNumber, token, secret);
                } catch (RemoteException | RuntimeException e) {
                    Slog.w(TAG, "Failed to unlock: " + e.getMessage());
                }
            }
            // Bail if user isn't actually running, otherwise register the given
            // listener to watch for unlock progress
            final UserState uss = mStartedUsers.get(userId);
            if (uss == null) {
                notifyFinished(userId, listener);
                return false;
                }
            } else {
                uss.mUnlockProgress.addListener(listener);
            }

            finishUserUnlocking(uss);