From 601cda659d6c0b88679f3d1c36aa6e4674cb8c9b Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Mon, 24 Jun 2019 17:37:57 -0700 Subject: [PATCH] Animating the shade when going back to the keyguard from shade locked Previously there was no animation at all Bug: 130327302 Test: go to shade locked, click on bottom Change-Id: I665a085354510665a04a2d4ba8c5c265e8e38d4a --- .../NotificationWakeUpCoordinator.kt | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinator.kt index 95af9fde1e98a..6a3816c50330f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinator.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinator.kt @@ -38,7 +38,7 @@ import javax.inject.Singleton class NotificationWakeUpCoordinator @Inject constructor( private val mContext: Context, private val mHeadsUpManagerPhone: HeadsUpManagerPhone, - private val mStatusBarStateController: StatusBarStateController, + private val statusBarStateController: StatusBarStateController, private val bypassController: KeyguardBypassController) : OnHeadsUpChangedListener, StatusBarStateController.StateListener { @@ -69,6 +69,8 @@ class NotificationWakeUpCoordinator @Inject constructor( private val mDozeParameters: DozeParameters private var pulseExpanding: Boolean = false private val wakeUpListeners = arrayListOf() + private var state: Int = StatusBarState.KEYGUARD + var fullyAwake: Boolean = false var willWakeUp = false @@ -111,14 +113,14 @@ class NotificationWakeUpCoordinator @Inject constructor( if (bypassController.bypassEnabled) { // We also allow pulsing on the lock screen! canShow = canShow || (mWakingUp || willWakeUp || fullyAwake) - && mStatusBarStateController.state == StatusBarState.KEYGUARD + && statusBarStateController.state == StatusBarState.KEYGUARD } return canShow } init { mHeadsUpManagerPhone.addListener(this) - mStatusBarStateController.addCallback(this) + statusBarStateController.addCallback(this) mDozeParameters = DozeParameters.getInstance(mContext) } @@ -217,13 +219,21 @@ class NotificationWakeUpCoordinator @Inject constructor( override fun onStateChanged(newState: Int) { updateDozeAmountIfBypass(); + if (bypassController.bypassEnabled && + newState == StatusBarState.KEYGUARD && state == StatusBarState.SHADE_LOCKED + && (!statusBarStateController.isDozing || shouldAnimateVisibility())) { + // We're leaving shade locked. Let's animate the notifications away + setNotificationsVisible(visible = true, increaseSpeed = false, animate = false) + setNotificationsVisible(visible = false, increaseSpeed = false, animate = true) + } + this.state = newState } private fun updateDozeAmountIfBypass(): Boolean { if (bypassController.bypassEnabled) { var amount = 1.0f; - if (mStatusBarStateController.state == StatusBarState.SHADE - || mStatusBarStateController.state == StatusBarState.SHADE_LOCKED) { + if (statusBarStateController.state == StatusBarState.SHADE + || statusBarStateController.state == StatusBarState.SHADE_LOCKED) { amount = 0.0f; } setDozeAmount(amount, amount)