Merge "Reduce jittering while dragging divider bar" into tm-dev am: 19885f1c74
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18867591 Change-Id: Id4286d9ba135bd2626379a7587600d51d2e1964d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -76,6 +76,7 @@ import android.os.IBinder;
|
|||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
|
import android.view.Choreographer;
|
||||||
import android.view.IRemoteAnimationFinishedCallback;
|
import android.view.IRemoteAnimationFinishedCallback;
|
||||||
import android.view.IRemoteAnimationRunner;
|
import android.view.IRemoteAnimationRunner;
|
||||||
import android.view.RemoteAnimationAdapter;
|
import android.view.RemoteAnimationAdapter;
|
||||||
@@ -1124,6 +1125,7 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
mDividerFadeInAnimator.cancel();
|
mDividerFadeInAnimator.cancel();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
transaction.setFrameTimelineVsync(Choreographer.getInstance().getVsyncId());
|
||||||
transaction.setAlpha(dividerLeash, (float) animation.getAnimatedValue());
|
transaction.setAlpha(dividerLeash, (float) animation.getAnimatedValue());
|
||||||
transaction.apply();
|
transaction.apply();
|
||||||
});
|
});
|
||||||
@@ -1216,17 +1218,23 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLayoutPositionChanging(SplitLayout layout) {
|
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
|
@Override
|
||||||
public void onLayoutSizeChanging(SplitLayout layout) {
|
public void onLayoutSizeChanging(SplitLayout layout) {
|
||||||
mSyncQueue.runInSync(t -> {
|
final SurfaceControl.Transaction t = mTransactionPool.acquire();
|
||||||
setResizingSplits(true /* resizing */);
|
t.setFrameTimelineVsync(Choreographer.getInstance().getVsyncId());
|
||||||
updateSurfaceBounds(layout, t, true /* applyResizingOffset */);
|
setResizingSplits(true /* resizing */);
|
||||||
mMainStage.onResizing(getMainStageBounds(), t);
|
updateSurfaceBounds(layout, t, true /* applyResizingOffset */);
|
||||||
mSideStage.onResizing(getSideStageBounds(), t);
|
mMainStage.onResizing(getMainStageBounds(), t);
|
||||||
});
|
mSideStage.onResizing(getSideStageBounds(), t);
|
||||||
|
t.apply();
|
||||||
|
mTransactionPool.release(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user