diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowAnimator.java | 56 |
2 files changed, 9 insertions, 50 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index ef01cc8cd61a..9a3b8320c6c5 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -3293,7 +3293,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp // Unlink death from remote to clear the reference from binder -> mRemoteInsetsDeath // -> this DisplayContent. setRemoteInsetsController(null); - mWmService.mAnimator.removeDisplayLocked(mDisplayId); mOverlayLayer.release(); mA11yOverlayLayer.release(); mWindowingLayer.release(); @@ -5305,8 +5304,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp // {@link DisplayContent} ready for use. mDisplayReady = true; - mWmService.mAnimator.addDisplayLocked(mDisplayId); - if (mWmService.mDisplayManagerInternal != null) { mWmService.mDisplayManagerInternal .setDisplayInfoOverrideFromWindowManager(mDisplayId, getDisplayInfo()); diff --git a/services/core/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java index 10bedd4b921f..adc0595f305b 100644 --- a/services/core/java/com/android/server/wm/WindowAnimator.java +++ b/services/core/java/com/android/server/wm/WindowAnimator.java @@ -30,7 +30,6 @@ import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; import android.content.Context; import android.os.Trace; import android.util.Slog; -import android.util.SparseArray; import android.util.TimeUtils; import android.view.Choreographer; import android.view.SurfaceControl; @@ -66,7 +65,6 @@ public class WindowAnimator { int mBulkUpdateParams = 0; Object mLastWindowFreezeSource; - SparseArray<DisplayContentsAnimator> mDisplayContentsAnimators = new SparseArray<>(2); private boolean mInitialized = false; private Choreographer mChoreographer; @@ -98,8 +96,7 @@ public class WindowAnimator { mAnimationFrameCallback = frameTimeNs -> { synchronized (mService.mGlobalLock) { mAnimationFrameCallbackScheduled = false; - final long vsyncId = mChoreographer.getVsyncId(); - animate(frameTimeNs, vsyncId); + animate(frameTimeNs); if (mNotifyWhenNoAnimation && !mLastRootAnimating) { mService.mGlobalLock.notifyAll(); } @@ -107,21 +104,11 @@ public class WindowAnimator { }; } - void addDisplayLocked(final int displayId) { - // Create the DisplayContentsAnimator object by retrieving it if the associated - // {@link DisplayContent} exists. - getDisplayContentsAnimatorLocked(displayId); - } - - void removeDisplayLocked(final int displayId) { - mDisplayContentsAnimators.delete(displayId); - } - void ready() { mInitialized = true; } - private void animate(long frameTimeNs, long vsyncId) { + private void animate(long frameTimeNs) { if (!mInitialized) { return; } @@ -145,10 +132,9 @@ public class WindowAnimator { final AccessibilityController accessibilityController = mService.mAccessibilityController; - final int numDisplays = mDisplayContentsAnimators.size(); + final int numDisplays = root.getChildCount(); for (int i = 0; i < numDisplays; i++) { - final int displayId = mDisplayContentsAnimators.keyAt(i); - final DisplayContent dc = root.getDisplayContent(displayId); + final DisplayContent dc = root.getChildAt(i); // Update animations of all applications, including those associated with // exiting/removed apps. dc.updateWindowsForAnimator(); @@ -156,12 +142,11 @@ public class WindowAnimator { } for (int i = 0; i < numDisplays; i++) { - final int displayId = mDisplayContentsAnimators.keyAt(i); - final DisplayContent dc = root.getDisplayContent(displayId); + final DisplayContent dc = root.getChildAt(i); dc.checkAppWindowsReadyToShow(); if (accessibilityController.hasCallbacks()) { - accessibilityController.drawMagnifiedRegionBorderIfNeeded(displayId, + accessibilityController.drawMagnifiedRegionBorderIfNeeded(dc.mDisplayId, mTransaction); } } @@ -237,12 +222,9 @@ public class WindowAnimator { public void dumpLocked(PrintWriter pw, String prefix, boolean dumpAll) { final String subPrefix = " " + prefix; - for (int i = 0; i < mDisplayContentsAnimators.size(); i++) { - pw.print(prefix); pw.print("DisplayContentsAnimator #"); - pw.print(mDisplayContentsAnimators.keyAt(i)); - pw.println(":"); - final DisplayContent dc = - mService.mRoot.getDisplayContent(mDisplayContentsAnimators.keyAt(i)); + for (int i = 0; i < mService.mRoot.getChildCount(); i++) { + final DisplayContent dc = mService.mRoot.getChildAt(i); + pw.print(prefix); pw.print(dc); pw.println(":"); dc.dumpWindowAnimators(pw, subPrefix); pw.println(); } @@ -260,23 +242,6 @@ public class WindowAnimator { } } - private DisplayContentsAnimator getDisplayContentsAnimatorLocked(int displayId) { - if (displayId < 0) { - return null; - } - - DisplayContentsAnimator displayAnimator = mDisplayContentsAnimators.get(displayId); - - // It is possible that this underlying {@link DisplayContent} has been removed. In this - // case, we do not want to create an animator associated with it as {link #animate} will - // fail. - if (displayAnimator == null && mService.mRoot.getDisplayContent(displayId) != null) { - displayAnimator = new DisplayContentsAnimator(); - mDisplayContentsAnimators.put(displayId, displayAnimator); - } - return displayAnimator; - } - void scheduleAnimation() { if (!mAnimationFrameCallbackScheduled) { mAnimationFrameCallbackScheduled = true; @@ -291,9 +256,6 @@ public class WindowAnimator { } } - private class DisplayContentsAnimator { - } - boolean isAnimationScheduled() { return mAnimationFrameCallbackScheduled; } |