Unifying overscroll btw phone and tablet
-> Using separate assets for removing and uninstalling
Change-Id: I183967c3ca482531ae28f71cd9053b673c6a8d03
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index ad88a89..14ef53f 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -129,6 +129,11 @@
protected int mUnboundedScrollX;
protected int[] mTempVisiblePagesRange = new int[2];
+ // mOverScrollX is equal to mScrollX when we're within the normal scroll range. Otherwise
+ // it is equal to the scaled overscroll position. We use a separate value so as to prevent
+ // the screens from continuing to translate beyond the normal bounds.
+ protected int mOverScrollX;
+
// parameter that adjusts the layout to be optimized for pages with that scale factor
protected float mLayoutScale = 1.0f;
@@ -377,6 +382,7 @@
overScroll(x - mMaxScrollX);
}
} else {
+ mOverScrollX = x;
super.scrollTo(x, y);
}
@@ -730,7 +736,9 @@
@Override
protected void dispatchDraw(Canvas canvas) {
int halfScreenSize = getMeasuredWidth() / 2;
- int screenCenter = mScrollX + halfScreenSize;
+ // mOverScrollX is equal to mScrollX when we're within the normal scroll range. Otherwise
+ // it is equal to the scaled overscroll position.
+ int screenCenter = mOverScrollX + halfScreenSize;
if (screenCenter != mLastScreenCenter || mForceScreenScrolled) {
screenScrolled(screenCenter);
@@ -1077,9 +1085,11 @@
int overScrollAmount = (int) Math.round(f * screenSize);
if (amount < 0) {
- mScrollX = overScrollAmount;
+ mOverScrollX = overScrollAmount;
+ mScrollX = 0;
} else {
- mScrollX = mMaxScrollX + overScrollAmount;
+ mOverScrollX = mMaxScrollX + overScrollAmount;
+ mScrollX = mMaxScrollX;
}
invalidate();
}
@@ -1099,9 +1109,11 @@
int overScrollAmount = (int) Math.round(OVERSCROLL_DAMP_FACTOR * f * screenSize);
if (amount < 0) {
- mScrollX = overScrollAmount;
+ mOverScrollX = overScrollAmount;
+ mScrollX = 0;
} else {
- mScrollX = mMaxScrollX + overScrollAmount;
+ mOverScrollX = mMaxScrollX + overScrollAmount;
+ mScrollX = mMaxScrollX;
}
invalidate();
}