Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinator.kt +11 −38 Original line number Diff line number Diff line Loading @@ -18,10 +18,8 @@ package com.android.systemui.statusbar.notification import android.animation.ObjectAnimator import android.util.FloatProperty import com.android.systemui.Dumpable import com.android.systemui.animation.Interpolators import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.notification.collection.NotificationEntry Loading @@ -34,20 +32,17 @@ import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener import com.android.systemui.statusbar.policy.HeadsUpManager import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener import java.io.PrintWriter import javax.inject.Inject import kotlin.math.min @SysUISingleton class NotificationWakeUpCoordinator @Inject constructor( dumpManager: DumpManager, private val mHeadsUpManager: HeadsUpManager, private val statusBarStateController: StatusBarStateController, private val bypassController: KeyguardBypassController, private val dozeParameters: DozeParameters, private val screenOffAnimationController: ScreenOffAnimationController ) : OnHeadsUpChangedListener, StatusBarStateController.StateListener, PanelExpansionListener, Dumpable { ) : OnHeadsUpChangedListener, StatusBarStateController.StateListener, PanelExpansionListener { private val mNotificationVisibility = object : FloatProperty<NotificationWakeUpCoordinator>( "notificationVisibility") { Loading @@ -65,7 +60,6 @@ class NotificationWakeUpCoordinator @Inject constructor( private var mLinearDozeAmount: Float = 0.0f private var mDozeAmount: Float = 0.0f private var mDozeAmountSource: String = "init" private var mNotificationVisibleAmount = 0.0f private var mNotificationsVisible = false private var mNotificationsVisibleForExpansion = false Loading Loading @@ -148,7 +142,6 @@ class NotificationWakeUpCoordinator @Inject constructor( } init { dumpManager.registerDumpable(this) mHeadsUpManager.addListener(this) statusBarStateController.addCallback(this) addListener(object : WakeUpListener { Loading Loading @@ -255,14 +248,13 @@ class NotificationWakeUpCoordinator @Inject constructor( // Let's notify the scroller that an animation started notifyAnimationStart(mLinearDozeAmount == 1.0f) } setDozeAmount(linear, eased, source = "StatusBar") setDozeAmount(linear, eased) } fun setDozeAmount(linear: Float, eased: Float, source: String) { fun setDozeAmount(linear: Float, eased: Float) { val changed = linear != mLinearDozeAmount mLinearDozeAmount = linear mDozeAmount = eased mDozeAmountSource = source mStackScrollerController.setDozeAmount(mDozeAmount) updateHideAmount() if (changed && linear == 0.0f) { Loading @@ -279,7 +271,7 @@ class NotificationWakeUpCoordinator @Inject constructor( // undefined state, so it's an indication that we should do state cleanup. We override // the doze amount to 0f (not dozing) so that the notifications are no longer hidden. // See: UnlockedScreenOffAnimationController.onFinishedWakingUp() setDozeAmount(0f, 0f, source = "Override: Shade->Shade (lock cancelled by unlock)") setDozeAmount(0f, 0f) } if (overrideDozeAmountIfAnimatingScreenOff(mLinearDozeAmount)) { Loading Loading @@ -319,11 +311,12 @@ class NotificationWakeUpCoordinator @Inject constructor( */ private fun overrideDozeAmountIfBypass(): Boolean { if (bypassController.bypassEnabled) { if (statusBarStateController.state == StatusBarState.KEYGUARD) { setDozeAmount(1f, 1f, source = "Override: bypass (keyguard)") } else { setDozeAmount(0f, 0f, source = "Override: bypass (shade)") var amount = 1.0f if (statusBarStateController.state == StatusBarState.SHADE || statusBarStateController.state == StatusBarState.SHADE_LOCKED) { amount = 0.0f } setDozeAmount(amount, amount) return true } return false Loading @@ -339,7 +332,7 @@ class NotificationWakeUpCoordinator @Inject constructor( */ private fun overrideDozeAmountIfAnimatingScreenOff(linearDozeAmount: Float): Boolean { if (screenOffAnimationController.overrideNotificationsFullyDozingOnKeyguard()) { setDozeAmount(1f, 1f, source = "Override: animating screen off") setDozeAmount(1f, 1f) return true } Loading Loading @@ -433,24 +426,4 @@ class NotificationWakeUpCoordinator @Inject constructor( */ @JvmDefault fun onPulseExpansionChanged(expandingChanged: Boolean) {} } override fun dump(pw: PrintWriter, args: Array<out String>) { pw.println("mLinearDozeAmount: $mLinearDozeAmount") pw.println("mDozeAmount: $mDozeAmount") pw.println("mDozeAmountSource: $mDozeAmountSource") pw.println("mNotificationVisibleAmount: $mNotificationVisibleAmount") pw.println("mNotificationsVisible: $mNotificationsVisible") pw.println("mNotificationsVisibleForExpansion: $mNotificationsVisibleForExpansion") pw.println("mVisibilityAmount: $mVisibilityAmount") pw.println("mLinearVisibilityAmount: $mLinearVisibilityAmount") pw.println("pulseExpanding: $pulseExpanding") pw.println("state: ${StatusBarState.toString(state)}") pw.println("fullyAwake: $fullyAwake") pw.println("wakingUp: $wakingUp") pw.println("willWakeUp: $willWakeUp") pw.println("collapsedEnoughToHide: $collapsedEnoughToHide") pw.println("pulsing: $pulsing") pw.println("notificationsFullyHidden: $notificationsFullyHidden") pw.println("canShowPulsingHuns: $canShowPulsingHuns") } } No newline at end of file packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java +0 −1 Original line number Diff line number Diff line Loading @@ -458,7 +458,6 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { NotificationWakeUpCoordinator coordinator = new NotificationWakeUpCoordinator( mDumpManager, mock(HeadsUpManagerPhone.class), new StatusBarStateControllerImpl(new UiEventLoggerFake(), mDumpManager, mInteractionJankMonitor), Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinator.kt +11 −38 Original line number Diff line number Diff line Loading @@ -18,10 +18,8 @@ package com.android.systemui.statusbar.notification import android.animation.ObjectAnimator import android.util.FloatProperty import com.android.systemui.Dumpable import com.android.systemui.animation.Interpolators import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.notification.collection.NotificationEntry Loading @@ -34,20 +32,17 @@ import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener import com.android.systemui.statusbar.policy.HeadsUpManager import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener import java.io.PrintWriter import javax.inject.Inject import kotlin.math.min @SysUISingleton class NotificationWakeUpCoordinator @Inject constructor( dumpManager: DumpManager, private val mHeadsUpManager: HeadsUpManager, private val statusBarStateController: StatusBarStateController, private val bypassController: KeyguardBypassController, private val dozeParameters: DozeParameters, private val screenOffAnimationController: ScreenOffAnimationController ) : OnHeadsUpChangedListener, StatusBarStateController.StateListener, PanelExpansionListener, Dumpable { ) : OnHeadsUpChangedListener, StatusBarStateController.StateListener, PanelExpansionListener { private val mNotificationVisibility = object : FloatProperty<NotificationWakeUpCoordinator>( "notificationVisibility") { Loading @@ -65,7 +60,6 @@ class NotificationWakeUpCoordinator @Inject constructor( private var mLinearDozeAmount: Float = 0.0f private var mDozeAmount: Float = 0.0f private var mDozeAmountSource: String = "init" private var mNotificationVisibleAmount = 0.0f private var mNotificationsVisible = false private var mNotificationsVisibleForExpansion = false Loading Loading @@ -148,7 +142,6 @@ class NotificationWakeUpCoordinator @Inject constructor( } init { dumpManager.registerDumpable(this) mHeadsUpManager.addListener(this) statusBarStateController.addCallback(this) addListener(object : WakeUpListener { Loading Loading @@ -255,14 +248,13 @@ class NotificationWakeUpCoordinator @Inject constructor( // Let's notify the scroller that an animation started notifyAnimationStart(mLinearDozeAmount == 1.0f) } setDozeAmount(linear, eased, source = "StatusBar") setDozeAmount(linear, eased) } fun setDozeAmount(linear: Float, eased: Float, source: String) { fun setDozeAmount(linear: Float, eased: Float) { val changed = linear != mLinearDozeAmount mLinearDozeAmount = linear mDozeAmount = eased mDozeAmountSource = source mStackScrollerController.setDozeAmount(mDozeAmount) updateHideAmount() if (changed && linear == 0.0f) { Loading @@ -279,7 +271,7 @@ class NotificationWakeUpCoordinator @Inject constructor( // undefined state, so it's an indication that we should do state cleanup. We override // the doze amount to 0f (not dozing) so that the notifications are no longer hidden. // See: UnlockedScreenOffAnimationController.onFinishedWakingUp() setDozeAmount(0f, 0f, source = "Override: Shade->Shade (lock cancelled by unlock)") setDozeAmount(0f, 0f) } if (overrideDozeAmountIfAnimatingScreenOff(mLinearDozeAmount)) { Loading Loading @@ -319,11 +311,12 @@ class NotificationWakeUpCoordinator @Inject constructor( */ private fun overrideDozeAmountIfBypass(): Boolean { if (bypassController.bypassEnabled) { if (statusBarStateController.state == StatusBarState.KEYGUARD) { setDozeAmount(1f, 1f, source = "Override: bypass (keyguard)") } else { setDozeAmount(0f, 0f, source = "Override: bypass (shade)") var amount = 1.0f if (statusBarStateController.state == StatusBarState.SHADE || statusBarStateController.state == StatusBarState.SHADE_LOCKED) { amount = 0.0f } setDozeAmount(amount, amount) return true } return false Loading @@ -339,7 +332,7 @@ class NotificationWakeUpCoordinator @Inject constructor( */ private fun overrideDozeAmountIfAnimatingScreenOff(linearDozeAmount: Float): Boolean { if (screenOffAnimationController.overrideNotificationsFullyDozingOnKeyguard()) { setDozeAmount(1f, 1f, source = "Override: animating screen off") setDozeAmount(1f, 1f) return true } Loading Loading @@ -433,24 +426,4 @@ class NotificationWakeUpCoordinator @Inject constructor( */ @JvmDefault fun onPulseExpansionChanged(expandingChanged: Boolean) {} } override fun dump(pw: PrintWriter, args: Array<out String>) { pw.println("mLinearDozeAmount: $mLinearDozeAmount") pw.println("mDozeAmount: $mDozeAmount") pw.println("mDozeAmountSource: $mDozeAmountSource") pw.println("mNotificationVisibleAmount: $mNotificationVisibleAmount") pw.println("mNotificationsVisible: $mNotificationsVisible") pw.println("mNotificationsVisibleForExpansion: $mNotificationsVisibleForExpansion") pw.println("mVisibilityAmount: $mVisibilityAmount") pw.println("mLinearVisibilityAmount: $mLinearVisibilityAmount") pw.println("pulseExpanding: $pulseExpanding") pw.println("state: ${StatusBarState.toString(state)}") pw.println("fullyAwake: $fullyAwake") pw.println("wakingUp: $wakingUp") pw.println("willWakeUp: $willWakeUp") pw.println("collapsedEnoughToHide: $collapsedEnoughToHide") pw.println("pulsing: $pulsing") pw.println("notificationsFullyHidden: $notificationsFullyHidden") pw.println("canShowPulsingHuns: $canShowPulsingHuns") } } No newline at end of file
packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java +0 −1 Original line number Diff line number Diff line Loading @@ -458,7 +458,6 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { NotificationWakeUpCoordinator coordinator = new NotificationWakeUpCoordinator( mDumpManager, mock(HeadsUpManagerPhone.class), new StatusBarStateControllerImpl(new UiEventLoggerFake(), mDumpManager, mInteractionJankMonitor), Loading