summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java3
-rw-r--r--services/core/java/com/android/server/wm/WindowAnimator.java56
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;
}