Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 46f3ef41 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Dump NotificationWakeUpCoordinator state to bugreports." into...

Merge "Dump NotificationWakeUpCoordinator state to bugreports." into tm-qpr-dev am: 02e7600f am: 59acfb54

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19501108



Change-Id: Icbfd79ebd71418a3e7495cfb3d14379f98c8b231
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents a1dbb5b0 59acfb54
Loading
Loading
Loading
Loading
+38 −11
Original line number Diff line number Diff line
@@ -18,8 +18,10 @@ 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
@@ -32,17 +34,20 @@ 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 {
) : OnHeadsUpChangedListener, StatusBarStateController.StateListener, PanelExpansionListener,
    Dumpable {

    private val mNotificationVisibility = object : FloatProperty<NotificationWakeUpCoordinator>(
        "notificationVisibility") {
@@ -60,6 +65,7 @@ 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
@@ -142,6 +148,7 @@ class NotificationWakeUpCoordinator @Inject constructor(
        }

    init {
        dumpManager.registerDumpable(this)
        mHeadsUpManager.addListener(this)
        statusBarStateController.addCallback(this)
        addListener(object : WakeUpListener {
@@ -248,13 +255,14 @@ class NotificationWakeUpCoordinator @Inject constructor(
            // Let's notify the scroller that an animation started
            notifyAnimationStart(mLinearDozeAmount == 1.0f)
        }
        setDozeAmount(linear, eased)
        setDozeAmount(linear, eased, source = "StatusBar")
    }

    fun setDozeAmount(linear: Float, eased: Float) {
    fun setDozeAmount(linear: Float, eased: Float, source: String) {
        val changed = linear != mLinearDozeAmount
        mLinearDozeAmount = linear
        mDozeAmount = eased
        mDozeAmountSource = source
        mStackScrollerController.setDozeAmount(mDozeAmount)
        updateHideAmount()
        if (changed && linear == 0.0f) {
@@ -271,7 +279,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)
            setDozeAmount(0f, 0f, source = "Override: Shade->Shade (lock cancelled by unlock)")
        }

        if (overrideDozeAmountIfAnimatingScreenOff(mLinearDozeAmount)) {
@@ -311,12 +319,11 @@ class NotificationWakeUpCoordinator @Inject constructor(
     */
    private fun overrideDozeAmountIfBypass(): Boolean {
        if (bypassController.bypassEnabled) {
            var amount = 1.0f
            if (statusBarStateController.state == StatusBarState.SHADE ||
                statusBarStateController.state == StatusBarState.SHADE_LOCKED) {
                amount = 0.0f
            if (statusBarStateController.state == StatusBarState.KEYGUARD) {
                setDozeAmount(1f, 1f, source = "Override: bypass (keyguard)")
            } else {
                setDozeAmount(0f, 0f, source = "Override: bypass (shade)")
            }
            setDozeAmount(amount, amount)
            return true
        }
        return false
@@ -332,7 +339,7 @@ class NotificationWakeUpCoordinator @Inject constructor(
     */
    private fun overrideDozeAmountIfAnimatingScreenOff(linearDozeAmount: Float): Boolean {
        if (screenOffAnimationController.overrideNotificationsFullyDozingOnKeyguard()) {
            setDozeAmount(1f, 1f)
            setDozeAmount(1f, 1f, source = "Override: animating screen off")
            return true
        }

@@ -426,4 +433,24 @@ 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")
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -462,6 +462,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {

        NotificationWakeUpCoordinator coordinator =
                new NotificationWakeUpCoordinator(
                        mDumpManager,
                        mock(HeadsUpManagerPhone.class),
                        new StatusBarStateControllerImpl(new UiEventLoggerFake(), mDumpManager,
                                mInteractionJankMonitor),