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

Commit fc85ce03 authored by Evan Rosky's avatar Evan Rosky Committed by Android (Google) Code Review
Browse files

Merge "Set early-wake during transition animation" into tm-qpr-dev

parents 5b7da895 49359149
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.os.SystemProperties;
import android.util.ArrayMap;
import android.util.Slog;
import android.util.proto.ProtoOutputStream;
import android.view.SurfaceControl;
import android.view.WindowManager;
import android.window.ITransitionMetricsReporter;
import android.window.ITransitionPlayer;
@@ -116,6 +117,8 @@ class TransitionController {
     */
    boolean mBuildingFinishLayers = false;

    private final SurfaceControl.Transaction mWakeT = new SurfaceControl.Transaction();

    TransitionController(ActivityTaskManagerService atm,
            TaskSnapshotController taskSnapshotController,
            TransitionTracer transitionTracer) {
@@ -619,8 +622,16 @@ class TransitionController {
    private void updateRunningRemoteAnimation(Transition transition, boolean isPlaying) {
        if (mTransitionPlayerProc == null) return;
        if (isPlaying) {
            mWakeT.setEarlyWakeupStart();
            mWakeT.apply();
            // Usually transitions put quite a load onto the system already (with all the things
            // happening in app), so pause task snapshot persisting to not increase the load.
            mAtm.mWindowManager.mTaskSnapshotController.setPersisterPaused(true);
            mTransitionPlayerProc.setRunningRemoteAnimation(true);
        } else if (mPlayingTransitions.isEmpty()) {
            mWakeT.setEarlyWakeupEnd();
            mWakeT.apply();
            mAtm.mWindowManager.mTaskSnapshotController.setPersisterPaused(false);
            mTransitionPlayerProc.setRunningRemoteAnimation(false);
            mRemotePlayer.clear();
            return;