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

Commit f151bfdd authored by Johannes Gallmann's avatar Johannes Gallmann
Browse files

Add vsync id to predictive back transactions

Bug: 331808052
Flag: ACONFIG com.android.window.flags.predictive_back_system_anims TRUNKFOOD
Test: Manual, i.e. recorded perfetto trace and verified that missedFrames metrics showed up
Change-Id: I3dc5900ddedcb70467de7667f1555862dee5b45d
parent 1270b081
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.os.Handler;
import android.os.RemoteException;
import android.util.Log;
import android.util.Pair;
import android.view.Choreographer;
import android.view.IRemoteAnimationFinishedCallback;
import android.view.IRemoteAnimationRunner;
import android.view.RemoteAnimationTarget;
@@ -302,7 +303,7 @@ public class LauncherBackAnimationController {
        if (mScrimLayer == null) {
            addScrimLayer();
        }
        mTransaction.apply();
        applyTransaction();
    }

    private void setLauncherTargetViewVisible(boolean isVisible) {
@@ -342,7 +343,8 @@ public class LauncherBackAnimationController {
            return;
        }
        if (mScrimLayer.isValid()) {
            mTransaction.remove(mScrimLayer).apply();
            mTransaction.remove(mScrimLayer);
            applyTransaction();
        }
        mScrimLayer = null;
    }
@@ -396,7 +398,11 @@ public class LauncherBackAnimationController {
            mTransaction.setWindowCrop(mBackTarget.leash, mStartRect);
            mTransaction.setCornerRadius(mBackTarget.leash, cornerRadius);
        }
        applyTransaction();
    }

    private void applyTransaction() {
        mTransaction.setFrameTimelineVsync(Choreographer.getInstance().getVsyncId());
        mTransaction.apply();
    }

@@ -511,7 +517,7 @@ public class LauncherBackAnimationController {
            float value = (Float) animation.getAnimatedValue();
            if (mScrimLayer != null && mScrimLayer.isValid()) {
                mTransaction.setAlpha(mScrimLayer, value * mScrimAlpha);
                mTransaction.apply();
                applyTransaction();
            }
        });
        mScrimAlphaAnimator.addListener(new AnimatorListenerAdapter() {