summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java22
1 files changed, 15 insertions, 7 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
index 774d6aecf16b..91dc05f6ed17 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
@@ -77,6 +77,7 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import android.util.Slog;
+import android.view.Choreographer;
import android.view.IRemoteAnimationFinishedCallback;
import android.view.IRemoteAnimationRunner;
import android.view.RemoteAnimationAdapter;
@@ -1116,6 +1117,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mDividerFadeInAnimator.cancel();
return;
}
+ transaction.setFrameTimelineVsync(Choreographer.getInstance().getVsyncId());
transaction.setAlpha(dividerLeash, (float) animation.getAnimatedValue());
transaction.apply();
});
@@ -1210,17 +1212,23 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
@Override
public void onLayoutPositionChanging(SplitLayout layout) {
- mSyncQueue.runInSync(t -> updateSurfaceBounds(layout, t, false /* applyResizingOffset */));
+ final SurfaceControl.Transaction t = mTransactionPool.acquire();
+ t.setFrameTimelineVsync(Choreographer.getInstance().getVsyncId());
+ updateSurfaceBounds(layout, t, false /* applyResizingOffset */);
+ t.apply();
+ mTransactionPool.release(t);
}
@Override
public void onLayoutSizeChanging(SplitLayout layout) {
- mSyncQueue.runInSync(t -> {
- setResizingSplits(true /* resizing */);
- updateSurfaceBounds(layout, t, true /* applyResizingOffset */);
- mMainStage.onResizing(getMainStageBounds(), t);
- mSideStage.onResizing(getSideStageBounds(), t);
- });
+ final SurfaceControl.Transaction t = mTransactionPool.acquire();
+ t.setFrameTimelineVsync(Choreographer.getInstance().getVsyncId());
+ setResizingSplits(true /* resizing */);
+ updateSurfaceBounds(layout, t, true /* applyResizingOffset */);
+ mMainStage.onResizing(getMainStageBounds(), t);
+ mSideStage.onResizing(getSideStageBounds(), t);
+ t.apply();
+ mTransactionPool.release(t);
}
@Override