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

Commit f93dd8db authored by Jonathan Scott's avatar Jonathan Scott Committed by Anis Assi
Browse files

[RESTRICT AUTOMERGE] Use userId instead of USER_CURRENT in shouldLockKeyguard.

USER_CURRENT is not an acceptable input to isSecure(). The test has also
been updated as the use of any() for the mock hid this bug.

Test: atest LockTaskControllerTest
Bug: 176801033
Change-Id: Ib8a11ed4fc895bcd6eda8cf777a8dd2ce253e11e
(cherry picked from commit bb4eded3)
parent b73ef520
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -485,7 +485,7 @@ public class LockTaskController {
            setStatusBarState(LOCK_TASK_MODE_NONE, userId);
            setKeyguardState(LOCK_TASK_MODE_NONE, userId);
            if (mLockTaskModeState == LOCK_TASK_MODE_PINNED) {
                lockKeyguardIfNeeded();
                lockKeyguardIfNeeded(userId);
            }
            if (getDevicePolicyManager() != null) {
                getDevicePolicyManager().notifyLockTaskModeChanged(false, null, userId);
@@ -801,15 +801,15 @@ public class LockTaskController {
     * Helper method for locking the device immediately. This may be necessary when the device
     * leaves the pinned mode.
     */
    private void lockKeyguardIfNeeded() {
        if (shouldLockKeyguard()) {
    private void lockKeyguardIfNeeded(int userId) {
        if (shouldLockKeyguard(userId)) {
            mWindowManager.lockNow(null);
            mWindowManager.dismissKeyguard(null /* callback */, null /* message */);
            getLockPatternUtils().requireCredentialEntry(USER_ALL);
        }
    }

    private boolean shouldLockKeyguard() {
    private boolean shouldLockKeyguard(int userId) {
        // This functionality should be kept consistent with
        // com.android.settings.security.ScreenPinningSettings (see b/127605586)
        try {
@@ -819,7 +819,7 @@ public class LockTaskController {
        } catch (Settings.SettingNotFoundException e) {
            // Log to SafetyNet for b/127605586
            android.util.EventLog.writeEvent(0x534e4554, "127605586", -1, "");
            return getLockPatternUtils().isSecure(USER_CURRENT);
            return getLockPatternUtils().isSecure(userId);
        }
    }

+1 −2
Original line number Diff line number Diff line
@@ -446,8 +446,7 @@ public class LockTaskControllerTest {
        Settings.Secure.clearProviderForTest();

        // AND a password is set
        when(mLockPatternUtils.isSecure(anyInt()))
                .thenReturn(true);
        when(mLockPatternUtils.isSecure(TEST_USER_ID)).thenReturn(true);

        // AND there is a task record
        TaskRecord tr1 = getTaskRecord(TaskRecord.LOCK_TASK_AUTH_WHITELISTED);