Loading services/core/java/com/android/server/wm/ActivityRecord.java +1 −36 Original line number Diff line number Diff line Loading @@ -158,7 +158,6 @@ import static com.android.server.wm.ActivityRecordProto.FRONT_OF_TASK; import static com.android.server.wm.ActivityRecordProto.IN_SIZE_COMPAT_MODE; import static com.android.server.wm.ActivityRecordProto.IS_ANIMATING; import static com.android.server.wm.ActivityRecordProto.IS_USER_FULLSCREEN_OVERRIDE_ENABLED; import static com.android.server.wm.ActivityRecordProto.LAST_ALL_DRAWN; import static com.android.server.wm.ActivityRecordProto.LAST_DROP_INPUT_MODE; import static com.android.server.wm.ActivityRecordProto.LAST_SURFACE_SHOWING; import static com.android.server.wm.ActivityRecordProto.MIN_ASPECT_RATIO; Loading Loading @@ -723,7 +722,6 @@ final class ActivityRecord extends WindowToken { private int mNumInterestingWindows; private int mNumDrawnWindows; boolean allDrawn; private boolean mLastAllDrawn; /** * Solely for reporting to ActivityMetricsLogger. Just tracks whether, the last time this Loading Loading @@ -1148,13 +1146,11 @@ final class ActivityRecord extends WindowToken { if (mAppStopped) { pw.print(prefix); pw.print("mAppStopped="); pw.println(mAppStopped); } if (mNumInterestingWindows != 0 || mNumDrawnWindows != 0 || allDrawn || mLastAllDrawn) { if (mNumInterestingWindows != 0 || mNumDrawnWindows != 0 || allDrawn) { pw.print(prefix); pw.print("mNumInterestingWindows="); pw.print(mNumInterestingWindows); pw.print(" mNumDrawnWindows="); pw.print(mNumDrawnWindows); pw.print(" allDrawn="); pw.print(allDrawn); pw.print(" lastAllDrawn="); pw.print(mLastAllDrawn); pw.println(")"); } if (mStartingData != null || firstWindowDrawn) { Loading Loading @@ -5155,7 +5151,6 @@ final class ActivityRecord extends WindowToken { void clearAllDrawn() { allDrawn = false; mLastAllDrawn = false; } /** Loading Loading @@ -6599,35 +6594,6 @@ final class ActivityRecord extends WindowToken { nowVisible = false; } @Override void checkAppWindowsReadyToShow() { if (allDrawn == mLastAllDrawn) { return; } mLastAllDrawn = allDrawn; if (!allDrawn) { return; } setAppLayoutChanges(FINISH_LAYOUT_REDO_ANIM, "checkAppWindowsReadyToShow"); // We can now show all of the drawn windows! if (canShowWindows()) { showAllWindowsLocked(); } } /** * This must be called while inside a transaction. */ void showAllWindowsLocked() { forAllWindows(windowState -> { if (DEBUG_VISIBILITY) Slog.v(TAG, "performing show on: " + windowState); windowState.performShowLocked(); }, false /* traverseTopToBottom */); } void updateReportedVisibilityLocked() { if (DEBUG_VISIBILITY) Slog.v(TAG, "Update reported visibility: " + this); final int count = mChildren.size(); Loading Loading @@ -9393,7 +9359,6 @@ final class ActivityRecord extends WindowToken { proto.write(NUM_INTERESTING_WINDOWS, mNumInterestingWindows); proto.write(NUM_DRAWN_WINDOWS, mNumDrawnWindows); proto.write(ALL_DRAWN, allDrawn); proto.write(LAST_ALL_DRAWN, mLastAllDrawn); if (mStartingWindow != null) { mStartingWindow.writeIdentifierToProto(proto, STARTING_WINDOW); } Loading services/core/java/com/android/server/wm/WindowAnimator.java +1 −33 Original line number Diff line number Diff line Loading @@ -18,10 +18,7 @@ package com.android.server.wm; import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; 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_SCREEN_ROTATION; import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN; import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WINDOW_TRACE; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; Loading Loading @@ -57,9 +54,6 @@ public class WindowAnimator { /** Is any window animating? */ private boolean mLastRootAnimating; /** True if we are running any animations that require expensive composition. */ private boolean mRunningExpensiveAnimations; final Choreographer.FrameCallback mAnimationFrameCallback; /** Time of current animation step. Reset on each iteration */ Loading Loading @@ -138,8 +132,6 @@ public class WindowAnimator { scheduleAnimation(); final RootWindowContainer root = mService.mRoot; final boolean useShellTransition = root.mTransitionController.isShellTransitionsEnabled(); final int animationFlags = useShellTransition ? CHILDREN : (TRANSITION | CHILDREN); boolean rootAnimating = false; mCurrentTime = frameTimeNs / TimeUtils.NANOS_PER_MS; if (DEBUG_WINDOW_TRACE) { Loading @@ -164,17 +156,13 @@ public class WindowAnimator { for (int i = 0; i < numDisplays; i++) { final DisplayContent dc = root.getChildAt(i); if (!useShellTransition) { dc.checkAppWindowsReadyToShow(); } if (accessibilityController.hasCallbacks()) { accessibilityController .recomputeMagnifiedRegionAndDrawMagnifiedRegionBorderIfNeeded( dc.mDisplayId); } if (dc.isAnimating(animationFlags, ANIMATION_TYPE_ALL)) { if (dc.isAnimating(CHILDREN, ANIMATION_TYPE_ALL)) { rootAnimating = true; if (!dc.mLastContainsRunningSurfaceAnimator) { dc.mLastContainsRunningSurfaceAnimator = true; Loading Loading @@ -211,11 +199,6 @@ public class WindowAnimator { } mLastRootAnimating = rootAnimating; // APP_TRANSITION, SCREEN_ROTATION, TYPE_RECENTS are handled by shell transition. if (!useShellTransition) { updateRunningExpensiveAnimationsLegacy(); } final ArrayList<Runnable> afterPrepareSurfacesRunnables = mAfterPrepareSurfacesRunnables; if (!afterPrepareSurfacesRunnables.isEmpty()) { mAfterPrepareSurfacesRunnables = new ArrayList<>(); Loading Loading @@ -244,21 +227,6 @@ public class WindowAnimator { } } private void updateRunningExpensiveAnimationsLegacy() { final boolean runningExpensiveAnimations = mService.mRoot.isAnimating(TRANSITION | CHILDREN /* flags */, ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_SCREEN_ROTATION /* typesToCheck */); if (runningExpensiveAnimations && !mRunningExpensiveAnimations) { mService.mSnapshotController.setPause(true); mTransaction.setEarlyWakeupStart(); } else if (!runningExpensiveAnimations && mRunningExpensiveAnimations) { mService.mSnapshotController.setPause(false); mTransaction.setEarlyWakeupEnd(); } mRunningExpensiveAnimations = runningExpensiveAnimations; } public void dumpLocked(PrintWriter pw, String prefix, boolean dumpAll) { final String subPrefix = " " + prefix; Loading services/core/java/com/android/server/wm/WindowContainer.java +0 −8 Original line number Diff line number Diff line Loading @@ -1476,14 +1476,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< return stillDeferringRemoval; } /** Checks if all windows in an app are all drawn and shows them if needed. */ void checkAppWindowsReadyToShow() { for (int i = mChildren.size() - 1; i >= 0; --i) { final WindowContainer wc = mChildren.get(i); wc.checkAppWindowsReadyToShow(); } } /** * Called when this container or one of its descendants changed its requested orientation, and * wants this container to handle it or pass it to its parent. Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +1 −36 Original line number Diff line number Diff line Loading @@ -158,7 +158,6 @@ import static com.android.server.wm.ActivityRecordProto.FRONT_OF_TASK; import static com.android.server.wm.ActivityRecordProto.IN_SIZE_COMPAT_MODE; import static com.android.server.wm.ActivityRecordProto.IS_ANIMATING; import static com.android.server.wm.ActivityRecordProto.IS_USER_FULLSCREEN_OVERRIDE_ENABLED; import static com.android.server.wm.ActivityRecordProto.LAST_ALL_DRAWN; import static com.android.server.wm.ActivityRecordProto.LAST_DROP_INPUT_MODE; import static com.android.server.wm.ActivityRecordProto.LAST_SURFACE_SHOWING; import static com.android.server.wm.ActivityRecordProto.MIN_ASPECT_RATIO; Loading Loading @@ -723,7 +722,6 @@ final class ActivityRecord extends WindowToken { private int mNumInterestingWindows; private int mNumDrawnWindows; boolean allDrawn; private boolean mLastAllDrawn; /** * Solely for reporting to ActivityMetricsLogger. Just tracks whether, the last time this Loading Loading @@ -1148,13 +1146,11 @@ final class ActivityRecord extends WindowToken { if (mAppStopped) { pw.print(prefix); pw.print("mAppStopped="); pw.println(mAppStopped); } if (mNumInterestingWindows != 0 || mNumDrawnWindows != 0 || allDrawn || mLastAllDrawn) { if (mNumInterestingWindows != 0 || mNumDrawnWindows != 0 || allDrawn) { pw.print(prefix); pw.print("mNumInterestingWindows="); pw.print(mNumInterestingWindows); pw.print(" mNumDrawnWindows="); pw.print(mNumDrawnWindows); pw.print(" allDrawn="); pw.print(allDrawn); pw.print(" lastAllDrawn="); pw.print(mLastAllDrawn); pw.println(")"); } if (mStartingData != null || firstWindowDrawn) { Loading Loading @@ -5155,7 +5151,6 @@ final class ActivityRecord extends WindowToken { void clearAllDrawn() { allDrawn = false; mLastAllDrawn = false; } /** Loading Loading @@ -6599,35 +6594,6 @@ final class ActivityRecord extends WindowToken { nowVisible = false; } @Override void checkAppWindowsReadyToShow() { if (allDrawn == mLastAllDrawn) { return; } mLastAllDrawn = allDrawn; if (!allDrawn) { return; } setAppLayoutChanges(FINISH_LAYOUT_REDO_ANIM, "checkAppWindowsReadyToShow"); // We can now show all of the drawn windows! if (canShowWindows()) { showAllWindowsLocked(); } } /** * This must be called while inside a transaction. */ void showAllWindowsLocked() { forAllWindows(windowState -> { if (DEBUG_VISIBILITY) Slog.v(TAG, "performing show on: " + windowState); windowState.performShowLocked(); }, false /* traverseTopToBottom */); } void updateReportedVisibilityLocked() { if (DEBUG_VISIBILITY) Slog.v(TAG, "Update reported visibility: " + this); final int count = mChildren.size(); Loading Loading @@ -9393,7 +9359,6 @@ final class ActivityRecord extends WindowToken { proto.write(NUM_INTERESTING_WINDOWS, mNumInterestingWindows); proto.write(NUM_DRAWN_WINDOWS, mNumDrawnWindows); proto.write(ALL_DRAWN, allDrawn); proto.write(LAST_ALL_DRAWN, mLastAllDrawn); if (mStartingWindow != null) { mStartingWindow.writeIdentifierToProto(proto, STARTING_WINDOW); } Loading
services/core/java/com/android/server/wm/WindowAnimator.java +1 −33 Original line number Diff line number Diff line Loading @@ -18,10 +18,7 @@ package com.android.server.wm; import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; 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_SCREEN_ROTATION; import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN; import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WINDOW_TRACE; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; Loading Loading @@ -57,9 +54,6 @@ public class WindowAnimator { /** Is any window animating? */ private boolean mLastRootAnimating; /** True if we are running any animations that require expensive composition. */ private boolean mRunningExpensiveAnimations; final Choreographer.FrameCallback mAnimationFrameCallback; /** Time of current animation step. Reset on each iteration */ Loading Loading @@ -138,8 +132,6 @@ public class WindowAnimator { scheduleAnimation(); final RootWindowContainer root = mService.mRoot; final boolean useShellTransition = root.mTransitionController.isShellTransitionsEnabled(); final int animationFlags = useShellTransition ? CHILDREN : (TRANSITION | CHILDREN); boolean rootAnimating = false; mCurrentTime = frameTimeNs / TimeUtils.NANOS_PER_MS; if (DEBUG_WINDOW_TRACE) { Loading @@ -164,17 +156,13 @@ public class WindowAnimator { for (int i = 0; i < numDisplays; i++) { final DisplayContent dc = root.getChildAt(i); if (!useShellTransition) { dc.checkAppWindowsReadyToShow(); } if (accessibilityController.hasCallbacks()) { accessibilityController .recomputeMagnifiedRegionAndDrawMagnifiedRegionBorderIfNeeded( dc.mDisplayId); } if (dc.isAnimating(animationFlags, ANIMATION_TYPE_ALL)) { if (dc.isAnimating(CHILDREN, ANIMATION_TYPE_ALL)) { rootAnimating = true; if (!dc.mLastContainsRunningSurfaceAnimator) { dc.mLastContainsRunningSurfaceAnimator = true; Loading Loading @@ -211,11 +199,6 @@ public class WindowAnimator { } mLastRootAnimating = rootAnimating; // APP_TRANSITION, SCREEN_ROTATION, TYPE_RECENTS are handled by shell transition. if (!useShellTransition) { updateRunningExpensiveAnimationsLegacy(); } final ArrayList<Runnable> afterPrepareSurfacesRunnables = mAfterPrepareSurfacesRunnables; if (!afterPrepareSurfacesRunnables.isEmpty()) { mAfterPrepareSurfacesRunnables = new ArrayList<>(); Loading Loading @@ -244,21 +227,6 @@ public class WindowAnimator { } } private void updateRunningExpensiveAnimationsLegacy() { final boolean runningExpensiveAnimations = mService.mRoot.isAnimating(TRANSITION | CHILDREN /* flags */, ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_SCREEN_ROTATION /* typesToCheck */); if (runningExpensiveAnimations && !mRunningExpensiveAnimations) { mService.mSnapshotController.setPause(true); mTransaction.setEarlyWakeupStart(); } else if (!runningExpensiveAnimations && mRunningExpensiveAnimations) { mService.mSnapshotController.setPause(false); mTransaction.setEarlyWakeupEnd(); } mRunningExpensiveAnimations = runningExpensiveAnimations; } public void dumpLocked(PrintWriter pw, String prefix, boolean dumpAll) { final String subPrefix = " " + prefix; Loading
services/core/java/com/android/server/wm/WindowContainer.java +0 −8 Original line number Diff line number Diff line Loading @@ -1476,14 +1476,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< return stillDeferringRemoval; } /** Checks if all windows in an app are all drawn and shows them if needed. */ void checkAppWindowsReadyToShow() { for (int i = mChildren.size() - 1; i >= 0; --i) { final WindowContainer wc = mChildren.get(i); wc.checkAppWindowsReadyToShow(); } } /** * Called when this container or one of its descendants changed its requested orientation, and * wants this container to handle it or pass it to its parent. Loading