diff options
11 files changed, 108 insertions, 98 deletions
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java index ee7c6d2cfd1e..56eaa83383c5 100644 --- a/services/core/java/com/android/server/wm/AppWindowToken.java +++ b/services/core/java/com/android/server/wm/AppWindowToken.java @@ -425,8 +425,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree } if (destroyedSomething) { final DisplayContent dc = getDisplayContent(); - mService.mLayersController.assignLayersLocked(dc.getWindowList()); - dc.setLayoutNeeded(); + dc.assignWindowLayers(true /*setLayoutNeeded*/); } } diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 3681123bb389..7299bdf29402 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -44,6 +44,7 @@ import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ADD_REMOVE; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DISPLAY; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_FOCUS; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_FOCUS_LIGHT; +import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYERS; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WINDOW_MOVEMENT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_VISIBILITY; @@ -171,13 +172,20 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo // the display's direct children should be allowed. private boolean mRemovingDisplay = false; + private final WindowLayersController mLayersController; + int mInputMethodAnimLayerAdjustment; + /** * @param display May not be null. * @param service You know. + * @param layersController window layer controller used to assign layer to the windows on this + * display. */ - DisplayContent(Display display, WindowManagerService service) { + DisplayContent(Display display, WindowManagerService service, + WindowLayersController layersController) { mDisplay = display; mDisplayId = display.getDisplayId(); + mLayersController = layersController; display.getDisplayInfo(mDisplayInfo); display.getMetrics(mDisplayMetrics); isDefaultDisplay = mDisplayId == DEFAULT_DISPLAY; @@ -691,6 +699,24 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo } } + void setInputMethodAnimLayerAdjustment(int adj) { + if (DEBUG_LAYERS) Slog.v(TAG_WM, "Setting im layer adj to " + adj); + mInputMethodAnimLayerAdjustment = adj; + final WindowState imw = mService.mInputMethodWindow; + if (imw != null) { + imw.adjustAnimLayer(adj); + } + for (int i = mService.mInputMethodDialogs.size() - 1; i >= 0; i--) { + final WindowState dialog = mService.mInputMethodDialogs.get(i); + // TODO: This and other places setting mAnimLayer can probably use WS.adjustAnimLayer, + // but need to make sure we are not setting things twice for child windows that are + // already in the list. + dialog.mWinAnimator.mAnimLayer = dialog.mLayer + adj; + if (DEBUG_LAYERS) Slog.v(TAG_WM, "IM win " + imw + + " anim layer: " + dialog.mWinAnimator.mAnimLayer); + } + } + void prepareFreezingTaskBounds() { for (int stackNdx = mTaskStackContainers.size() - 1; stackNdx >= 0; --stackNdx) { final TaskStack stack = mTaskStackContainers.get(stackNdx); @@ -798,6 +824,11 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo mDimLayerController.dump(prefix + " ", pw); pw.println(); mDividerControllerLocked.dump(prefix + " ", pw); + + if (mInputMethodAnimLayerAdjustment != 0) { + pw.println(subPrefix + + "mInputMethodAnimLayerAdjustment=" + mInputMethodAnimLayerAdjustment); + } } @Override @@ -1113,6 +1144,14 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo } } + /** Updates the layer assignment of windows on this display. */ + void assignWindowLayers(boolean setLayoutNeeded) { + mLayersController.assignWindowLayers(mWindows); + if (setLayoutNeeded) { + setLayoutNeeded(); + } + } + /** * Z-orders the display window list so that: * <ul> diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java index 58541973a650..8b5f62e51d21 100644 --- a/services/core/java/com/android/server/wm/DockedStackDividerController.java +++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java @@ -33,6 +33,7 @@ import static com.android.server.wm.AppTransition.TRANSIT_NONE; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; import static com.android.server.wm.WindowManagerService.H.NOTIFY_DOCKED_STACK_MINIMIZED_CHANGED; +import static com.android.server.wm.WindowManagerService.LAYER_OFFSET_DIM; import android.content.Context; import android.content.res.Configuration; @@ -296,7 +297,7 @@ public class DockedStackDividerController implements DimLayerUser { } } - boolean wasVisible() { + private boolean wasVisible() { return mLastVisibility; } @@ -356,7 +357,7 @@ public class DockedStackDividerController implements DimLayerUser { mLastRect.set(frame); } - void notifyDockedDividerVisibilityChanged(boolean visible) { + private void notifyDockedDividerVisibilityChanged(boolean visible) { final int size = mDockedStackListeners.beginBroadcast(); for (int i = 0; i < size; ++i) { final IDockedStackListener listener = mDockedStackListeners.getBroadcastItem(i); @@ -413,7 +414,7 @@ public class DockedStackDividerController implements DimLayerUser { return mImeHideRequested; } - void notifyDockedStackMinimizedChanged(boolean minimizedDock, long animDuration) { + private void notifyDockedStackMinimizedChanged(boolean minimizedDock, long animDuration) { mService.mH.removeMessages(NOTIFY_DOCKED_STACK_MINIMIZED_CHANGED); mService.mH.obtainMessage(NOTIFY_DOCKED_STACK_MINIMIZED_CHANGED, minimizedDock ? 1 : 0, 0).sendToTarget(); @@ -442,7 +443,7 @@ public class DockedStackDividerController implements DimLayerUser { mDockedStackListeners.finishBroadcast(); } - void notifyAdjustedForImeChanged(boolean adjustedForIme, long animDuration) { + private void notifyAdjustedForImeChanged(boolean adjustedForIme, long animDuration) { final int size = mDockedStackListeners.beginBroadcast(); for (int i = 0; i < size; ++i) { final IDockedStackListener listener = mDockedStackListeners.getBroadcastItem(i); @@ -474,8 +475,7 @@ public class DockedStackDividerController implements DimLayerUser { stack.getDimBounds(mTmpRect); if (mTmpRect.height() > 0 && mTmpRect.width() > 0) { mDimLayer.setBounds(mTmpRect); - mDimLayer.show(mService.mLayersController.getResizeDimLayer(), - alpha, 0 /* duration */); + mDimLayer.show(getResizeDimLayer(), alpha, 0 /* duration */); } else { visibleAndValid = false; } @@ -487,6 +487,14 @@ public class DockedStackDividerController implements DimLayerUser { } /** + * @return The layer used for dimming the apps when dismissing docked/fullscreen stack. Just + * above all application surfaces. + */ + private int getResizeDimLayer() { + return (mWindow != null) ? mWindow.mLayer - 1 : LAYER_OFFSET_DIM; + } + + /** * Notifies the docked stack divider controller of a visibility change that happens without * an animation. */ @@ -693,7 +701,7 @@ public class DockedStackDividerController implements DimLayerUser { return animateForIme(now); } else { if (mDimLayer != null && mDimLayer.isDimming()) { - mDimLayer.setLayer(mService.mLayersController.getResizeDimLayer()); + mDimLayer.setLayer(getResizeDimLayer()); } return false; } diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index 05ffe2d14167..bddf6e2e915e 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -165,8 +165,11 @@ class RootWindowContainer extends WindowContainer<DisplayContent> { ParcelFileDescriptor mSurfaceTraceFd; RemoteEventTrace mRemoteEventTrace; + private final WindowLayersController mLayersController; + RootWindowContainer(WindowManagerService service) { mService = service; + mLayersController = new WindowLayersController(mService); } WindowState computeFocusedWindow() { @@ -211,7 +214,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> { } private DisplayContent createDisplayContent(final Display display) { - final DisplayContent dc = new DisplayContent(display, mService); + final DisplayContent dc = new DisplayContent(display, mService, mLayersController); final int displayId = display.getDisplayId(); if (DEBUG_DISPLAY) Slog.v(TAG_WM, "Adding display=" + display); @@ -1171,9 +1174,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> { } } - for (DisplayContent displayContent : displayList) { - mService.mLayersController.assignLayersLocked(displayContent.getWindowList()); - displayContent.setLayoutNeeded(); + for (int j = displayList.size() - 1; j >= 0; --j) { + final DisplayContent dc = displayList.get(j); + dc.assignWindowLayers(true /*setLayoutNeeded*/); } } @@ -1250,8 +1253,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> { if ((dc.pendingLayoutChanges & FINISH_LAYOUT_REDO_WALLPAPER) != 0 && mService.mWallpaperControllerLocked.adjustWallpaperWindows()) { - mService.mLayersController.assignLayersLocked(windows); - dc.setLayoutNeeded(); + dc.assignWindowLayers(true /*setLayoutNeeded*/); } if (isDefaultDisplay diff --git a/services/core/java/com/android/server/wm/WallpaperController.java b/services/core/java/com/android/server/wm/WallpaperController.java index 0841231ae328..972a0cb05a38 100644 --- a/services/core/java/com/android/server/wm/WallpaperController.java +++ b/services/core/java/com/android/server/wm/WallpaperController.java @@ -742,8 +742,7 @@ class WallpaperController { } if (adjust && adjustWallpaperWindows()) { - mService.mLayersController.assignLayersLocked(windows); - dc.setLayoutNeeded(); + dc.assignWindowLayers(true /*setLayoutNeeded*/); } } @@ -769,6 +768,10 @@ class WallpaperController { pw.print("mLastWallpaperDisplayOffsetX="); pw.print(mLastWallpaperDisplayOffsetX); pw.print(" mLastWallpaperDisplayOffsetY="); pw.println(mLastWallpaperDisplayOffsetY); } + + if (mWallpaperAnimLayerAdjustment != 0) { + pw.println(prefix + "mWallpaperAnimLayerAdjustment=" + mWallpaperAnimLayerAdjustment); + } } void dumpTokens(PrintWriter pw, String prefix, boolean dumpAll) { diff --git a/services/core/java/com/android/server/wm/WindowLayersController.java b/services/core/java/com/android/server/wm/WindowLayersController.java index 68c2be93d69e..e184e39eefcc 100644 --- a/services/core/java/com/android/server/wm/WindowLayersController.java +++ b/services/core/java/com/android/server/wm/WindowLayersController.java @@ -48,12 +48,10 @@ import static com.android.server.wm.WindowManagerService.WINDOW_LAYER_MULTIPLIER * <li>replaced windows, which need to live above their normal level, because they anticipate * an animation</li>. */ -public class WindowLayersController { +class WindowLayersController { private final WindowManagerService mService; - private int mInputMethodAnimLayerAdjustment; - - public WindowLayersController(WindowManagerService service) { + WindowLayersController(WindowManagerService service) { mService = service; } @@ -65,7 +63,7 @@ public class WindowLayersController { private WindowState mDockDivider = null; private ArrayDeque<WindowState> mReplacingWindows = new ArrayDeque<>(); - final void assignLayersLocked(WindowList windows) { + final void assignWindowLayers(WindowList windows) { if (DEBUG_LAYERS) Slog.v(TAG_WM, "Assigning layers based on windows=" + windows, new RuntimeException("here").fillInStackTrace()); @@ -87,7 +85,7 @@ public class WindowLayersController { // TODO: Preserved old behavior of code here but not sure comparing // oldLayer to mAnimLayer and mLayer makes sense...though the - // worst case would be unintentionalp layer reassignment. + // worst case would be unintentional layer reassignment. if (w.mLayer != oldLayer || w.mWinAnimator.mAnimLayer != oldLayer) { layerChanged = true; anyLayerChanged = true; @@ -115,41 +113,6 @@ public class WindowLayersController { if (DEBUG_LAYERS) logDebugLayers(windows); } - void setInputMethodAnimLayerAdjustment(int adj) { - if (DEBUG_LAYERS) Slog.v(TAG_WM, "Setting im layer adj to " + adj); - mInputMethodAnimLayerAdjustment = adj; - final WindowState imw = mService.mInputMethodWindow; - if (imw != null) { - imw.adjustAnimLayer(adj); - } - for (int i = mService.mInputMethodDialogs.size() - 1; i >= 0; i--) { - final WindowState dialog = mService.mInputMethodDialogs.get(i); - // TODO: This and other places setting mAnimLayer can probably use WS.adjustAnimLayer, - // but need to make sure we are not setting things twice for child windows that are - // already in the list. - dialog.mWinAnimator.mAnimLayer = dialog.mLayer + adj; - if (DEBUG_LAYERS) Slog.v(TAG_WM, "IM win " + imw - + " anim layer: " + dialog.mWinAnimator.mAnimLayer); - } - } - - int getSpecialWindowAnimLayerAdjustment(WindowState win) { - if (win.mIsImWindow) { - return mInputMethodAnimLayerAdjustment; - } else if (win.mIsWallpaper) { - return mService.mWallpaperControllerLocked.getAnimLayerAdjustment(); - } - return 0; - } - - /** - * @return The layer used for dimming the apps when dismissing docked/fullscreen stack. Just - * above all application surfaces. - */ - int getResizeDimLayer() { - return (mDockDivider != null) ? mDockDivider.mLayer - 1 : LAYER_OFFSET_DIM; - } - private void logDebugLayers(WindowList windows) { for (int i = 0, n = windows.size(); i < n; i++) { final WindowState w = windows.get(i); @@ -250,21 +213,11 @@ public class WindowLayersController { private void assignAnimLayer(WindowState w, int layer) { w.mLayer = layer; - w.mWinAnimator.mAnimLayer = w.mLayer + w.getAnimLayerAdjustment() + - getSpecialWindowAnimLayerAdjustment(w); + w.mWinAnimator.mAnimLayer = w.getAnimLayerAdjustment() + + w.getSpecialWindowAnimLayerAdjustment(); if (w.mAppToken != null && w.mAppToken.mAppAnimator.thumbnailForceAboveLayer > 0 && w.mWinAnimator.mAnimLayer > w.mAppToken.mAppAnimator.thumbnailForceAboveLayer) { w.mAppToken.mAppAnimator.thumbnailForceAboveLayer = w.mWinAnimator.mAnimLayer; } } - - void dump(PrintWriter pw, String s) { - if (mInputMethodAnimLayerAdjustment != 0 || - mService.mWallpaperControllerLocked.getAnimLayerAdjustment() != 0) { - pw.print(" mInputMethodAnimLayerAdjustment="); - pw.print(mInputMethodAnimLayerAdjustment); - pw.print(" mWallpaperAnimLayerAdjustment="); - pw.println(mService.mWallpaperControllerLocked.getAnimLayerAdjustment()); - } - } } diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 02d04cc2438e..b90dc93c41bd 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -675,8 +675,6 @@ public class WindowManagerService extends IWindowManager.Stub WallpaperController mWallpaperControllerLocked; - final WindowLayersController mLayersController; - boolean mAnimateWallpaperWithTarget; // TODO: Move to RootWindowContainer @@ -685,19 +683,19 @@ public class WindowManagerService extends IWindowManager.Stub PowerManager mPowerManager; PowerManagerInternal mPowerManagerInternal; - float mWindowAnimationScaleSetting = 1.0f; - float mTransitionAnimationScaleSetting = 1.0f; - float mAnimatorDurationScaleSetting = 1.0f; - boolean mAnimationsDisabled = false; + private float mWindowAnimationScaleSetting = 1.0f; + private float mTransitionAnimationScaleSetting = 1.0f; + private float mAnimatorDurationScaleSetting = 1.0f; + private boolean mAnimationsDisabled = false; final InputManagerService mInputManager; final DisplayManagerInternal mDisplayManagerInternal; final DisplayManager mDisplayManager; - final Display[] mDisplays; + private final Display[] mDisplays; // Who is holding the screen on. - Session mHoldingScreenOn; - PowerManager.WakeLock mHoldingScreenWakeLock; + private Session mHoldingScreenOn; + private PowerManager.WakeLock mHoldingScreenWakeLock; boolean mTurnOnScreen; @@ -708,7 +706,7 @@ public class WindowManagerService extends IWindowManager.Stub DragState mDragState = null; // For frozen screen animations. - int mExitAnimId, mEnterAnimId; + private int mExitAnimId, mEnterAnimId; boolean mAnimationScheduled; @@ -972,7 +970,6 @@ public class WindowManagerService extends IWindowManager.Stub mWallpaperControllerLocked = new WallpaperController(this); mWindowPlacerLocked = new WindowSurfacePlacer(this); - mLayersController = new WindowLayersController(this); mPolicy = policy; LocalServices.addService(WindowManagerPolicy.class, mPolicy); @@ -1120,7 +1117,8 @@ public class WindowManagerService extends IWindowManager.Stub // TODO(multidisplay): Needs some serious rethought when the target and IME are not on the // same display. Or even when the current IME/target are not on the same screen as the next // IME/target. For now only look for input windows on the main screen. - WindowList windows = getDefaultWindowListLocked(); + final DisplayContent dc = getDefaultDisplayContentLocked(); + final WindowList windows = dc.getWindowList(); WindowState w = null; int i; for (i = windows.size() - 1; i >= 0; --i) { @@ -1235,10 +1233,10 @@ public class WindowManagerService extends IWindowManager.Stub mInputMethodTarget = w; mInputMethodTargetWaitingAnim = false; if (w.mAppToken != null) { - mLayersController.setInputMethodAnimLayerAdjustment( + dc.setInputMethodAnimLayerAdjustment( w.mAppToken.mAppAnimator.animLayerAdjustment); } else { - mLayersController.setInputMethodAnimLayerAdjustment(0); + dc.setInputMethodAnimLayerAdjustment(0); } } @@ -1260,7 +1258,7 @@ public class WindowManagerService extends IWindowManager.Stub if (DEBUG_INPUT_METHOD) Slog.w(TAG_WM, "Moving IM target from " + curTarget + " to null." + (SHOW_STACK_CRAWLS ? " Callers=" + Debug.getCallers(4) : "")); mInputMethodTarget = null; - mLayersController.setInputMethodAnimLayerAdjustment(0); + dc.setInputMethodAnimLayerAdjustment(0); } return -1; } @@ -1426,7 +1424,7 @@ public class WindowManagerService extends IWindowManager.Stub } if (needAssignLayers) { - mLayersController.assignLayersLocked(windows); + getDefaultDisplayContentLocked().assignWindowLayers(false /* setLayoutNeeded */); } return true; @@ -1804,9 +1802,9 @@ public class WindowManagerService extends IWindowManager.Stub moveInputMethodWindowsIfNeededLocked(false); } - mLayersController.assignLayersLocked(displayContent.getWindowList()); // Don't do layout here, the window must call // relayout to be displayed, so we'll do it there. + displayContent.assignWindowLayers(false /* setLayoutNeeded */); if (focusChanged) { mInputMonitor.setInputFocusLw(mCurrentFocus, false /*updateInputWindows*/); @@ -2019,8 +2017,7 @@ public class WindowManagerService extends IWindowManager.Stub if (windows != null) { windows.remove(win); if (!mWindowPlacerLocked.isInLayout()) { - mLayersController.assignLayersLocked(windows); - win.setDisplayLayoutNeeded(); + win.getDisplayContent().assignWindowLayers(true /* setLayoutNeeded */); mWindowPlacerLocked.performSurfacePlacement(); if (win.mAppToken != null) { win.mAppToken.updateReportedVisibilityLocked(); @@ -2398,7 +2395,7 @@ public class WindowManagerService extends IWindowManager.Stub // its layer recomputed. However, if the IME was hidden // and isn't actually moved in the list, its layer may be // out of data so we make sure to recompute it. - mLayersController.assignLayersLocked(win.getWindowList()); + win.getDisplayContent().assignWindowLayers(false /* setLayoutNeeded */); } if (wallpaperMayMove) { @@ -3719,7 +3716,7 @@ public class WindowManagerService extends IWindowManager.Stub if (!updateFocusedWindowLocked(UPDATE_FOCUS_WILL_PLACE_SURFACES, false /*updateInputWindows*/)) { - mLayersController.assignLayersLocked(displayContent.getWindowList()); + displayContent.assignWindowLayers(false /* setLayoutNeeded */); } mInputMonitor.setUpdateInputWindowsNeededLw(); @@ -8098,7 +8095,7 @@ public class WindowManagerService extends IWindowManager.Stub } else if (mode == UPDATE_FOCUS_WILL_PLACE_SURFACES) { // Client will do the layout, but we need to assign layers // for handleNewWindowLocked() below. - mLayersController.assignLayersLocked(displayContent.getWindowList()); + displayContent.assignWindowLayers(false /* setLayoutNeeded */); } } @@ -8758,7 +8755,6 @@ public class WindowManagerService extends IWindowManager.Stub } mWindowPlacerLocked.dump(pw, " "); mWallpaperControllerLocked.dump(pw, " "); - mLayersController.dump(pw, " "); pw.print(" mSystemBooted="); pw.print(mSystemBooted); pw.print(" mDisplayEnabled="); pw.println(mDisplayEnabled); diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index fa4dbc4f4f10..617c1450e8df 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -1986,6 +1986,17 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP return 0; } + int getSpecialWindowAnimLayerAdjustment() { + int specialAdjustment = 0; + if (mIsImWindow) { + specialAdjustment = getDisplayContent().mInputMethodAnimLayerAdjustment; + } else if (mIsWallpaper) { + specialAdjustment = mService.mWallpaperControllerLocked.getAnimLayerAdjustment(); + } + + return mLayer + specialAdjustment; + } + void scheduleAnimationIfDimming() { final DisplayContent dc = getDisplayContent(); if (dc == null) { diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 53fb99b4effd..12e5bce0e9fb 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -461,8 +461,7 @@ class WindowStateAnimator { if (mAnimator.mWindowDetachedWallpaper == mWin) { mAnimator.mWindowDetachedWallpaper = null; } - mAnimLayer = mWin.mLayer - + mService.mLayersController.getSpecialWindowAnimLayerAdjustment(mWin); + mAnimLayer = mWin.getSpecialWindowAnimLayerAdjustment(); if (DEBUG_LAYERS) Slog.v(TAG, "Stepping win " + this + " anim layer: " + mAnimLayer); mHasTransformation = false; mHasLocalTransformation = false; diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java index 285a75c7d445..336bc68932ae 100644 --- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java +++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java @@ -532,7 +532,7 @@ class WindowSurfacePlacer { // TODO(multidisplay): IMEs are only supported on the default display. if (windows == mService.getDefaultWindowListLocked() && !mService.moveInputMethodWindowsIfNeededLocked(true)) { - mService.mLayersController.assignLayersLocked(windows); + mService.getDefaultDisplayContentLocked().assignWindowLayers(false /*setLayoutNeeded*/); } mService.updateFocusedWindowLocked(UPDATE_FOCUS_PLACING_SURFACES, true /*updateInputWindows*/); diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java index 218972ac08b8..afaaeb9adef7 100644 --- a/services/core/java/com/android/server/wm/WindowToken.java +++ b/services/core/java/com/android/server/wm/WindowToken.java @@ -140,7 +140,7 @@ class WindowToken extends WindowContainer<WindowState> { highestAnimLayer = winHighestAnimLayer; } if (w == mService.mInputMethodTarget && !mService.mInputMethodTargetWaitingAnim) { - mService.mLayersController.setInputMethodAnimLayerAdjustment(adj); + mDisplayContent.setInputMethodAnimLayerAdjustment(adj); } } return highestAnimLayer; |