summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jorim Jaggi <jjaggi@google.com> 2016-04-25 18:51:16 -0700
committer Jorim Jaggi <jjaggi@google.com> 2016-04-26 02:54:34 +0000
commitc5804afa73edbf229e789570d288e66f70b54fa2 (patch)
tree9847ec9eb66d937f4ad02a864c86469f70ac1eb6
parent72c216f25072123f498105bc7ad98a65a7a3cdaf (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.java8
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java6
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