diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java index 6c4cbdf27fa52..d881cb6347fe9 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/StatusBarStateController.java @@ -39,6 +39,11 @@ public interface StatusBarStateController { */ boolean isDozing(); + /** + * Is device pulsing. + */ + boolean isPulsing(); + /** * Adds a state listener */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java index 229aa6d98e0a9..2bef355d59f31 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarStateControllerImpl.java @@ -177,6 +177,11 @@ public class StatusBarStateControllerImpl implements SysuiStatusBarStateControll return mIsDozing; } + @Override + public boolean isPulsing() { + return mPulsing; + } + @Override public float getDozeAmount() { return mDozeAmount; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java index 9bf14e43da037..4afeba8de211e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java @@ -214,7 +214,6 @@ public final class DozeServiceHost implements DozeHost { dozing = false; } - mStatusBarStateController.setIsDozing(dozing); } @@ -260,7 +259,6 @@ public final class DozeServiceHost implements DozeHost { mKeyguardViewMediator.setPulsing(pulsing); mNotificationPanel.setPulsing(pulsing); mVisualStabilityManager.setPulsing(pulsing); - mLockscreenLockIconController.setPulsing(pulsing); mIgnoreTouchWhilePulsing = false; if (mKeyguardUpdateMonitor != null && passiveAuthInterrupt) { mKeyguardUpdateMonitor.onAuthInterruptDetected(pulsing /* active */); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java index a2e7306d49315..8a5c8b0898bc4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java @@ -76,8 +76,6 @@ public class LockscreenLockIconController { private boolean mKeyguardShowing; private boolean mKeyguardJustShown; private boolean mBlockUpdates; - private boolean mPulsing; - private boolean mDozing; private boolean mSimLocked; private boolean mTransientBiometricsError; private boolean mDocked; @@ -123,6 +121,11 @@ public class LockscreenLockIconController { setDozing(isDozing); } + @Override + public void onPulsingChanged(boolean pulsing) { + setPulsing(pulsing); + } + @Override public void onDozeAmountChanged(float linear, float eased) { if (mLockIcon != null) { @@ -378,8 +381,7 @@ public class LockscreenLockIconController { /** * Propagate {@link StatusBar} pulsing state. */ - public void setPulsing(boolean pulsing) { - mPulsing = pulsing; + private void setPulsing(boolean pulsing) { update(); } @@ -461,7 +463,8 @@ public class LockscreenLockIconController { shouldUpdate = false; } if (shouldUpdate && mLockIcon != null) { - mLockIcon.update(state, mPulsing, mDozing, mKeyguardJustShown); + mLockIcon.update(state, mStatusBarStateController.isPulsing(), + mStatusBarStateController.isDozing(), mKeyguardJustShown); } mLastState = state; mKeyguardJustShown = false; @@ -477,7 +480,8 @@ public class LockscreenLockIconController { return STATE_LOCK_OPEN; } else if (mTransientBiometricsError) { return STATE_BIOMETRICS_ERROR; - } else if (mKeyguardUpdateMonitor.isFaceDetectionRunning() && !mPulsing) { + } else if (mKeyguardUpdateMonitor.isFaceDetectionRunning() + && !mStatusBarStateController.isPulsing()) { return STATE_SCANNING_FACE; } else { return STATE_LOCKED; @@ -489,7 +493,6 @@ public class LockscreenLockIconController { } private void setDozing(boolean isDozing) { - mDozing = isDozing; update(); } @@ -504,7 +507,8 @@ public class LockscreenLockIconController { * @return true if the visibility changed */ private boolean updateIconVisibility() { - boolean onAodNotPulsingOrDocked = mDozing && (!mPulsing || mDocked); + boolean onAodNotPulsingOrDocked = mStatusBarStateController.isDozing() + && (!mStatusBarStateController.isPulsing() || mDocked); boolean invisible = onAodNotPulsingOrDocked || mWakeAndUnlockRunning || mShowingLaunchAffordance; if (mKeyguardBypassController.getBypassEnabled() && !mBouncerShowingScrimmed) {