Change page snapping logic for large screen devices
Use 15% of the screen width instead of 40% of the page
width currently used for phones.
Test: try page snapping on Launcher home
Bug: 213305066
Change-Id: I6a525100bf942c5089f580a27250c425ca95cf00
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 1eb493b..f5ac359 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -1195,8 +1195,8 @@
mAllowOverScroll = enable;
}
- protected float getSignificantMoveThreshold() {
- return SIGNIFICANT_MOVE_THRESHOLD;
+ protected boolean isSignificantMove(float absoluteDelta, int pageOrientedSize) {
+ return absoluteDelta > pageOrientedSize * SIGNIFICANT_MOVE_THRESHOLD;
}
@Override
@@ -1322,13 +1322,12 @@
velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
int velocity = (int) mOrientationHandler.getPrimaryVelocity(velocityTracker,
- mActivePointerId);
+ mActivePointerId);
float delta = primaryDirection - mDownMotionPrimary;
- delta /= mOrientationHandler.getPrimaryScale(this);
- int pageOrientedSize = mOrientationHandler.getMeasuredSize(getPageAt(mCurrentPage));
-
- boolean isSignificantMove = Math.abs(delta)
- > pageOrientedSize * getSignificantMoveThreshold();
+ int pageOrientedSize = (int) (mOrientationHandler.getMeasuredSize(
+ getPageAt(mCurrentPage))
+ * mOrientationHandler.getPrimaryScale(this));
+ boolean isSignificantMove = isSignificantMove(Math.abs(delta), pageOrientedSize);
mTotalMotion += Math.abs(mLastMotion + mLastMotionRemainder - primaryDirection);
boolean passedSlop = mAllowEasyFling || mTotalMotion > mPageSlop;