diff options
author | Jorim Jaggi <jjaggi@google.com> | 2014-09-12 17:44:57 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-09-12 17:44:59 +0000 |
commit | cffd540c1511cac42fa8ff98c2c3c20e7d5d51b5 (patch) | |
tree | d0a617a8d93c99e654ece38c91e9c501b1c98c7e /packages/SystemUI | |
parent | 1aec711b2e7c2e43fdc2069be229cfd3c9ddba16 (diff) | |
parent | d41083ad06f63e335a1d1a1d5050ed3646f4fd35 (diff) | |
download | frameworks_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.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); } /** |