diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java | 8 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 6 |
2 files changed, 13 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index c4b7932ba310..7c70e22c5302 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -883,6 +883,10 @@ public abstract class PanelView extends FrameLayout { new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { + if (!mInstantExpanding) { + getViewTreeObserver().removeOnGlobalLayoutListener(this); + return; + } if (mStatusBar.getStatusBarWindow().getHeight() != mStatusBar.getStatusBarHeight()) { getViewTreeObserver().removeOnGlobalLayoutListener(this); @@ -907,6 +911,10 @@ public abstract class PanelView extends FrameLayout { if (mExpanding) { notifyExpandingFinished(); } + if (mInstantExpanding) { + mInstantExpanding = false; + notifyBarPanelExpansionChanged(); + } } private void abortAnimations() { diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 0b66959ec4bc..13b4d54c638f 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -4409,7 +4409,11 @@ public class WindowManagerService extends IWindowManager.Stub if (wtoken.hidden || wtoken.mAppStopped) { wtoken.allDrawn = false; wtoken.deferClearAllDrawn = false; - wtoken.waitingToShow = true; + + // If the app was already visible, don't reset the waitingToShow state. + if (wtoken.hidden) { + wtoken.waitingToShow = true; + } if (wtoken.clientHidden) { // In the case where we are making an app visible |