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 Original line Diff line number Diff line
@@ -19,8 +19,10 @@ package com.android.systemui.keyguard.domain.interactor


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


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


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


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


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


+0 −1
Original line number Original line 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.shared.Flags.ambientAod
import com.android.systemui.statusbar.LightRevealScrim
import com.android.systemui.statusbar.LightRevealScrim
import com.android.systemui.wallpapers.ui.viewmodel.WallpaperViewModel
import com.android.systemui.wallpapers.ui.viewmodel.WallpaperViewModel
import com.android.app.tracing.coroutines.launchTraced as launch


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


package com.android.systemui.scene.domain.interactor
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.ContentKey
import com.android.compose.animation.scene.ObservableTransitionState
import com.android.compose.animation.scene.ObservableTransitionState
import com.android.compose.animation.scene.OverlayKey
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.flowOf
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.coroutines.launch


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