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

Commit 4c004e1f authored by Nicolo' Mazzucato's avatar Nicolo' Mazzucato
Browse files

Group shade related instant event under a track group

This makes shade instant event appear under an "shade" top level group in perfetto when opening a process specific workflow (see aosp/3435719)

Bug: 337016334
Test: perfetto trace
Flag: NONE logging change
Change-Id: I65abed1caf06ac64e3243aed7c9b34d17fd3d3b3
parent 532d71e8
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import com.android.systemui.common.ui.view.ChoreographerUtils
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.scene.ui.view.WindowRootView
import com.android.systemui.shade.ShadeDisplayChangeLatencyTracker.Companion.TIMEOUT
import com.android.systemui.shade.data.repository.ShadeDisplaysRepository
import com.android.systemui.util.kotlin.getOrNull
import java.util.Optional
@@ -33,7 +32,6 @@ import javax.inject.Inject
import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.filter
@@ -135,7 +133,7 @@ constructor(

    private companion object {
        const val TAG = "ShadeDisplayLatency"
        val t = TrackTracer(trackName = TAG)
        val t = TrackTracer(trackName = TAG, trackGroup = "shade")
        val TIMEOUT = 3.seconds
        const val SHADE_MOVE_ACTION = LatencyTracker.ACTION_SHADE_WINDOW_DISPLAY_CHANGE
    }
+9 −7
Original line number Diff line number Diff line
@@ -18,13 +18,16 @@ package com.android.systemui.shade

import android.annotation.IntDef
import android.os.Trace
import android.os.Trace.TRACE_TAG_APP as TRACE_TAG
import android.util.Log
import androidx.annotation.FloatRange
import com.android.app.tracing.TraceStateLogger
import com.android.app.tracing.TrackGroupUtils.trackGroup
import com.android.app.tracing.coroutines.TrackTracer
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.util.Compile
import java.util.concurrent.CopyOnWriteArrayList
import javax.inject.Inject
import android.os.Trace.TRACE_TAG_APP as TRACE_TAG

/**
 * A class responsible for managing the notification panel's current state.
@@ -38,6 +41,8 @@ class ShadeExpansionStateManager @Inject constructor() {
    private val expansionListeners = CopyOnWriteArrayList<ShadeExpansionListener>()
    private val stateListeners = CopyOnWriteArrayList<ShadeStateListener>()

    private val stateLogger = TraceStateLogger(trackGroup("shade", TRACK_NAME))

    @PanelState private var state: Int = STATE_CLOSED
    @FloatRange(from = 0.0, to = 1.0) private var fraction: Float = 0f
    private var expanded: Boolean = false
@@ -75,7 +80,7 @@ class ShadeExpansionStateManager @Inject constructor() {
    fun onPanelExpansionChanged(
        @FloatRange(from = 0.0, to = 1.0) fraction: Float,
        expanded: Boolean,
        tracking: Boolean
        tracking: Boolean,
    ) {
        require(!fraction.isNaN()) { "fraction cannot be NaN" }
        val oldState = state
@@ -113,11 +118,8 @@ class ShadeExpansionStateManager @Inject constructor() {
        )

        if (Trace.isTagEnabled(TRACE_TAG)) {
            Trace.traceCounter(TRACE_TAG, "panel_expansion", (fraction * 100).toInt())
            if (state != oldState) {
                Trace.asyncTraceForTrackEnd(TRACE_TAG, TRACK_NAME, 0)
                Trace.asyncTraceForTrackBegin(TRACE_TAG, TRACK_NAME, state.panelStateToString(), 0)
            }
            TrackTracer.instantForGroup("shade", "panel_expansion", fraction)
            stateLogger.log(state.panelStateToString())
        }

        val expansionChangeEvent = ShadeExpansionChangeEvent(fraction, expanded, tracking)
+1 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ import com.android.app.tracing.coroutines.TrackTracer
 * them across various threads' logs.
 */
object ShadeTraceLogger {
    private val t = TrackTracer(trackName = "ShadeTraceLogger")
    private val t = TrackTracer(trackName = "ShadeTraceLogger", trackGroup = "shade")

    @JvmStatic
    fun logOnMovedToDisplay(displayId: Int, config: Configuration) {
+3 −3
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.animation.ValueAnimator
import android.content.Context
import android.content.res.Configuration
import android.os.SystemClock
import android.os.Trace
import android.util.IndentingPrintWriter
import android.util.Log
import android.util.MathUtils
@@ -33,6 +32,7 @@ import androidx.dynamicanimation.animation.FloatPropertyCompat
import androidx.dynamicanimation.animation.SpringAnimation
import androidx.dynamicanimation.animation.SpringForce
import com.android.app.animation.Interpolators
import com.android.app.tracing.coroutines.TrackTracer
import com.android.systemui.Dumpable
import com.android.systemui.animation.ShadeInterpolation
import com.android.systemui.dagger.SysUISingleton
@@ -263,7 +263,7 @@ constructor(
            updateScheduled = false
            val (blur, zoomOutFromShadeRadius) = computeBlurAndZoomOut()
            val opaque = shouldBlurBeOpaque
            Trace.traceCounter(Trace.TRACE_TAG_APP, "shade_blur_radius", blur)
            TrackTracer.instantForGroup("shade", "shade_blur_radius", blur)
            blurUtils.applyBlur(root.viewRootImpl, blur, opaque)
            onBlurApplied(blur, zoomOutFromShadeRadius)
        }
@@ -384,7 +384,7 @@ constructor(
            windowRootViewBlurInteractor.onBlurAppliedEvent.collect { appliedBlurRadius ->
                if (updateScheduled) {
                    // Process the blur applied event only if we scheduled the update
                    Trace.traceCounter(Trace.TRACE_TAG_APP, "shade_blur_radius", appliedBlurRadius)
                    TrackTracer.instantForGroup("shade", "shade_blur_radius", appliedBlurRadius)
                    updateScheduled = false
                    onBlurApplied(appliedBlurRadius, zoomOutCalculatedFromShadeRadius)
                } else {