Merge "Don't assume exiting non-app windows are animating in transition" into tm-qpr-dev am: 1341885225
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19973324 Change-Id: I0259948584b6acfb15b2078325ef2f12145dd1fd Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -124,7 +124,10 @@ import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_BACKGROUND_
|
||||
import static com.android.server.wm.RootWindowContainer.MATCH_ATTACHED_TASK_OR_RECENT_TASKS;
|
||||
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_ALL;
|
||||
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
|
||||
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_RECENTS;
|
||||
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
|
||||
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DISPLAY;
|
||||
@@ -2633,10 +2636,22 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
if (win.isWinVisibleLw() && win.mDisplayContent.okToAnimate()) {
|
||||
String reason = null;
|
||||
if (winAnimator.applyAnimationLocked(transit, false)) {
|
||||
// This is a WMCore-driven window animation.
|
||||
reason = "applyAnimation";
|
||||
focusMayChange = true;
|
||||
win.mAnimatingExit = true;
|
||||
} else if (win.isExitAnimationRunningSelfOrParent()) {
|
||||
} else if (
|
||||
// This is already animating via a WMCore-driven window animation
|
||||
win.isSelfAnimating(0 /* flags */, ANIMATION_TYPE_WINDOW_ANIMATION)
|
||||
// Or already animating as part of a legacy app-transition
|
||||
|| win.isAnimating(PARENTS | TRANSITION,
|
||||
ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_RECENTS)
|
||||
// Or already animating as part of a shell-transition.
|
||||
|| (win.inTransition()
|
||||
// Filter out non-app windows since transitions don't animate those
|
||||
// (but may still "wait" on them for readiness)
|
||||
&& (win.mActivityRecord != null || win.mIsWallpaper))) {
|
||||
// TODO(b/247005789): set mAnimatingExit somewhere in shell-transitions setup.
|
||||
reason = "animating";
|
||||
win.mAnimatingExit = true;
|
||||
} else if (win.mDisplayContent.mWallpaperController.isWallpaperTarget(win)
|
||||
|
||||
Reference in New Issue
Block a user