Add track for CollapsableQuickSettingsSTL transition
Test: perfetto
Flag: com.android.systemui.qs_ui_refactor_compose_fragment
Bug: 389985793
Change-Id: I1f82ccee9dbf230afa39d3a525e83cf4b9dd24ac
diff --git a/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt b/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
index 71eacdf..b110ea5 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
@@ -21,6 +21,7 @@
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.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 @@
*/
@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 @@
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 @@
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