summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Beverly Tai <beverlyt@google.com> 2022-10-07 15:58:17 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-10-07 15:58:17 +0000
commited7e61d86eda78b851f285bf1663346cea0ba62d (patch)
tree96df8ea177462cb53978e4704a24ae2d458f21f4
parent9b5f8d21ed55c6734aaa2cc417b93d0ca2b371b0 (diff)
parentd2dfe82bd8f4953184938e0e73a263e6535b6af7 (diff)
Merge "Eval KG showing, occluded and visibility together" into tm-qpr-dev
-rw-r--r--packages/SystemUI/src/com/android/keyguard/ClockEventController.kt10
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java6
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java80
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java26
-rw-r--r--packages/SystemUI/src/com/android/keyguard/LockIconViewController.java13
-rw-r--r--packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt10
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuController.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/AuthRippleController.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeLog.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardLiftController.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java6
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java45
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthRippleControllerTest.kt49
20 files changed, 133 insertions, 157 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt
index b444f4c1110b..fd386618977c 100644
--- a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt
+++ b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt
@@ -69,7 +69,7 @@ open class ClockEventController @Inject constructor(
private var isCharging = false
private var dozeAmount = 0f
- private var isKeyguardShowing = false
+ private var isKeyguardVisible = false
private val regionSamplingEnabled =
featureFlags.isEnabled(com.android.systemui.flags.Flags.REGION_SAMPLING)
@@ -145,7 +145,7 @@ open class ClockEventController @Inject constructor(
private val batteryCallback = object : BatteryStateChangeCallback {
override fun onBatteryLevelChanged(level: Int, pluggedIn: Boolean, charging: Boolean) {
- if (isKeyguardShowing && !isCharging && charging) {
+ if (isKeyguardVisible && !isCharging && charging) {
clock?.animations?.charge()
}
isCharging = charging
@@ -168,9 +168,9 @@ open class ClockEventController @Inject constructor(
}
private val keyguardUpdateMonitorCallback = object : KeyguardUpdateMonitorCallback() {
- override fun onKeyguardVisibilityChanged(showing: Boolean) {
- isKeyguardShowing = showing
- if (!isKeyguardShowing) {
+ override fun onKeyguardVisibilityChanged(visible: Boolean) {
+ isKeyguardVisible = visible
+ if (!isKeyguardVisible) {
clock?.animations?.doze(if (isDozing) 1f else 0f)
}
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
index c715a4eaef2b..e9f06eddf261 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
@@ -212,9 +212,9 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
}
@Override
- public void onKeyguardVisibilityChanged(boolean showing) {
- if (showing) {
- if (DEBUG) Slog.v(TAG, "refresh statusview showing:" + showing);
+ public void onKeyguardVisibilityChanged(boolean visible) {
+ if (visible) {
+ if (DEBUG) Slog.v(TAG, "refresh statusview visible:true");
refreshTime();
}
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index d14666de4b3e..cd9089e85ae0 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -308,7 +308,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
HashMap<Integer, ServiceState> mServiceStates = new HashMap<>();
private int mPhoneState;
- private boolean mKeyguardIsVisible;
+ private boolean mKeyguardShowing;
+ private boolean mKeyguardOccluded;
private boolean mCredentialAttempted;
private boolean mKeyguardGoingAway;
private boolean mGoingToSleep;
@@ -318,7 +319,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
private boolean mAuthInterruptActive;
private boolean mNeedsSlowUnlockTransition;
private boolean mAssistantVisible;
- private boolean mKeyguardOccluded;
private boolean mOccludingAppRequestingFp;
private boolean mOccludingAppRequestingFace;
private boolean mSecureCameraLaunched;
@@ -681,14 +681,42 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
}
/**
- * Updates KeyguardUpdateMonitor's internal state to know if keyguard is occluded
+ * Updates KeyguardUpdateMonitor's internal state to know if keyguard is showing and if
+ * its occluded. The keyguard is considered visible if its showing and NOT occluded.
*/
- public void setKeyguardOccluded(boolean occluded) {
+ public void setKeyguardShowing(boolean showing, boolean occluded) {
+ final boolean occlusionChanged = mKeyguardOccluded != occluded;
+ final boolean showingChanged = mKeyguardShowing != showing;
+ if (!occlusionChanged && !showingChanged) {
+ return;
+ }
+
+ final boolean wasKeyguardVisible = isKeyguardVisible();
+ mKeyguardShowing = showing;
mKeyguardOccluded = occluded;
- updateBiometricListeningState(BIOMETRIC_ACTION_UPDATE,
- FACE_AUTH_UPDATED_KEYGUARD_OCCLUSION_CHANGED);
- }
+ final boolean isKeyguardVisible = isKeyguardVisible();
+ mLogger.logKeyguardShowingChanged(showing, occluded, isKeyguardVisible);
+ if (isKeyguardVisible != wasKeyguardVisible) {
+ if (isKeyguardVisible) {
+ mSecureCameraLaunched = false;
+ }
+ for (int i = 0; i < mCallbacks.size(); i++) {
+ KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
+ if (cb != null) {
+ cb.onKeyguardVisibilityChanged(isKeyguardVisible);
+ }
+ }
+ }
+
+ if (occlusionChanged) {
+ updateBiometricListeningState(BIOMETRIC_ACTION_UPDATE,
+ FACE_AUTH_UPDATED_KEYGUARD_OCCLUSION_CHANGED);
+ } else if (showingChanged) {
+ updateBiometricListeningState(BIOMETRIC_ACTION_UPDATE,
+ FACE_AUTH_UPDATED_KEYGUARD_VISIBILITY_CHANGED);
+ }
+ }
/**
* Request to listen for face authentication when an app is occluding keyguard.
@@ -2442,7 +2470,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
// Triggers:
final boolean triggerActiveUnlockForAssistant = shouldTriggerActiveUnlockForAssistant();
final boolean awakeKeyguard = mBouncerFullyShown || mUdfpsBouncerShowing
- || (mKeyguardIsVisible && !mGoingToSleep
+ || (isKeyguardVisible() && !mGoingToSleep
&& mStatusBarState != StatusBarState.SHADE_LOCKED);
// Gates:
@@ -2518,7 +2546,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
final boolean userDoesNotHaveTrust = !getUserHasTrust(user);
final boolean shouldListenForFingerprintAssistant = shouldListenForFingerprintAssistant();
final boolean shouldListenKeyguardState =
- mKeyguardIsVisible
+ isKeyguardVisible()
|| !mDeviceInteractive
|| (mBouncerIsOrWillBeShowing && !mKeyguardGoingAway)
|| mGoingToSleep
@@ -2567,7 +2595,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
mFingerprintLockedOut,
mGoingToSleep,
mKeyguardGoingAway,
- mKeyguardIsVisible,
+ isKeyguardVisible(),
mKeyguardOccluded,
mOccludingAppRequestingFp,
mIsPrimaryUser,
@@ -2589,7 +2617,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
}
final boolean statusBarShadeLocked = mStatusBarState == StatusBarState.SHADE_LOCKED;
- final boolean awakeKeyguard = mKeyguardIsVisible && mDeviceInteractive
+ final boolean awakeKeyguard = isKeyguardVisible() && mDeviceInteractive
&& !statusBarShadeLocked;
final int user = getCurrentUser();
final int strongAuth = mStrongAuthTracker.getStrongAuthForUser(user);
@@ -3146,32 +3174,18 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
callbacksRefreshCarrierInfo();
}
+ /**
+ * Whether the keyguard is showing and not occluded.
+ */
public boolean isKeyguardVisible() {
- return mKeyguardIsVisible;
+ return isKeyguardShowing() && !mKeyguardOccluded;
}
/**
- * Notifies that the visibility state of Keyguard has changed.
- *
- * <p>Needs to be called from the main thread.
+ * Whether the keyguard is showing. It may still be occluded and not visible.
*/
- public void onKeyguardVisibilityChanged(boolean showing) {
- Assert.isMainThread();
- mLogger.logKeyguardVisibilityChanged(showing);
- mKeyguardIsVisible = showing;
-
- if (showing) {
- mSecureCameraLaunched = false;
- }
-
- for (int i = 0; i < mCallbacks.size(); i++) {
- KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
- if (cb != null) {
- cb.onKeyguardVisibilityChangedRaw(showing);
- }
- }
- updateBiometricListeningState(BIOMETRIC_ACTION_UPDATE,
- FACE_AUTH_UPDATED_KEYGUARD_VISIBILITY_CHANGED);
+ public boolean isKeyguardShowing() {
+ return mKeyguardShowing;
}
/**
@@ -3380,7 +3394,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
callback.onTimeChanged();
callback.onPhoneStateChanged(mPhoneState);
callback.onRefreshCarrierInfo();
- callback.onKeyguardVisibilityChangedRaw(mKeyguardIsVisible);
+ callback.onKeyguardVisibilityChanged(isKeyguardVisible());
callback.onTelephonyCapable(mTelephonyCapable);
for (Entry<Integer, SimData> data : mSimDatas.entrySet()) {
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
index 7a42803859b5..bc5ab88b586b 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
@@ -16,7 +16,6 @@
package com.android.keyguard;
import android.hardware.biometrics.BiometricSourceType;
-import android.os.SystemClock;
import android.telephony.TelephonyManager;
import android.view.WindowManagerPolicyConstants;
@@ -32,10 +31,6 @@ import java.util.TimeZone;
*/
public class KeyguardUpdateMonitorCallback {
- private static final long VISIBILITY_CHANGED_COLLAPSE_MS = 1000;
- private long mVisibilityChangedCalled;
- private boolean mShowing;
-
/**
* Called when the battery status changes, e.g. when plugged in or unplugged, charge
* level, etc. changes.
@@ -75,21 +70,6 @@ public class KeyguardUpdateMonitorCallback {
public void onPhoneStateChanged(int phoneState) { }
/**
- * Called when the visibility of the keyguard changes.
- * @param showing Indicates if the keyguard is now visible.
- */
- public void onKeyguardVisibilityChanged(boolean showing) { }
-
- public void onKeyguardVisibilityChangedRaw(boolean showing) {
- final long now = SystemClock.elapsedRealtime();
- if (showing == mShowing
- && (now - mVisibilityChangedCalled) < VISIBILITY_CHANGED_COLLAPSE_MS) return;
- onKeyguardVisibilityChanged(showing);
- mVisibilityChangedCalled = now;
- mShowing = showing;
- }
-
- /**
* Called when the keyguard enters or leaves bouncer mode.
* @param bouncerIsOrWillBeShowing if true, keyguard is showing the bouncer or transitioning
* from/to bouncer mode.
@@ -97,6 +77,12 @@ public class KeyguardUpdateMonitorCallback {
public void onKeyguardBouncerStateChanged(boolean bouncerIsOrWillBeShowing) { }
/**
+ * Called when the keyguard visibility changes.
+ * @param visible whether the keyguard is showing and is NOT occluded
+ */
+ public void onKeyguardVisibilityChanged(boolean visible) { }
+
+ /**
* Called when the keyguard fully transitions to the bouncer or is no longer the bouncer
* @param bouncerIsFullyShowing if true, keyguard is fully showing the bouncer
*/
diff --git a/packages/SystemUI/src/com/android/keyguard/LockIconViewController.java b/packages/SystemUI/src/com/android/keyguard/LockIconViewController.java
index 2a3667610f9c..c41b7522ce93 100644
--- a/packages/SystemUI/src/com/android/keyguard/LockIconViewController.java
+++ b/packages/SystemUI/src/com/android/keyguard/LockIconViewController.java
@@ -447,14 +447,6 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback =
new KeyguardUpdateMonitorCallback() {
@Override
- public void onKeyguardVisibilityChanged(boolean showing) {
- // reset mIsBouncerShowing state in case it was preemptively set
- // onLongPress
- mIsBouncerShowing = mKeyguardViewController.isBouncerShowing();
- updateVisibility();
- }
-
- @Override
public void onKeyguardBouncerStateChanged(boolean bouncer) {
mIsBouncerShowing = bouncer;
updateVisibility();
@@ -507,6 +499,11 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
// If biometrics were removed, local vars mCanDismissLockScreen and
// mUserUnlockedWithBiometric may not be updated.
mCanDismissLockScreen = mKeyguardStateController.canDismissLockScreen();
+
+ // reset mIsBouncerShowing state in case it was preemptively set
+ // onLongPress
+ mIsBouncerShowing = mKeyguardViewController.isBouncerShowing();
+
updateKeyguardShowing();
if (mIsKeyguardShowing) {
mUserUnlockedWithBiometric =
diff --git a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt
index bf9f4c88bde3..54cec7132bfa 100644
--- a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt
+++ b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt
@@ -170,8 +170,14 @@ class KeyguardUpdateMonitorLogger @Inject constructor(
logBuffer.log(TAG, VERBOSE, { str1 = "$model" }, { str1!! })
}
- fun logKeyguardVisibilityChanged(showing: Boolean) {
- logBuffer.log(TAG, DEBUG, { bool1 = showing }, { "onKeyguardVisibilityChanged($bool1)" })
+ fun logKeyguardShowingChanged(showing: Boolean, occluded: Boolean, visible: Boolean) {
+ logBuffer.log(TAG, DEBUG, {
+ bool1 = showing
+ bool2 = occluded
+ bool3 = visible
+ }, {
+ "keyguardShowingChanged(showing=$bool1 occluded=$bool2 visible=$bool3)"
+ })
}
fun logMissingSupervisorAppError(userId: Int) {
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuController.java b/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuController.java
index 11353f67a799..403941f8e639 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuController.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/AccessibilityFloatingMenuController.java
@@ -61,8 +61,8 @@ public class AccessibilityFloatingMenuController implements
}
@Override
- public void onKeyguardVisibilityChanged(boolean showing) {
- mIsKeyguardVisible = showing;
+ public void onKeyguardVisibilityChanged(boolean visible) {
+ mIsKeyguardVisible = visible;
handleFloatingMenuVisibility(mIsKeyguardVisible, mBtnMode, mBtnTargets);
}
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthRippleController.kt b/packages/SystemUI/src/com/android/systemui/biometrics/AuthRippleController.kt
index 4fee0837a52c..4363b88bf21e 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthRippleController.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthRippleController.kt
@@ -117,7 +117,7 @@ class AuthRippleController @Inject constructor(
}
fun showUnlockRipple(biometricSourceType: BiometricSourceType?) {
- if (!(keyguardUpdateMonitor.isKeyguardVisible || keyguardUpdateMonitor.isDreaming) ||
+ if (!keyguardStateController.isShowing ||
keyguardUpdateMonitor.userNeedsStrongAuth()) {
return
}
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
index 8ae305b1f329..2e51b51d2836 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
@@ -431,8 +431,8 @@ public class DozeLog implements Dumpable {
}
@Override
- public void onKeyguardVisibilityChanged(boolean showing) {
- traceKeyguard(showing);
+ public void onKeyguardVisibilityChanged(boolean visible) {
+ traceKeyguard(visible);
}
};
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt b/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt
index 21a2c3b57f82..cc5766210406 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt
@@ -155,11 +155,11 @@ class DozeLogger @Inject constructor(
})
}
- fun logKeyguardVisibilityChange(isShowing: Boolean) {
+ fun logKeyguardVisibilityChange(isVisible: Boolean) {
buffer.log(TAG, INFO, {
- bool1 = isShowing
+ bool1 = isVisible
}, {
- "Keyguard visibility change, isShowing=$bool1"
+ "Keyguard visibility change, isVisible=$bool1"
})
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 2bfdce0c4939..da0b910c5a51 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -511,9 +511,9 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable,
KeyguardUpdateMonitorCallback mUpdateCallback = new KeyguardUpdateMonitorCallback() {
@Override
- public void onKeyguardVisibilityChanged(boolean showing) {
+ public void onKeyguardVisibilityChanged(boolean visible) {
synchronized (KeyguardViewMediator.this) {
- if (!showing && mPendingPinLock) {
+ if (!visible && mPendingPinLock) {
Log.i(TAG, "PIN lock requested, starting keyguard");
// Bring the keyguard back in order to show the PIN lock
@@ -1806,7 +1806,6 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable,
if (mOccluded != isOccluded) {
mOccluded = isOccluded;
- mUpdateMonitor.setKeyguardOccluded(isOccluded);
mKeyguardViewControllerLazy.get().setOccluded(isOccluded, animate
&& mDeviceInteractive);
adjustStatusBarLocked();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
index 54d39fd673f6..de7b152adaab 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
@@ -93,13 +93,13 @@ public class DozeParameters implements
private boolean mControlScreenOffAnimation;
private boolean mIsQuickPickupEnabled;
- private boolean mKeyguardShowing;
+ private boolean mKeyguardVisible;
@VisibleForTesting
final KeyguardUpdateMonitorCallback mKeyguardVisibilityCallback =
new KeyguardUpdateMonitorCallback() {
@Override
- public void onKeyguardVisibilityChanged(boolean showing) {
- mKeyguardShowing = showing;
+ public void onKeyguardVisibilityChanged(boolean visible) {
+ mKeyguardVisible = visible;
updateControlScreenOff();
}
@@ -293,7 +293,7 @@ public class DozeParameters implements
public void updateControlScreenOff() {
if (!getDisplayNeedsBlanking()) {
final boolean controlScreenOff =
- getAlwaysOn() && (mKeyguardShowing || shouldControlUnlockedScreenOff());
+ getAlwaysOn() && (mKeyguardVisible || shouldControlUnlockedScreenOff());
setControlScreenOffAnimation(controlScreenOff);
}
}
@@ -348,7 +348,7 @@ public class DozeParameters implements
}
private boolean willAnimateFromLockScreenToAod() {
- return getAlwaysOn() && mKeyguardShowing;
+ return getAlwaysOn() && mKeyguardVisible;
}
private boolean getBoolean(String propName, int resId) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardLiftController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardLiftController.kt
index b58dbe263eff..e3e85728ff83 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardLiftController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardLiftController.kt
@@ -88,7 +88,7 @@ class KeyguardLiftController @Inject constructor(
updateListeningState()
}
- override fun onKeyguardVisibilityChanged(showing: Boolean) {
+ override fun onKeyguardVisibilityChanged(visible: Boolean) {
updateListeningState()
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java
index 054bd28e003d..14cebf4b9f4b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java
@@ -187,8 +187,8 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
}
@Override
- public void onKeyguardVisibilityChanged(boolean showing) {
- if (showing) {
+ public void onKeyguardVisibilityChanged(boolean visible) {
+ if (visible) {
updateUserSwitcher();
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index 4d1c3617ac1a..9f932238007a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -1534,7 +1534,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
private class KeyguardVisibilityCallback extends KeyguardUpdateMonitorCallback {
@Override
- public void onKeyguardVisibilityChanged(boolean showing) {
+ public void onKeyguardVisibilityChanged(boolean visible) {
mNeedsDrawableColorUpdate = true;
scheduleUpdate();
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
index a0578fac2033..942141b4c5b1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -1131,8 +1131,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
if (occluded != mLastOccluded || mFirstUpdate) {
mKeyguardStateController.notifyKeyguardState(showing, occluded);
}
- if ((showing && !occluded) != (mLastShowing && !mLastOccluded) || mFirstUpdate) {
- mKeyguardUpdateManager.onKeyguardVisibilityChanged(showing && !occluded);
+ if (occluded != mLastOccluded || mShowing != showing || mFirstUpdate) {
+ mKeyguardUpdateManager.setKeyguardShowing(showing, occluded);
}
if (bouncerIsOrWillBeShowing != mLastBouncerIsOrWillBeShowing || mFirstUpdate
|| bouncerShowing != mLastBouncerShowing) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java
index f4d08e01d5c3..437d4d415275 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardStateControllerImpl.java
@@ -435,7 +435,7 @@ public class KeyguardStateControllerImpl implements KeyguardStateController, Dum
}
@Override
- public void onKeyguardVisibilityChanged(boolean showing) {
+ public void onKeyguardVisibilityChanged(boolean visible) {
update(false /* updateAlways */);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java
index 712953e14d60..494a4bbbdf9f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcherController.java
@@ -91,11 +91,11 @@ public class KeyguardUserSwitcherController extends ViewController<KeyguardUserS
private final KeyguardUpdateMonitorCallback mInfoCallback =
new KeyguardUpdateMonitorCallback() {
@Override
- public void onKeyguardVisibilityChanged(boolean showing) {
- if (DEBUG) Log.d(TAG, String.format("onKeyguardVisibilityChanged %b", showing));
+ public void onKeyguardVisibilityChanged(boolean visible) {
+ if (DEBUG) Log.d(TAG, String.format("onKeyguardVisibilityChanged %b", visible));
// Any time the keyguard is hidden, try to close the user switcher menu to
// restore keyguard to the default state
- if (!showing) {
+ if (!visible) {
closeSwitcherIfOpenAndNotSimple(false);
}
}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index 9aa71e9106ac..63729e325209 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -607,7 +607,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
public void testTriesToAuthenticate_whenKeyguard() {
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
mTestableLooper.processAllMessages();
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
}
@@ -617,7 +617,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
mTestableLooper.processAllMessages();
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
verify(mFaceManager, never()).authenticate(any(), any(), any(), any(), anyInt(),
anyBoolean());
}
@@ -630,7 +630,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
mTestableLooper.processAllMessages();
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
verify(mFaceManager, never()).authenticate(any(), any(), any(), any(), anyInt(),
anyBoolean());
}
@@ -654,7 +654,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
mTestableLooper.processAllMessages();
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
// Stop scanning when bouncer becomes visible
@@ -668,7 +668,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
@Test
public void testTriesToAuthenticate_whenAssistant() {
- mKeyguardUpdateMonitor.setKeyguardOccluded(true);
+ mKeyguardUpdateMonitor.setKeyguardShowing(true, true);
mKeyguardUpdateMonitor.setAssistantVisible(true);
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
@@ -683,7 +683,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
mKeyguardUpdateMonitor.onTrustChanged(true /* enabled */,
KeyguardUpdateMonitor.getCurrentUser(), 0 /* flags */,
new ArrayList<>());
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
}
@@ -693,7 +693,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
mKeyguardUpdateMonitor.onTrustChanged(true /* enabled */,
KeyguardUpdateMonitor.getCurrentUser(), 0 /* flags */, new ArrayList<>());
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
verify(mFaceManager, never()).authenticate(any(), any(), any(), any(), anyInt(),
anyBoolean());
}
@@ -705,7 +705,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
when(mStrongAuthTracker.getStrongAuthForUser(anyInt())).thenReturn(
KeyguardUpdateMonitor.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN);
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
verify(mFaceManager, never()).authenticate(any(), any(), any(), any(), anyInt(),
anyBoolean());
}
@@ -717,7 +717,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
when(mStrongAuthTracker.getStrongAuthForUser(anyInt())).thenReturn(
KeyguardUpdateMonitor.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT);
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
}
@@ -738,7 +738,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
public void testFaceAndFingerprintLockout_onlyFace() {
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
mTestableLooper.processAllMessages();
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
faceAuthLockedOut();
@@ -749,7 +749,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
public void testFaceAndFingerprintLockout_onlyFingerprint() {
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
mTestableLooper.processAllMessages();
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
mKeyguardUpdateMonitor.mFingerprintAuthenticationCallback
.onAuthenticationError(FINGERPRINT_ERROR_LOCKOUT_PERMANENT, "");
@@ -761,7 +761,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
public void testFaceAndFingerprintLockout() {
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
mTestableLooper.processAllMessages();
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
faceAuthLockedOut();
mKeyguardUpdateMonitor.mFingerprintAuthenticationCallback
@@ -860,7 +860,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
mTestableLooper.processAllMessages();
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
verify(mFingerprintManager).authenticate(any(), any(), any(), any(), anyInt(), anyInt(),
@@ -1033,8 +1033,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
public void testOccludingAppFingerprintListeningState() {
// GIVEN keyguard isn't visible (app occluding)
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
- mKeyguardUpdateMonitor.setKeyguardOccluded(true);
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(false);
+ mKeyguardUpdateMonitor.setKeyguardShowing(true, true);
when(mStrongAuthTracker.hasUserAuthenticatedSinceBoot()).thenReturn(true);
// THEN we shouldn't listen for fingerprints
@@ -1049,8 +1048,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
public void testOccludingAppRequestsFingerprint() {
// GIVEN keyguard isn't visible (app occluding)
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
- mKeyguardUpdateMonitor.setKeyguardOccluded(true);
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(false);
+ mKeyguardUpdateMonitor.setKeyguardShowing(true, true);
// WHEN an occluding app requests fp
mKeyguardUpdateMonitor.requestFingerprintAuthOnOccludingApp(true);
@@ -1142,7 +1140,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
setKeyguardBouncerVisibility(false /* isVisible */);
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
when(mKeyguardBypassController.canBypass()).thenReturn(true);
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
// WHEN status bar state reports a change to the keyguard that would normally indicate to
// start running face auth
@@ -1153,8 +1151,9 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
// listening state to update
assertThat(mKeyguardUpdateMonitor.isFaceDetectionRunning()).isEqualTo(false);
- // WHEN biometric listening state is updated
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ // WHEN biometric listening state is updated when showing state changes from false => true
+ mKeyguardUpdateMonitor.setKeyguardShowing(false, false);
+ mKeyguardUpdateMonitor.setKeyguardShowing(true, false);
// THEN face unlock is running
assertThat(mKeyguardUpdateMonitor.isFaceDetectionRunning()).isEqualTo(true);
@@ -1520,7 +1519,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
public void testFingerprintCanAuth_whenCancellationNotReceivedAndAuthFailed() {
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
mTestableLooper.processAllMessages();
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ keyguardIsVisible();
verify(mFaceManager).authenticate(any(), any(), any(), any(), anyInt(), anyBoolean());
verify(mFingerprintManager).authenticate(any(), any(), any(), any(), anyInt(), anyInt(),
@@ -1529,7 +1528,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
mKeyguardUpdateMonitor.onFaceAuthenticated(0, false);
// Make sure keyguard is going away after face auth attempt, and that it calls
// updateBiometricStateListeningState.
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(false);
+ mKeyguardUpdateMonitor.setKeyguardShowing(false, false);
mTestableLooper.processAllMessages();
verify(mHandler).postDelayed(mKeyguardUpdateMonitor.mFpCancelNotReceived,
@@ -1589,7 +1588,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
}
private void keyguardIsVisible() {
- mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
+ mKeyguardUpdateMonitor.setKeyguardShowing(true, false);
}
private void triggerAuthInterrupt() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthRippleControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthRippleControllerTest.kt
index 37bb0c296735..0b528a5c8d1e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthRippleControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthRippleControllerTest.kt
@@ -117,13 +117,12 @@ class AuthRippleControllerTest : SysuiTestCase() {
}
@Test
- fun testFingerprintTrigger_KeyguardVisible_Ripple() {
- // GIVEN fp exists, keyguard is visible, user doesn't need strong auth
+ fun testFingerprintTrigger_KeyguardShowing_Ripple() {
+ // GIVEN fp exists, keyguard is showing, user doesn't need strong auth
val fpsLocation = Point(5, 5)
`when`(authController.fingerprintSensorLocation).thenReturn(fpsLocation)
controller.onViewAttached()
- `when`(keyguardUpdateMonitor.isKeyguardVisible).thenReturn(true)
- `when`(keyguardUpdateMonitor.isDreaming).thenReturn(false)
+ `when`(keyguardStateController.isShowing).thenReturn(true)
`when`(keyguardUpdateMonitor.userNeedsStrongAuth()).thenReturn(false)
// WHEN fingerprint authenticated
@@ -140,39 +139,15 @@ class AuthRippleControllerTest : SysuiTestCase() {
}
@Test
- fun testFingerprintTrigger_Dreaming_Ripple() {
- // GIVEN fp exists, keyguard is visible, user doesn't need strong auth
- val fpsLocation = Point(5, 5)
- `when`(authController.fingerprintSensorLocation).thenReturn(fpsLocation)
- controller.onViewAttached()
- `when`(keyguardUpdateMonitor.isKeyguardVisible).thenReturn(false)
- `when`(keyguardUpdateMonitor.isDreaming).thenReturn(true)
- `when`(keyguardUpdateMonitor.userNeedsStrongAuth()).thenReturn(false)
-
- // WHEN fingerprint authenticated
- val captor = ArgumentCaptor.forClass(KeyguardUpdateMonitorCallback::class.java)
- verify(keyguardUpdateMonitor).registerCallback(captor.capture())
- captor.value.onBiometricAuthenticated(
- 0 /* userId */,
- BiometricSourceType.FINGERPRINT /* type */,
- false /* isStrongBiometric */)
-
- // THEN update sensor location and show ripple
- verify(rippleView).setFingerprintSensorLocation(fpsLocation, 0f)
- verify(rippleView).startUnlockedRipple(any())
- }
-
- @Test
- fun testFingerprintTrigger_KeyguardNotVisible_NotDreaming_NoRipple() {
+ fun testFingerprintTrigger_KeyguardNotShowing_NoRipple() {
// GIVEN fp exists & user doesn't need strong auth
val fpsLocation = Point(5, 5)
`when`(authController.udfpsLocation).thenReturn(fpsLocation)
controller.onViewAttached()
`when`(keyguardUpdateMonitor.userNeedsStrongAuth()).thenReturn(false)
- // WHEN keyguard is NOT visible & fingerprint authenticated
- `when`(keyguardUpdateMonitor.isKeyguardVisible).thenReturn(false)
- `when`(keyguardUpdateMonitor.isDreaming).thenReturn(false)
+ // WHEN keyguard is NOT showing & fingerprint authenticated
+ `when`(keyguardStateController.isShowing).thenReturn(false)
val captor = ArgumentCaptor.forClass(KeyguardUpdateMonitorCallback::class.java)
verify(keyguardUpdateMonitor).registerCallback(captor.capture())
captor.value.onBiometricAuthenticated(
@@ -186,11 +161,11 @@ class AuthRippleControllerTest : SysuiTestCase() {
@Test
fun testFingerprintTrigger_StrongAuthRequired_NoRipple() {
- // GIVEN fp exists & keyguard is visible
+ // GIVEN fp exists & keyguard is showing
val fpsLocation = Point(5, 5)
`when`(authController.udfpsLocation).thenReturn(fpsLocation)
controller.onViewAttached()
- `when`(keyguardUpdateMonitor.isKeyguardVisible).thenReturn(true)
+ `when`(keyguardStateController.isShowing).thenReturn(true)
// WHEN user needs strong auth & fingerprint authenticated
`when`(keyguardUpdateMonitor.userNeedsStrongAuth()).thenReturn(true)
@@ -207,12 +182,12 @@ class AuthRippleControllerTest : SysuiTestCase() {
@Test
fun testFaceTriggerBypassEnabled_Ripple() {
- // GIVEN face auth sensor exists, keyguard is visible & strong auth isn't required
+ // GIVEN face auth sensor exists, keyguard is showing & strong auth isn't required
val faceLocation = Point(5, 5)
`when`(authController.faceSensorLocation).thenReturn(faceLocation)
controller.onViewAttached()
- `when`(keyguardUpdateMonitor.isKeyguardVisible).thenReturn(true)
+ `when`(keyguardStateController.isShowing).thenReturn(true)
`when`(keyguardUpdateMonitor.userNeedsStrongAuth()).thenReturn(false)
// WHEN bypass is enabled & face authenticated
@@ -299,7 +274,7 @@ class AuthRippleControllerTest : SysuiTestCase() {
val fpsLocation = Point(5, 5)
`when`(authController.fingerprintSensorLocation).thenReturn(fpsLocation)
controller.onViewAttached()
- `when`(keyguardUpdateMonitor.isKeyguardVisible).thenReturn(true)
+ `when`(keyguardStateController.isShowing).thenReturn(true)
`when`(biometricUnlockController.isWakeAndUnlock).thenReturn(true)
controller.showUnlockRipple(BiometricSourceType.FINGERPRINT)
@@ -317,7 +292,7 @@ class AuthRippleControllerTest : SysuiTestCase() {
val faceLocation = Point(5, 5)
`when`(authController.faceSensorLocation).thenReturn(faceLocation)
controller.onViewAttached()
- `when`(keyguardUpdateMonitor.isKeyguardVisible).thenReturn(true)
+ `when`(keyguardStateController.isShowing).thenReturn(true)
`when`(biometricUnlockController.isWakeAndUnlock).thenReturn(true)
`when`(authController.isUdfpsFingerDown).thenReturn(true)