diff options
| author | Brian Attwell <brianattwell@google.com> | 2014-09-22 16:06:53 -0700 |
|---|---|---|
| committer | Brian Attwell <brianattwell@google.com> | 2014-09-22 16:31:41 -0700 |
| commit | 820dbff1b94d28b3c3570019df222179df29916f (patch) | |
| tree | 92ce06061cfbd3622010a8704025223a782a512a /src | |
| parent | 941299831b1ebc255bd97cf0634d8e8d38713a37 (diff) | |
| download | packages_apps_Contacts-820dbff1b94d28b3c3570019df222179df29916f.tar.gz packages_apps_Contacts-820dbff1b94d28b3c3570019df222179df29916f.tar.bz2 packages_apps_Contacts-820dbff1b94d28b3c3570019df222179df29916f.zip | |
Apply max scroll velocity to QC
Bug: 17446457
Change-Id: Iae79e9f41b44ce99c93024f725a5529286590e6b
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/contacts/widget/MultiShrinkScroller.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/com/android/contacts/widget/MultiShrinkScroller.java b/src/com/android/contacts/widget/MultiShrinkScroller.java index bba8a9368..1b4f1c33f 100644 --- a/src/com/android/contacts/widget/MultiShrinkScroller.java +++ b/src/com/android/contacts/widget/MultiShrinkScroller.java @@ -84,6 +84,11 @@ public class MultiShrinkScroller extends FrameLayout { */ private static final float INTERMEDIATE_HEADER_HEIGHT_RATIO = 0.5f; + /** + * Maximum velocity for flings in dips per second. Picked via non-rigorous experimentation. + */ + private static final float MAXIMUM_FLING_VELOCITY = 2000; + private float[] mLastEventPosition = { 0, 0 }; private VelocityTracker mVelocityTracker; private boolean mIsBeingDragged = false; @@ -242,7 +247,9 @@ public class MultiShrinkScroller extends FrameLayout { mScroller = new Scroller(context, sInterpolator); mTouchSlop = configuration.getScaledTouchSlop(); mMinimumVelocity = configuration.getScaledMinimumFlingVelocity(); - mMaximumVelocity = configuration.getScaledMaximumFlingVelocity(); + mMaximumVelocity = (int)TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, MAXIMUM_FLING_VELOCITY, + getResources().getDisplayMetrics()); mTransparentStartHeight = (int) getResources().getDimension( R.dimen.quickcontact_starting_empty_height); mToolbarElevation = getResources().getDimension( @@ -839,6 +846,9 @@ public class MultiShrinkScroller extends FrameLayout { } private void fling(float velocity) { + if (Math.abs(mMaximumVelocity) < Math.abs(velocity)) { + velocity = -mMaximumVelocity * Math.signum(velocity); + } // For reasons I do not understand, scrolling is less janky when maxY=Integer.MAX_VALUE // then when maxY is set to an actual value. mScroller.fling(0, getScroll(), 0, (int) velocity, 0, 0, -Integer.MAX_VALUE, |
