Fix delayed light status bar animation

am: 72a6f058cf

* commit '72a6f058cfcb72cad4da5ec8c84bc0a2b0d533a0':
  Fix delayed light status bar animation

Change-Id: I438a2c78f34676bd1040f3212af55e0141d48c9c
This commit is contained in:
Jorim Jaggi
2016-06-04 01:44:23 +00:00
committed by android-build-merger
2 changed files with 9 additions and 1 deletions

View File

@@ -5004,7 +5004,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
// Keep track of the window if it's dimming but not necessarily fullscreen.
final boolean reallyVisible = win.isVisibleOrBehindKeyguardLw() && !win.isGoneForLayoutLw();
if (mTopFullscreenOpaqueOrDimmingWindowState == null && reallyVisible
if (mTopFullscreenOpaqueOrDimmingWindowState == null && reallyVisible
&& win.isDimming() && StackId.normallyFullscreenWindows(stackId)) {
mTopFullscreenOpaqueOrDimmingWindowState = win;
}

View File

@@ -1,5 +1,6 @@
package com.android.server.wm;
import static android.view.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DIM_LAYER;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
@@ -250,6 +251,13 @@ class DimLayerController {
duration = getDimLayerFadeDuration(duration);
}
state.dimLayer.show(dimLayer, dimAmount, duration);
// If we showed a dim layer, make sure to redo the layout because some things depend
// on whether a dim layer is showing or not.
if (targetAlpha == 0) {
mDisplayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_LAYOUT;
mDisplayContent.layoutNeeded = true;
}
}
} else if (state.dimLayer.getLayer() != dimLayer) {
state.dimLayer.setLayer(dimLayer);