diff options
author | John Spurlock <jspurlock@google.com> | 2014-04-25 10:16:27 -0400 |
---|---|---|
committer | John Spurlock <jspurlock@google.com> | 2014-04-25 12:18:46 -0400 |
commit | 4e9d7c17974d864d9f47b6d6b447d4b8a524d7a9 (patch) | |
tree | c682dc669781cc2e5a6703b8149418e54d32f0bd /packages/SystemUI/src/com | |
parent | 7bfe9c450db1bafb0a5469b94afcc81ae003e13a (diff) | |
download | frameworks_base-4e9d7c17974d864d9f47b6d6b447d4b8a524d7a9.zip frameworks_base-4e9d7c17974d864d9f47b6d6b447d4b8a524d7a9.tar.gz frameworks_base-4e9d7c17974d864d9f47b6d6b447d4b8a524d7a9.tar.bz2 |
Delay settings panel visibility until touch slop exceeded.
Bug:14271219
Change-Id: Ic8f36670f8d56f74a383ca7a867b69c7568a7250
Diffstat (limited to 'packages/SystemUI/src/com')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java | 27 |
1 files changed, 17 insertions, 10 deletions
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 698aba4..f26fa79 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -375,6 +375,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode { private InterceptedNotifications mIntercepted; private VelocityTracker mSettingsTracker; private float mSettingsDownY; + private boolean mSettingsStarted; private boolean mSettingsCancelled; private boolean mSettingsClosing; private int mNotificationPadding; @@ -766,16 +767,16 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode { if (mSettingsTracker != null) { mSettingsTracker.addMovement(event); } - + final int slop = ViewConfiguration.get(mContext).getScaledTouchSlop(); if (event.getAction() == MotionEvent.ACTION_DOWN) { mSettingsTracker = VelocityTracker.obtain(); mSettingsDownY = event.getY(); mSettingsCancelled = false; + mSettingsStarted = false; mSettingsClosing = mFlipSettingsView.getVisibility() == View.VISIBLE; - mFlipSettingsView.setVisibility(View.VISIBLE); - mStackScroller.setVisibility(View.VISIBLE); - positionSettings(0); - if (!mSettingsClosing) { + if (mSettingsClosing) { + mStackScroller.setVisibility(View.VISIBLE); + } else { mFlipSettingsView.setTranslationY(-mNotificationPanel.getMeasuredHeight()); } dispatchSettingsEvent(event); @@ -784,8 +785,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode { final float dy = event.getY() - mSettingsDownY; final FlipperButton flipper = mOnKeyguard ? mKeyguardFlipper : mHeaderFlipper; final boolean inButton = flipper.inHolderBounds(event); - final int slop = ViewConfiguration.get(mContext).getScaledTouchSlop(); - final boolean qsTap = mSettingsClosing && Math.abs(dy) < slop; + final boolean qsTap = mSettingsClosing && Math.abs(dy) < slop; if (!qsTap && !inButton) { mSettingsTracker.computeCurrentVelocity(1000); final float vy = mSettingsTracker.getYVelocity(); @@ -801,10 +801,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode { dispatchSettingsEvent(event); } else if (mSettingsTracker != null && event.getAction() == MotionEvent.ACTION_MOVE) { final float dy = event.getY() - mSettingsDownY; - positionSettings(dy); if (mSettingsClosing) { - final boolean qsTap = - Math.abs(dy) < ViewConfiguration.get(mContext).getScaledTouchSlop(); + positionSettings(dy); + final boolean qsTap = Math.abs(dy) < slop; if (!mSettingsCancelled && !qsTap) { MotionEvent cancelEvent = MotionEvent.obtainNoHistory(event); cancelEvent.setAction(MotionEvent.ACTION_CANCEL); @@ -812,6 +811,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode { mSettingsCancelled = true; } } else { + if (!mSettingsStarted && dy > slop) { + mSettingsStarted = true; + mFlipSettingsView.setVisibility(View.VISIBLE); + mStackScroller.setVisibility(View.VISIBLE); + } + if (mSettingsStarted) { + positionSettings(dy); + } dispatchSettingsEvent(event); } } |