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

Commit 02fa5860 authored by Fabián Kozynski's avatar Fabián Kozynski
Browse files

Add track for CollapsableQuickSettingsSTL transition

Test: perfetto
Flag: com.android.systemui.qs_ui_refactor_compose_fragment
Bug: 389985793

Change-Id: I1f82ccee9dbf230afa39d3a525e83cf4b9dd24ac
parent e2820723
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.Context
import android.graphics.PointF
import android.graphics.Rect
import android.os.Bundle
import android.os.Trace
import android.util.IndentingPrintWriter
import android.view.LayoutInflater
import android.view.MotionEvent
@@ -112,6 +113,7 @@ import com.android.systemui.plugins.qs.QS
import com.android.systemui.plugins.qs.QSContainerController
import com.android.systemui.qs.composefragment.SceneKeys.QuickQuickSettings
import com.android.systemui.qs.composefragment.SceneKeys.QuickSettings
import com.android.systemui.qs.composefragment.SceneKeys.debugName
import com.android.systemui.qs.composefragment.SceneKeys.toIdleSceneKey
import com.android.systemui.qs.composefragment.ui.GridAnchor
import com.android.systemui.qs.composefragment.ui.NotificationScrimClipParams
@@ -286,6 +288,12 @@ constructor(
     */
    @Composable
    private fun CollapsableQuickSettingsSTL() {
        val nextCookie = remember {
            object {
                var value = 0
            }
        }
        val transitionToCookie = remember { mutableMapOf<TransitionState.Transition, Int>() }
        val sceneState =
            rememberMutableSceneTransitionLayoutState(
                initialScene = remember { viewModel.expansionState.toIdleSceneKey() },
@@ -299,6 +307,20 @@ constructor(
                            toEditMode()
                        }
                    },
                onTransitionStart = { transition ->
                    val cookie = nextCookie.value++
                    transitionToCookie[transition] = cookie
                    Trace.beginAsyncSection(
                        "CollapsableQuickSettingsSTL ${transition.debugName}",
                        cookie,
                    )
                },
                onTransitionEnd = { transition ->
                    Trace.endAsyncSection(
                        "CollapsableQuickSettingsSTL ${transition.debugName}",
                        transitionToCookie.remove(transition) ?: -1,
                    )
                },
            )

        LaunchedEffect(Unit) {
@@ -855,6 +877,9 @@ object SceneKeys {
    val QuickSettings = SceneKey("QuickSettingsScene")
    val EditMode = SceneKey("EditModeScene")

    val TransitionState.Transition.debugName: String
        get() = "[from=${fromContent.debugName}, to=${toContent.debugName}]"

    fun QSFragmentComposeViewModel.QSExpansionState.toIdleSceneKey(): SceneKey {
        return when {
            progress < 0.5f -> QuickQuickSettings