diff options
author | Selim Cinek <cinek@google.com> | 2015-04-29 15:36:56 -0700 |
---|---|---|
committer | Selim Cinek <cinek@google.com> | 2015-05-05 14:53:09 -0700 |
commit | 173f2d0fad8dc889beefff67be96ec865465d1e0 (patch) | |
tree | 602362e48b63fb2cc91b3189a337c1ae2b0d70fe /packages | |
parent | 8d5727f6e93bec98f7de622583d0c2b70fa750b6 (diff) | |
download | frameworks_base-173f2d0fad8dc889beefff67be96ec865465d1e0.zip frameworks_base-173f2d0fad8dc889beefff67be96ec865465d1e0.tar.gz frameworks_base-173f2d0fad8dc889beefff67be96ec865465d1e0.tar.bz2 |
Enforcing the touchslop now when flinging open before intercepting
This could lead to clicks on notifications not being recognized when opening.
Bug: 19228079
Change-Id: I02c856dd885c8e9bb228a5b20e975e27dba60d12
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java | 12 |
1 files changed, 8 insertions, 4 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 85f312c..38812ce 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -46,6 +46,7 @@ import java.io.PrintWriter; public abstract class PanelView extends FrameLayout { public static final boolean DEBUG = PanelBar.DEBUG; public static final String TAG = PanelView.class.getSimpleName(); + private final void logf(String fmt, Object... args) { Log.v(TAG, (mViewName != null ? (mViewName + ": ") : "") + String.format(fmt, args)); } @@ -77,6 +78,7 @@ public abstract class PanelView extends FrameLayout { private boolean mTouchStartedInEmptyArea; private boolean mMotionAborted; private boolean mUpwardsWhenTresholdReached; + private boolean mAnimatingOnDown; private ValueAnimator mHeightAnimator; private ObjectAnimator mPeekAnimator; @@ -459,8 +461,8 @@ public abstract class PanelView extends FrameLayout { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: mStatusBar.userActivity(); - if (mHeightAnimator != null && !mHintAnimationRunning || - mPeekPending || mPeekAnimator != null) { + mAnimatingOnDown = mHeightAnimator != null; + if (mAnimatingOnDown && mClosing && !mHintAnimationRunning || mPeekPending || mPeekAnimator != null) { cancelHeightAnimator(); cancelPeek(); mTouchSlopExceeded = true; @@ -501,8 +503,10 @@ public abstract class PanelView extends FrameLayout { case MotionEvent.ACTION_MOVE: final float h = y - mInitialTouchY; trackMovement(event); - if (scrolledToBottom || mTouchStartedInEmptyArea) { - if (h < -mTouchSlop && h < -Math.abs(x - mInitialTouchX)) { + if (scrolledToBottom || mTouchStartedInEmptyArea || mAnimatingOnDown) { + float hAbs = Math.abs(h); + if ((h < -mTouchSlop || (mAnimatingOnDown && hAbs > mTouchSlop)) + && hAbs > Math.abs(x - mInitialTouchX)) { cancelHeightAnimator(); startExpandMotion(x, y, true /* startTracking */, mExpandedHeight); return true; |