From 8982038d26494deb89d7aecc831d5af0315f0417 Mon Sep 17 00:00:00 2001 From: Beverly Date: Thu, 5 May 2022 20:11:00 +0000 Subject: [PATCH] Don't require awakeKeyguard for activeUnlock Request active unlock even when the device is on AoD/dozing. Allow TrustAgents with FLAG_GRANT_TRUST_TEMPORARY_AND_RENEWABLE to dismiss the keyguard if the device's screen isn't on. Fixes: 231333697 Change-Id: I23cea0743c89ca6d4eb761aff12672d79a2820dc --- .../src/com/android/keyguard/KeyguardHostViewController.java | 5 ++++- .../src/com/android/keyguard/KeyguardUpdateMonitor.java | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java index 804d146818123..12fa401d7fea9 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java @@ -71,13 +71,16 @@ public class KeyguardHostViewController extends ViewController public void onTrustGrantedWithFlags(int flags, int userId) { if (userId != KeyguardUpdateMonitor.getCurrentUser()) return; boolean bouncerVisible = mView.isVisibleToUser(); + boolean temporaryAndRenewable = + (flags & TrustAgentService.FLAG_GRANT_TRUST_TEMPORARY_AND_RENEWABLE) + != 0; boolean initiatedByUser = (flags & TrustAgentService.FLAG_GRANT_TRUST_INITIATED_BY_USER) != 0; boolean dismissKeyguard = (flags & TrustAgentService.FLAG_GRANT_TRUST_DISMISS_KEYGUARD) != 0; if (initiatedByUser || dismissKeyguard) { - if (mViewMediatorCallback.isScreenOn() + if ((mViewMediatorCallback.isScreenOn() || temporaryAndRenewable) && (bouncerVisible || dismissKeyguard)) { if (!bouncerVisible) { // The trust agent dismissed the keyguard without the user proving diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index bbe9a362b1fac..9f8a51e0b3e38 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -2405,7 +2405,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab // Triggers: final boolean triggerActiveUnlockForAssistant = shouldTriggerActiveUnlockForAssistant(); final boolean awakeKeyguard = mBouncerFullyShown || mUdfpsBouncerShowing - || (mKeyguardIsVisible && mDeviceInteractive && !mGoingToSleep + || (mKeyguardIsVisible && !mGoingToSleep && mStatusBarState != StatusBarState.SHADE_LOCKED); // Gates: