[automerge] DO NOT MERGE Fix divider animation from overview screen 2p: 7214fd7e2e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16689762 Change-Id: I134abce4b81e965adc062410717256de9d9a20a3
This commit is contained in:
@@ -365,8 +365,10 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
void startTasksWithLegacyTransition(int mainTaskId, @Nullable Bundle mainOptions,
|
void startTasksWithLegacyTransition(int mainTaskId, @Nullable Bundle mainOptions,
|
||||||
int sideTaskId, @Nullable Bundle sideOptions, @SplitPosition int sidePosition,
|
int sideTaskId, @Nullable Bundle sideOptions, @SplitPosition int sidePosition,
|
||||||
float splitRatio, RemoteAnimationAdapter adapter) {
|
float splitRatio, RemoteAnimationAdapter adapter) {
|
||||||
|
// Ensure divider is invisible before transition.
|
||||||
|
setDividerVisibility(false /* visible */);
|
||||||
// Init divider first to make divider leash for remote animation target.
|
// Init divider first to make divider leash for remote animation target.
|
||||||
setDividerVisibility(true /* visible */);
|
mSplitLayout.init();
|
||||||
// Set false to avoid record new bounds with old task still on top;
|
// Set false to avoid record new bounds with old task still on top;
|
||||||
mShouldUpdateRecents = false;
|
mShouldUpdateRecents = false;
|
||||||
final WindowContainerTransaction wct = new WindowContainerTransaction();
|
final WindowContainerTransaction wct = new WindowContainerTransaction();
|
||||||
@@ -396,6 +398,7 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
public void onAnimationFinished() throws RemoteException {
|
public void onAnimationFinished() throws RemoteException {
|
||||||
mIsDividerRemoteAnimating = false;
|
mIsDividerRemoteAnimating = false;
|
||||||
mShouldUpdateRecents = true;
|
mShouldUpdateRecents = true;
|
||||||
|
setDividerVisibility(true /* visible */);
|
||||||
mSyncQueue.queue(evictWct);
|
mSyncQueue.queue(evictWct);
|
||||||
mSyncQueue.runInSync(t -> applyDividerVisibility(t));
|
mSyncQueue.runInSync(t -> applyDividerVisibility(t));
|
||||||
finishedCallback.onAnimationFinished();
|
finishedCallback.onAnimationFinished();
|
||||||
@@ -420,6 +423,7 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
|||||||
public void onAnimationCancelled() {
|
public void onAnimationCancelled() {
|
||||||
mIsDividerRemoteAnimating = false;
|
mIsDividerRemoteAnimating = false;
|
||||||
mShouldUpdateRecents = true;
|
mShouldUpdateRecents = true;
|
||||||
|
setDividerVisibility(true /* visible */);
|
||||||
mSyncQueue.queue(evictWct);
|
mSyncQueue.queue(evictWct);
|
||||||
mSyncQueue.runInSync(t -> applyDividerVisibility(t));
|
mSyncQueue.runInSync(t -> applyDividerVisibility(t));
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user