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

Commit 7c62474d authored by Peter Kalauskas's avatar Peter Kalauskas Committed by Android (Google) Code Review
Browse files

Merge "Flow tracing for AOD" into main

parents e09cce99 e2ebee21
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -19,8 +19,10 @@ package com.android.systemui.keyguard.domain.interactor

import android.annotation.SuppressLint
import android.util.Log
import com.android.app.tracing.coroutines.flow.filterTraced
import com.android.app.tracing.coroutines.flow.traceAs
import com.android.app.tracing.coroutines.launchTraced as launch
import com.android.app.tracing.coroutines.traceCoroutine
import com.android.compose.animation.scene.ObservableTransitionState
import com.android.compose.animation.scene.SceneKey
import com.android.systemui.Flags.keyguardTransitionForceFinishOnScreenOff
@@ -237,7 +239,7 @@ constructor(
        if (edge.isSceneWildcardEdge()) {
            return simulateTransitionStepsForSceneTransitions(edge)
        }
        return flow.filter { step ->
        return flow.filterTraced("stl-filter") { step ->
            val fromScene =
                when (edge) {
                    is Edge.StateToState -> edge.from?.mapToSceneContainerScene()
@@ -276,7 +278,7 @@ constructor(
                    step.transitionState == TransitionState.CANCELED) &&
                    sceneTransitionPair.value.previousValue.isTransitioning(fromScene, toScene)

            return@filter isTransitioningBetweenLockscreenStates ||
            return@filterTraced isTransitioningBetweenLockscreenStates ||
                isTransitioningBetweenDesiredScenes ||
                terminalStepBelongsToPreviousTransition ||
                belongsToInstantReversedTransition
@@ -365,27 +367,27 @@ constructor(

        coroutineScope {
            collect { value ->
                job?.cancelAndJoin()
                traceCoroutine("cancelAndJoin") { job?.cancelAndJoin() }

                job = launch {
                job = launch("inner") {
                    val innerFlow = transform(value)
                    try {
                        innerFlow.collect { step ->
                            if (step.transitionState == TransitionState.STARTED) {
                                startedEmitted = true
                            }
                            send(step)
                            traceCoroutine("send($step)") { send(step) }
                        }
                    } finally {
                        if (startedEmitted) {
                            send(
                            val step =
                                TransitionStep(
                                    from = UNDEFINED,
                                    to = UNDEFINED,
                                    value = 1f,
                                    transitionState = TransitionState.FINISHED,
                                )
                            )
                            traceCoroutine("send($step)") { send(step) }
                            startedEmitted = false
                        }
                    }
@@ -393,6 +395,7 @@ constructor(
            }
        }
    }
    .traceAs("flatMapLatestWithFinished")

    /**
     * Converts old KTF states to UNDEFINED when [SceneContainerFlag] is enabled.
@@ -548,6 +551,7 @@ constructor(
                }
            }
            .onStart { emit(false) }
            .traceAs("isInTransition-$edge-$edgeWithoutSceneContainer")
            .distinctUntilChanged()
    }

+0 −1
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.shared.Flags.ambientAod
import com.android.systemui.statusbar.LightRevealScrim
import com.android.systemui.wallpapers.ui.viewmodel.WallpaperViewModel
import com.android.app.tracing.coroutines.launchTraced as launch

object LightRevealScrimViewBinder {
    @JvmStatic
+9 −5
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.scene.domain.interactor

import com.android.app.tracing.coroutines.flow.stateInTraced
import com.android.compose.animation.scene.ContentKey
import com.android.compose.animation.scene.ObservableTransitionState
import com.android.compose.animation.scene.OverlayKey
@@ -52,7 +53,6 @@ import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch

@@ -124,7 +124,8 @@ constructor(
    val transitionState: StateFlow<ObservableTransitionState> =
        repository.transitionState
            .onEach { logger.logSceneTransition(it) }
            .stateIn(
            .stateInTraced(
                name = "transitionState",
                scope = applicationScope,
                started = SharingStarted.Eagerly,
                initialValue = repository.transitionState.value,
@@ -145,7 +146,8 @@ constructor(
                    is ObservableTransitionState.Transition -> state.toContent
                }
            }
            .stateIn(
            .stateInTraced(
                name = "transitioningTo",
                scope = applicationScope,
                started = SharingStarted.WhileSubscribed(),
                initialValue = null,
@@ -164,7 +166,8 @@ constructor(
                    is ObservableTransitionState.Idle -> flowOf(false)
                }
            }
            .stateIn(
            .stateInTraced(
                name = "isTransitionUserInputOngoing",
                scope = applicationScope,
                started = SharingStarted.WhileSubscribed(),
                initialValue = false,
@@ -183,7 +186,8 @@ constructor(
                    activeTransitionAnimationCount = activeTransitionAnimationCount,
                )
            }
            .stateIn(
            .stateInTraced(
                name = "isVisible",
                scope = applicationScope,
                started = SharingStarted.WhileSubscribed(),
                initialValue = isVisibleInternal(),