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
This commit is contained in:
Johannes Gallmann
2024-04-02 17:35:45 +02:00
parent 1270b0810b
commit f151bfdd53
@@ -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() {