diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java index 30ba28a219954..8174c139cf640 100644 --- a/services/core/java/com/android/server/wm/DockedStackDividerController.java +++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java @@ -538,12 +538,15 @@ public class DockedStackDividerController implements DimLayerUser { } public boolean animate(long now) { + if (mWindow == null) { + return false; + } if (mAnimatingForMinimizedDockedStack) { return animateForMinimizedDockedStack(now); } else if (mAnimatingForIme) { return animateForIme(now); } else { - if (mDimLayer != null) { + if (mDimLayer != null && mDimLayer.isDimming()) { mDimLayer.setLayer(mService.mLayersController.getResizeDimLayer()); } return false; diff --git a/services/core/java/com/android/server/wm/WindowLayersController.java b/services/core/java/com/android/server/wm/WindowLayersController.java index 55abf78b001db..072e10fee84d9 100644 --- a/services/core/java/com/android/server/wm/WindowLayersController.java +++ b/services/core/java/com/android/server/wm/WindowLayersController.java @@ -27,6 +27,7 @@ import static android.app.ActivityManager.StackId.PINNED_STACK_ID; import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYERS; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; +import static com.android.server.wm.WindowManagerService.LAYER_OFFSET_DIM; import static com.android.server.wm.WindowManagerService.WINDOW_LAYER_MULTIPLIER; /** @@ -150,7 +151,7 @@ public class WindowLayersController { * above all application surfaces. */ int getResizeDimLayer() { - return mDockDivider.mLayer - 1; + return (mDockDivider != null) ? mDockDivider.mLayer - 1 : LAYER_OFFSET_DIM; } private void logDebugLayers(WindowList windows) {