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.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_ALL;
|
||||||
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
|
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.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.WindowContainer.AnimationFlags.TRANSITION;
|
||||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG;
|
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG;
|
||||||
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DISPLAY;
|
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()) {
|
if (win.isWinVisibleLw() && win.mDisplayContent.okToAnimate()) {
|
||||||
String reason = null;
|
String reason = null;
|
||||||
if (winAnimator.applyAnimationLocked(transit, false)) {
|
if (winAnimator.applyAnimationLocked(transit, false)) {
|
||||||
|
// This is a WMCore-driven window animation.
|
||||||
reason = "applyAnimation";
|
reason = "applyAnimation";
|
||||||
focusMayChange = true;
|
focusMayChange = true;
|
||||||
win.mAnimatingExit = 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";
|
reason = "animating";
|
||||||
win.mAnimatingExit = true;
|
win.mAnimatingExit = true;
|
||||||
} else if (win.mDisplayContent.mWallpaperController.isWallpaperTarget(win)
|
} else if (win.mDisplayContent.mWallpaperController.isWallpaperTarget(win)
|
||||||
|
|||||||
Reference in New Issue
Block a user