summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2014-09-12 17:44:57 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-09-12 17:44:59 +0000
commitcffd540c1511cac42fa8ff98c2c3c20e7d5d51b5 (patch)
treed0a617a8d93c99e654ece38c91e9c501b1c98c7e /packages/SystemUI
parent1aec711b2e7c2e43fdc2069be229cfd3c9ddba16 (diff)
parentd41083ad06f63e335a1d1a1d5050ed3646f4fd35 (diff)
downloadframeworks_base-cffd540c1511cac42fa8ff98c2c3c20e7d5d51b5.zip
frameworks_base-cffd540c1511cac42fa8ff98c2c3c20e7d5d51b5.tar.gz
frameworks_base-cffd540c1511cac42fa8ff98c2c3c20e7d5d51b5.tar.bz2
Merge "Attempt to fix invisible Keyguard #2" into lmp-dev
Diffstat (limited to 'packages/SystemUI')
-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);
}
/**