diff options
author | Jorim Jaggi <jjaggi@google.com> | 2014-09-12 18:53:00 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-09-12 18:53:00 +0000 |
commit | acf174bca72aab594d7f5fa309ec9f42f41a77bf (patch) | |
tree | f96c6e6f53cf8031f67075044c4e49e5eea40c11 | |
parent | f68b4d2b629e9589b2344b675abf6fd32c3a8d25 (diff) | |
parent | cffd540c1511cac42fa8ff98c2c3c20e7d5d51b5 (diff) | |
download | frameworks_base-acf174bca72aab594d7f5fa309ec9f42f41a77bf.zip frameworks_base-acf174bca72aab594d7f5fa309ec9f42f41a77bf.tar.gz frameworks_base-acf174bca72aab594d7f5fa309ec9f42f41a77bf.tar.bz2 |
am 733bf7bd: Merge "Attempt to fix invisible Keyguard #2" into lmp-dev
* commit '733bf7bd9a834df719ac10c79d7044a16e5af968':
Attempt to fix invisible Keyguard #2
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java | 7 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java | 16 |
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); } /** |