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

Commit da94cf36 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Trace fold/unfold animation with atrace"

parents 0bd7594c f2b97883
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.unfold.util.ScaleAwareTransitionProgressProvider
import com.android.systemui.unfold.updates.DeviceFoldStateProvider
import com.android.systemui.unfold.updates.hinge.EmptyHingeAngleProvider
import com.android.systemui.unfold.updates.hinge.HingeSensorAngleProvider
import com.android.systemui.unfold.util.ATraceLoggerTransitionProgressListener
import java.lang.IllegalStateException
import java.util.concurrent.Executor

@@ -46,7 +47,8 @@ fun createUnfoldTransitionProgressProvider(
    deviceStateManager: DeviceStateManager,
    sensorManager: SensorManager,
    mainHandler: Handler,
    mainExecutor: Executor
    mainExecutor: Executor,
    tracingTagPrefix: String
): UnfoldTransitionProgressProvider {

    if (!config.isEnabled) {
@@ -78,7 +80,10 @@ fun createUnfoldTransitionProgressProvider(
    return ScaleAwareTransitionProgressProvider(
        unfoldTransitionProgressProvider,
        context.contentResolver
    )
    ).apply {
        // Always present callback that logs animation beginning and end.
        addCallback(ATraceLoggerTransitionProgressListener(tracingTagPrefix))
    }
}

fun createConfig(context: Context): UnfoldTransitionConfig =
+1 −6
Original line number Diff line number Diff line
@@ -32,12 +32,7 @@ import com.android.systemui.unfold.updates.FoldStateProvider
import com.android.systemui.unfold.updates.FoldStateProvider.FoldUpdate
import com.android.systemui.unfold.updates.FoldStateProvider.FoldUpdatesListener

/**
 * Maps fold updates to unfold transition progress using DynamicAnimation.
 *
 * TODO(b/193793338) Current limitations:
 *  - doesn't handle postures
 */
/** Maps fold updates to unfold transition progress using DynamicAnimation. */
internal class PhysicsBasedUnfoldTransitionProgressProvider(
    private val foldStateProvider: FoldStateProvider
) :
+29 −0
Original line number Diff line number Diff line
package com.android.systemui.unfold.util

import android.os.Trace
import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener

/**
 * Listener that logs start and end of the fold-unfold transition.
 *
 * [tracePrefix] arg helps in differentiating those. Currently, this is expected to be logged twice
 * for each fold/unfold: in (1) systemui and (2) launcher process.
 */
class ATraceLoggerTransitionProgressListener(tracePrefix: String) : TransitionProgressListener {

    private val traceName = "$tracePrefix#$UNFOLD_TRANSITION_TRACE_NAME"

    override fun onTransitionStarted() {
        Trace.beginAsyncSection(traceName, /* cookie= */ 0)
    }

    override fun onTransitionFinished() {
        Trace.endAsyncSection(traceName, /* cookie= */ 0)
    }

    override fun onTransitionProgress(progress: Float) {
        Trace.setCounter(traceName, (progress * 100).toLong())
    }
}

private const val UNFOLD_TRANSITION_TRACE_NAME = "FoldUnfoldTransitionInProgress"
+2 −1
Original line number Diff line number Diff line
@@ -58,7 +58,8 @@ class UnfoldTransitionModule {
                    deviceStateManager,
                    sensorManager,
                    handler,
                    executor
                    executor,
                    tracingTagPrefix = "systemui"
                )
            )
        } else {