summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2014-09-12 02:54:40 +0200
committerJorim Jaggi <jjaggi@google.com>2014-09-12 19:12:15 +0200
commitd41083ad06f63e335a1d1a1d5050ed3646f4fd35 (patch)
tree5dba92778254da3b04c40241a064e2dc6511cd8e /packages
parent2418d7381f1a1c15b26af252d7d08745c1858af4 (diff)
downloadframeworks_base-d41083ad06f63e335a1d1a1d5050ed3646f4fd35.zip
frameworks_base-d41083ad06f63e335a1d1a1d5050ed3646f4fd35.tar.gz
frameworks_base-d41083ad06f63e335a1d1a1d5050ed3646f4fd35.tar.bz2
Attempt to fix invisible Keyguard #2
Bug: 17439581 Change-Id: Ib38d9be3271081b33c23b3b17b2ed7790c71729b
Diffstat (limited to 'packages')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java16
2 files changed, 22 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 c3b263d..f6d6af1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -86,6 +86,7 @@ public abstract class PanelView extends FrameLayout {
private String mViewName;
private float mInitialTouchY;
private float mInitialTouchX;
+ private boolean mTouchDisabled;
private Interpolator mLinearOutSlowInInterpolator;
private Interpolator mFastOutSlowInInterpolator;
@@ -207,9 +208,13 @@ public abstract class PanelView extends FrameLayout {
event.offsetLocation(-deltaX, -deltaY);
}
+ public void setTouchDisabled(boolean disabled) {
+ mTouchDisabled = disabled;
+ }
+
@Override
public boolean onTouchEvent(MotionEvent event) {
- if (mInstantExpanding) {
+ if (mInstantExpanding || mTouchDisabled) {
return false;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index fd60ac4..3bdae47 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -404,6 +404,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
private int mNavigationBarMode;
private Boolean mScreenOn;
+ // The second field is a bit different from the first one because it only listens to screen on/
+ // screen of events from Keyguard. We need this so we don't have a race condition with the
+ // broadcast. In the future, we should remove the first field altogether and rename the second
+ // field.
+ private boolean mScreenOnFromKeyguard;
+
private ViewMediatorCallback mKeyguardViewMediatorCallback;
private ScrimController mScrimController;
@@ -3466,6 +3472,13 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
public void showKeyguard() {
setBarState(StatusBarState.KEYGUARD);
updateKeyguardState(false /* goingToFullShade */, false /* fromShadeLocked */);
+ if (!mScreenOnFromKeyguard) {
+
+ // If the screen is off already, we need to disable touch events because these might
+ // collapse the panel after we expanded it, and thus we would end up with a blank
+ // Keyguard.
+ mNotificationPanel.setTouchDisabled(true);
+ }
instantExpandNotificationsPanel();
mLeaveOpenOnKeyguardHide = false;
if (mDraggedDownRow != null) {
@@ -3870,12 +3883,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
public void onScreenTurnedOff() {
+ mScreenOnFromKeyguard = false;
mStackScroller.setAnimationsEnabled(false);
}
public void onScreenTurnedOn() {
+ mScreenOnFromKeyguard = true;
mStackScroller.setAnimationsEnabled(true);
mNotificationPanel.onScreenTurnedOn();
+ mNotificationPanel.setTouchDisabled(false);
}
/**