From d4a6bad8cd4bf5670eb77665acee4c228d432181 Mon Sep 17 00:00:00 2001 From: Chris Li Date: Sun, 19 Sep 2021 10:45:33 +0800 Subject: [PATCH] Do not set TaskFragment surface position if in change transition When it is freezed in change transition, the animation handler should handle the position change. After the animation leash is removed, the TaskFragment position will be updated in #onAnimationLeashLost Bug: 196173550 Test: test with demo app Change-Id: I4048dbe8ae0db0354cd9bf0ef08bab9d897a65b0 --- services/core/java/com/android/server/wm/TaskFragment.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java index 584f7bf5e5b16..a902ca913773a 100644 --- a/services/core/java/com/android/server/wm/TaskFragment.java +++ b/services/core/java/com/android/server/wm/TaskFragment.java @@ -2046,9 +2046,7 @@ class TaskFragment extends WindowContainer { if (shouldStartChangeTransition(mTmpPrevBounds)) { initializeChangeTransition(mTmpPrevBounds); - } - - if (mTaskFragmentOrganizer != null) { + } else if (mTaskFragmentOrganizer != null) { // Update the surface position here instead of in the organizer so that we can make sure // it can be synced with the surface freezer. updateSurfacePosition(getSyncTransaction());