summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt25
1 files changed, 25 insertions, 0 deletions
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 71eacdf05cfd..b110ea5c3a92 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.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