diff options
| author | 2016-04-25 18:51:16 -0700 | |
|---|---|---|
| committer | 2016-04-26 02:54:34 +0000 | |
| commit | c5804afa73edbf229e789570d288e66f70b54fa2 (patch) | |
| tree | 9847ec9eb66d937f4ad02a864c86469f70ac1eb6 | |
| parent | 72c216f25072123f498105bc7ad98a65a7a3cdaf (diff) | |
Fix a few issues with occluded Keyguard
- When we get a collapse before the layout happened in SystemUI,
don't expand the panel after the layout.
- Don't reset waitingToShow when coming out of sleep. This will cause
win.isVisibleOrBehindKeyguardLw to return false and then occluded
state will change rapidly from true -> false -> true, leading to
flickering in SysUI.
Bug: 23898941
Change-Id: I2b941188de777086bb2b477f5bfc00cc0cd6abe0
| -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 |