Doze: coordinate keyguard status bar visibility.
Play nice with recent NotificationPanelView changes that
also drive its visibility.
Bug: 15863249
Change-Id: I60021f415089d5508af7fe9ec792a2871a52910d
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index c9c7703..53c4740 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -93,6 +93,8 @@
private boolean mQsExpandedWhenExpandingStarted;
private boolean mQsFullyExpanded;
private boolean mKeyguardShowing;
+ private boolean mDozing;
+ private boolean mKeyguardStatusBarTransparent;
private int mStatusBarState;
private float mInitialHeightOnTouch;
private float mInitialTouchX;
@@ -897,10 +899,9 @@
alpha *= 2;
alpha = Math.min(1, alpha);
alpha = 1 - alpha;
- if (alpha == 0f) {
- mKeyguardStatusBar.setVisibility(View.INVISIBLE);
- } else {
- mKeyguardStatusBar.setVisibility(View.VISIBLE);
+ mKeyguardStatusBarTransparent = alpha == 0f;
+ updateKeyguardStatusBarVisibility();
+ if (!mKeyguardStatusBarTransparent) {
mKeyguardStatusBar.setAlpha(alpha);
}
}
@@ -1598,4 +1599,20 @@
private static float interpolate(float t, float start, float end) {
return (1 - t) * start + t * end;
}
+
+ private void updateKeyguardStatusBarVisibility() {
+ mKeyguardStatusBar.setVisibility(mKeyguardShowing && !mKeyguardStatusBarTransparent
+ && !mDozing ? VISIBLE : INVISIBLE);
+ }
+
+ public void setDozing(boolean dozing) {
+ if (dozing == mDozing) return;
+ mDozing = dozing;
+ if (mDozing) {
+ setBackgroundColor(0xff000000);
+ } else {
+ setBackground(null);
+ }
+ updateKeyguardStatusBarVisibility();
+ }
}