Loading services/core/java/com/android/server/wm/ActivityRecord.java +4 −10 Original line number Diff line number Diff line Loading @@ -223,7 +223,6 @@ import static com.android.server.wm.TaskPersister.DEBUG; import static com.android.server.wm.TaskPersister.IMAGE_EXTENSION; 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.WindowContainerChildProto.ACTIVITY; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_CONFIGURATION; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_STARTING_WINDOW_VERBOSE; Loading Loading @@ -4348,8 +4347,7 @@ final class ActivityRecord extends WindowToken { ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "Removing app %s delayed=%b animation=%s animating=%b", this, delayed, getAnimation(), isAnimating(TRANSITION | PARENTS, ANIMATION_TYPE_APP_TRANSITION)); getAnimation(), inTransition()); ProtoLog.v(WM_DEBUG_ADD_REMOVE, "removeAppToken: %s" + " delayed=%b Callers=%s", this, delayed, Debug.getCallers(4)); Loading Loading @@ -6585,16 +6583,12 @@ final class ActivityRecord extends WindowToken { if (!allDrawn && w.mightAffectAllDrawn()) { if (DEBUG_VISIBILITY || WM_DEBUG_ORIENTATION.isLogToLogcat()) { final boolean isAnimationSet = isAnimating(TRANSITION | PARENTS, ANIMATION_TYPE_APP_TRANSITION); Slog.v(TAG, "Eval win " + w + ": isDrawn=" + w.isDrawn() + ", isAnimationSet=" + isAnimationSet); Slog.v(TAG, "Eval win " + w + ": isDrawn=" + w.isDrawn()); if (!w.isDrawn()) { Slog.v(TAG, "Not displayed: s=" + winAnimator.mSurfaceControl + " pv=" + w.isVisibleByPolicy() + " mDrawState=" + winAnimator.drawStateToString() + " ph=" + w.isParentWindowHidden() + " th=" + mVisibleRequested + " a=" + isAnimationSet); + " ph=" + w.isParentWindowHidden() + " th=" + mVisibleRequested); } } Loading Loading @@ -9131,7 +9125,7 @@ final class ActivityRecord extends WindowToken { writeNameToProto(proto, NAME); super.dumpDebug(proto, WINDOW_TOKEN, logLevel); proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing); proto.write(IS_ANIMATING, isAnimating(TRANSITION | PARENTS | CHILDREN, proto.write(IS_ANIMATING, isAnimating(PARENTS | CHILDREN, ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_WINDOW_ANIMATION)); proto.write(FILLS_PARENT, fillsParent()); proto.write(APP_STOPPED, mAppStopped); Loading services/core/java/com/android/server/wm/DisplayContent.java +1 −6 Original line number Diff line number Diff line Loading @@ -130,8 +130,6 @@ import static com.android.server.wm.EventLogTags.IMF_REMOVE_IME_SCREENSHOT; import static com.android.server.wm.EventLogTags.IMF_SHOW_IME_SCREENSHOT; import static com.android.server.wm.EventLogTags.IMF_UPDATE_IME_PARENT; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION; import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS; import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; import static com.android.server.wm.WindowContainerChildProto.DISPLAY_CONTENT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DISPLAY; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT_METHOD; Loading Loading @@ -3397,10 +3395,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp } private boolean shouldDeferRemoval() { return isAnimating(TRANSITION | PARENTS) // isAnimating is a legacy transition query and will be removed, so also add a // check for whether this is in a shell-transition when not using legacy. || mTransitionController.isTransitionOnDisplay(this); return mTransitionController.isTransitionOnDisplay(this); } @Override Loading services/core/java/com/android/server/wm/Task.java +2 −2 Original line number Diff line number Diff line Loading @@ -107,7 +107,6 @@ import static com.android.server.wm.TaskProto.SURFACE_WIDTH; import static com.android.server.wm.TaskProto.TASK_FRAGMENT; 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.WindowContainerChildProto.TASK; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ROOT_TASK; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_TASK_MOVEMENT; Loading Loading @@ -3329,7 +3328,8 @@ class Task extends TaskFragment { // have enough information until we finish shell transitions. // In the mean time we do an easy fix here. final boolean visible = isVisible(); final boolean show = visible || isAnimating(TRANSITION | PARENTS | CHILDREN); final boolean show = visible || isAnimating(PARENTS | CHILDREN, SurfaceAnimator.ANIMATION_TYPE_ALL); if (mSurfaceControl != null) { if (show != mLastSurfaceShowing) { t.setVisibility(mSurfaceControl, show); Loading services/core/java/com/android/server/wm/WallpaperController.java +0 −8 Original line number Diff line number Diff line Loading @@ -24,8 +24,6 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; 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_SCREENSHOT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; Loading Loading @@ -169,12 +167,6 @@ class WallpaperController { if (DEBUG_WALLPAPER) Slog.v(TAG, "Found wallpaper target: " + w); mFindResults.setWallpaperTarget(w); mFindResults.setIsWallpaperTargetForLetterbox(w.hasWallpaperForLetterboxBackground()); if (w == mWallpaperTarget && w.isAnimating(TRANSITION | PARENTS)) { // The current wallpaper target is animating, so we'll look behind it for // another possible target and figure out what is going on later. if (DEBUG_WALLPAPER) Slog.v(TAG, "Win " + w + ": token animating, looking behind."); } // While the keyguard is going away, both notification shade and a normal activity such // as a launcher can satisfy criteria for a wallpaper target. In this case, we should // chose the normal activity, otherwise wallpaper becomes invisible when a new animation Loading services/core/java/com/android/server/wm/WindowContainer.java +5 −30 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ import static com.android.server.wm.IdentifierProto.USER_ID; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_ALL; 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.WindowContainerChildProto.WINDOW_CONTAINER; import static com.android.server.wm.WindowContainerProto.CONFIGURATION_CONTAINER; import static com.android.server.wm.WindowContainerProto.IDENTIFIER; Loading Loading @@ -226,14 +225,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< /** Interface for {@link #isAnimating} to check which cases for the container is animating. */ public interface AnimationFlags { /** * A bit flag indicates that {@link #isAnimating} should also return {@code true} * even though the container is not yet animating, but the window container or its * relatives as specified by PARENTS or CHILDREN are part of an {@link AppTransition} * that is pending so an animation starts soon. */ int TRANSITION = 1; /** * A bit flag indicates that {@link #isAnimating} should also check if one of the * ancestors of the container are animating in addition to the container itself. Loading Loading @@ -1234,9 +1225,8 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< * * Note that you can give a combination of bitmask flags to specify targets and condition for * checking animating status. * e.g. {@code isAnimating(TRANSITION | PARENT)} returns {@code true} if either this * container itself or one of its parents is running an animation or waiting for an app * transition. * e.g. {@code isAnimating(PARENT)} returns {@code true} if either thiscontainer itself or one * of its parents is running an animation. * * Note that TRANSITION propagates to parents and children as well. * Loading @@ -1245,7 +1235,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< * @param typesToCheck The combination of bitmask {@link AnimationType} to compare when * determining if animating. * * @see AnimationFlags#TRANSITION * @see AnimationFlags#PARENTS * @see AnimationFlags#CHILDREN */ Loading @@ -1253,20 +1242,11 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< return getAnimatingContainer(flags, typesToCheck) != null; } /** * @deprecated Use {@link #isAnimating(int, int)} * TODO (b/152333373): Migrate calls to use isAnimating with specified animation type */ @Deprecated final boolean isAnimating(int flags) { return isAnimating(flags, ANIMATION_TYPE_ALL); } /** * @return Whether our own container running an animation at the moment. */ final boolean isAnimating() { return isAnimating(0 /* self only */); return isAnimating(0 /* self only */, ANIMATION_TYPE_ALL); } /** Returns {@code true} if itself or its parent container of the window is in transition. */ Loading @@ -1275,9 +1255,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< } boolean isExitAnimationRunningSelfOrChild() { if (!mTransitionController.isShellTransitionsEnabled()) { return isAnimating(TRANSITION | CHILDREN, WindowState.EXIT_ANIMATING_TYPES); } // Only check leaf containers because inTransition() includes parent. if (mChildren.isEmpty() && inTransition()) { return true; Loading Loading @@ -3136,9 +3113,8 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< * * Note that you can give a combination of bitmask flags to specify targets and condition for * checking animating status. * e.g. {@code isAnimating(TRANSITION | PARENT)} returns {@code true} if either this * container itself or one of its parents is running an animation or waiting for an app * transition. * e.g. {@code isAnimating(PARENT)} returns {@code true} if either this container itself or one * of its parents is running an animation. * * Note that TRANSITION propagates to parents and children as well. * Loading @@ -3147,7 +3123,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< * @param typesToCheck The combination of bitmask {@link AnimationType} to compare when * determining if animating. * * @see AnimationFlags#TRANSITION * @see AnimationFlags#PARENTS * @see AnimationFlags#CHILDREN */ Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +4 −10 Original line number Diff line number Diff line Loading @@ -223,7 +223,6 @@ import static com.android.server.wm.TaskPersister.DEBUG; import static com.android.server.wm.TaskPersister.IMAGE_EXTENSION; 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.WindowContainerChildProto.ACTIVITY; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_CONFIGURATION; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_STARTING_WINDOW_VERBOSE; Loading Loading @@ -4348,8 +4347,7 @@ final class ActivityRecord extends WindowToken { ProtoLog.v(WM_DEBUG_APP_TRANSITIONS, "Removing app %s delayed=%b animation=%s animating=%b", this, delayed, getAnimation(), isAnimating(TRANSITION | PARENTS, ANIMATION_TYPE_APP_TRANSITION)); getAnimation(), inTransition()); ProtoLog.v(WM_DEBUG_ADD_REMOVE, "removeAppToken: %s" + " delayed=%b Callers=%s", this, delayed, Debug.getCallers(4)); Loading Loading @@ -6585,16 +6583,12 @@ final class ActivityRecord extends WindowToken { if (!allDrawn && w.mightAffectAllDrawn()) { if (DEBUG_VISIBILITY || WM_DEBUG_ORIENTATION.isLogToLogcat()) { final boolean isAnimationSet = isAnimating(TRANSITION | PARENTS, ANIMATION_TYPE_APP_TRANSITION); Slog.v(TAG, "Eval win " + w + ": isDrawn=" + w.isDrawn() + ", isAnimationSet=" + isAnimationSet); Slog.v(TAG, "Eval win " + w + ": isDrawn=" + w.isDrawn()); if (!w.isDrawn()) { Slog.v(TAG, "Not displayed: s=" + winAnimator.mSurfaceControl + " pv=" + w.isVisibleByPolicy() + " mDrawState=" + winAnimator.drawStateToString() + " ph=" + w.isParentWindowHidden() + " th=" + mVisibleRequested + " a=" + isAnimationSet); + " ph=" + w.isParentWindowHidden() + " th=" + mVisibleRequested); } } Loading Loading @@ -9131,7 +9125,7 @@ final class ActivityRecord extends WindowToken { writeNameToProto(proto, NAME); super.dumpDebug(proto, WINDOW_TOKEN, logLevel); proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing); proto.write(IS_ANIMATING, isAnimating(TRANSITION | PARENTS | CHILDREN, proto.write(IS_ANIMATING, isAnimating(PARENTS | CHILDREN, ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_WINDOW_ANIMATION)); proto.write(FILLS_PARENT, fillsParent()); proto.write(APP_STOPPED, mAppStopped); Loading
services/core/java/com/android/server/wm/DisplayContent.java +1 −6 Original line number Diff line number Diff line Loading @@ -130,8 +130,6 @@ import static com.android.server.wm.EventLogTags.IMF_REMOVE_IME_SCREENSHOT; import static com.android.server.wm.EventLogTags.IMF_SHOW_IME_SCREENSHOT; import static com.android.server.wm.EventLogTags.IMF_UPDATE_IME_PARENT; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION; import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS; import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; import static com.android.server.wm.WindowContainerChildProto.DISPLAY_CONTENT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DISPLAY; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT_METHOD; Loading Loading @@ -3397,10 +3395,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp } private boolean shouldDeferRemoval() { return isAnimating(TRANSITION | PARENTS) // isAnimating is a legacy transition query and will be removed, so also add a // check for whether this is in a shell-transition when not using legacy. || mTransitionController.isTransitionOnDisplay(this); return mTransitionController.isTransitionOnDisplay(this); } @Override Loading
services/core/java/com/android/server/wm/Task.java +2 −2 Original line number Diff line number Diff line Loading @@ -107,7 +107,6 @@ import static com.android.server.wm.TaskProto.SURFACE_WIDTH; import static com.android.server.wm.TaskProto.TASK_FRAGMENT; 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.WindowContainerChildProto.TASK; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ROOT_TASK; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_TASK_MOVEMENT; Loading Loading @@ -3329,7 +3328,8 @@ class Task extends TaskFragment { // have enough information until we finish shell transitions. // In the mean time we do an easy fix here. final boolean visible = isVisible(); final boolean show = visible || isAnimating(TRANSITION | PARENTS | CHILDREN); final boolean show = visible || isAnimating(PARENTS | CHILDREN, SurfaceAnimator.ANIMATION_TYPE_ALL); if (mSurfaceControl != null) { if (show != mLastSurfaceShowing) { t.setVisibility(mSurfaceControl, show); Loading
services/core/java/com/android/server/wm/WallpaperController.java +0 −8 Original line number Diff line number Diff line Loading @@ -24,8 +24,6 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; 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_SCREENSHOT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; Loading Loading @@ -169,12 +167,6 @@ class WallpaperController { if (DEBUG_WALLPAPER) Slog.v(TAG, "Found wallpaper target: " + w); mFindResults.setWallpaperTarget(w); mFindResults.setIsWallpaperTargetForLetterbox(w.hasWallpaperForLetterboxBackground()); if (w == mWallpaperTarget && w.isAnimating(TRANSITION | PARENTS)) { // The current wallpaper target is animating, so we'll look behind it for // another possible target and figure out what is going on later. if (DEBUG_WALLPAPER) Slog.v(TAG, "Win " + w + ": token animating, looking behind."); } // While the keyguard is going away, both notification shade and a normal activity such // as a launcher can satisfy criteria for a wallpaper target. In this case, we should // chose the normal activity, otherwise wallpaper becomes invisible when a new animation Loading
services/core/java/com/android/server/wm/WindowContainer.java +5 −30 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ import static com.android.server.wm.IdentifierProto.USER_ID; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_ALL; 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.WindowContainerChildProto.WINDOW_CONTAINER; import static com.android.server.wm.WindowContainerProto.CONFIGURATION_CONTAINER; import static com.android.server.wm.WindowContainerProto.IDENTIFIER; Loading Loading @@ -226,14 +225,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< /** Interface for {@link #isAnimating} to check which cases for the container is animating. */ public interface AnimationFlags { /** * A bit flag indicates that {@link #isAnimating} should also return {@code true} * even though the container is not yet animating, but the window container or its * relatives as specified by PARENTS or CHILDREN are part of an {@link AppTransition} * that is pending so an animation starts soon. */ int TRANSITION = 1; /** * A bit flag indicates that {@link #isAnimating} should also check if one of the * ancestors of the container are animating in addition to the container itself. Loading Loading @@ -1234,9 +1225,8 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< * * Note that you can give a combination of bitmask flags to specify targets and condition for * checking animating status. * e.g. {@code isAnimating(TRANSITION | PARENT)} returns {@code true} if either this * container itself or one of its parents is running an animation or waiting for an app * transition. * e.g. {@code isAnimating(PARENT)} returns {@code true} if either thiscontainer itself or one * of its parents is running an animation. * * Note that TRANSITION propagates to parents and children as well. * Loading @@ -1245,7 +1235,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< * @param typesToCheck The combination of bitmask {@link AnimationType} to compare when * determining if animating. * * @see AnimationFlags#TRANSITION * @see AnimationFlags#PARENTS * @see AnimationFlags#CHILDREN */ Loading @@ -1253,20 +1242,11 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< return getAnimatingContainer(flags, typesToCheck) != null; } /** * @deprecated Use {@link #isAnimating(int, int)} * TODO (b/152333373): Migrate calls to use isAnimating with specified animation type */ @Deprecated final boolean isAnimating(int flags) { return isAnimating(flags, ANIMATION_TYPE_ALL); } /** * @return Whether our own container running an animation at the moment. */ final boolean isAnimating() { return isAnimating(0 /* self only */); return isAnimating(0 /* self only */, ANIMATION_TYPE_ALL); } /** Returns {@code true} if itself or its parent container of the window is in transition. */ Loading @@ -1275,9 +1255,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< } boolean isExitAnimationRunningSelfOrChild() { if (!mTransitionController.isShellTransitionsEnabled()) { return isAnimating(TRANSITION | CHILDREN, WindowState.EXIT_ANIMATING_TYPES); } // Only check leaf containers because inTransition() includes parent. if (mChildren.isEmpty() && inTransition()) { return true; Loading Loading @@ -3136,9 +3113,8 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< * * Note that you can give a combination of bitmask flags to specify targets and condition for * checking animating status. * e.g. {@code isAnimating(TRANSITION | PARENT)} returns {@code true} if either this * container itself or one of its parents is running an animation or waiting for an app * transition. * e.g. {@code isAnimating(PARENT)} returns {@code true} if either this container itself or one * of its parents is running an animation. * * Note that TRANSITION propagates to parents and children as well. * Loading @@ -3147,7 +3123,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< * @param typesToCheck The combination of bitmask {@link AnimationType} to compare when * determining if animating. * * @see AnimationFlags#TRANSITION * @see AnimationFlags#PARENTS * @see AnimationFlags#CHILDREN */ Loading