[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
This commit is contained in:
Jonathan Scott
2021-02-03 17:24:10 +00:00
parent 77d6da8435
commit bb4eded379
2 changed files with 6 additions and 7 deletions

View File

@@ -485,7 +485,7 @@ public class LockTaskController {
setStatusBarState(LOCK_TASK_MODE_NONE, userId); setStatusBarState(LOCK_TASK_MODE_NONE, userId);
setKeyguardState(LOCK_TASK_MODE_NONE, userId); setKeyguardState(LOCK_TASK_MODE_NONE, userId);
if (mLockTaskModeState == LOCK_TASK_MODE_PINNED) { if (mLockTaskModeState == LOCK_TASK_MODE_PINNED) {
lockKeyguardIfNeeded(); lockKeyguardIfNeeded(userId);
} }
if (getDevicePolicyManager() != null) { if (getDevicePolicyManager() != null) {
getDevicePolicyManager().notifyLockTaskModeChanged(false, null, userId); 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 * Helper method for locking the device immediately. This may be necessary when the device
* leaves the pinned mode. * leaves the pinned mode.
*/ */
private void lockKeyguardIfNeeded() { private void lockKeyguardIfNeeded(int userId) {
if (shouldLockKeyguard()) { if (shouldLockKeyguard(userId)) {
mWindowManager.lockNow(null); mWindowManager.lockNow(null);
mWindowManager.dismissKeyguard(null /* callback */, null /* message */); mWindowManager.dismissKeyguard(null /* callback */, null /* message */);
getLockPatternUtils().requireCredentialEntry(USER_ALL); getLockPatternUtils().requireCredentialEntry(USER_ALL);
} }
} }
private boolean shouldLockKeyguard() { private boolean shouldLockKeyguard(int userId) {
// This functionality should be kept consistent with // This functionality should be kept consistent with
// com.android.settings.security.ScreenPinningSettings (see b/127605586) // com.android.settings.security.ScreenPinningSettings (see b/127605586)
try { try {
@@ -819,7 +819,7 @@ public class LockTaskController {
} catch (Settings.SettingNotFoundException e) { } catch (Settings.SettingNotFoundException e) {
// Log to SafetyNet for b/127605586 // Log to SafetyNet for b/127605586
android.util.EventLog.writeEvent(0x534e4554, "127605586", -1, ""); android.util.EventLog.writeEvent(0x534e4554, "127605586", -1, "");
return getLockPatternUtils().isSecure(USER_CURRENT); return getLockPatternUtils().isSecure(userId);
} }
} }

View File

@@ -446,8 +446,7 @@ public class LockTaskControllerTest {
Settings.Secure.clearProviderForTest(); Settings.Secure.clearProviderForTest();
// AND a password is set // AND a password is set
when(mLockPatternUtils.isSecure(anyInt())) when(mLockPatternUtils.isSecure(TEST_USER_ID)).thenReturn(true);
.thenReturn(true);
// AND there is a task record // AND there is a task record
TaskRecord tr1 = getTaskRecord(TaskRecord.LOCK_TASK_AUTH_WHITELISTED); TaskRecord tr1 = getTaskRecord(TaskRecord.LOCK_TASK_AUTH_WHITELISTED);