Fixing Spline parameters when changing duration/position of Overscroller

> This allows the scroller to be used in Launcher3 instead of a custom copy

Bug: 183966408
Test: Verified with Launcher3
Change-Id: I1c945774d0323fabcf4bfd5a02c2eaf8e95a218d
This commit is contained in:
Sunny Goyal
2021-03-30 00:00:46 -07:00
parent 04e05de6da
commit 98d4e403cd

View File

@@ -232,11 +232,8 @@ public class OverScroller {
*
* @return The duration of the scroll in milliseconds.
*
* @hide Pending removal once nothing depends on it
* @deprecated OverScrollers don't necessarily have a fixed duration.
* This function will lie to the best of its ability.
* @hide
*/
@Deprecated
public final int getDuration() {
return Math.max(mScrollerX.mDuration, mScrollerY.mDuration);
}
@@ -249,13 +246,8 @@ public class OverScroller {
* @see #setFinalX(int)
* @see #setFinalY(int)
*
* @hide Pending removal once nothing depends on it
* @deprecated OverScrollers don't necessarily have a fixed duration.
* Instead of setting a new final position and extending
* the duration of an existing scroll, use startScroll
* to begin a new animation.
* @hide
*/
@Deprecated
@UnsupportedAppUsage
public void extendDuration(int extend) {
mScrollerX.extendDuration(extend);
@@ -269,13 +261,8 @@ public class OverScroller {
* @see #extendDuration(int)
* @see #setFinalY(int)
*
* @hide Pending removal once nothing depends on it
* @deprecated OverScroller's final position may change during an animation.
* Instead of setting a new final position and extending
* the duration of an existing scroll, use startScroll
* to begin a new animation.
* @hide
*/
@Deprecated
public void setFinalX(int newX) {
mScrollerX.setFinalPosition(newX);
}
@@ -287,13 +274,8 @@ public class OverScroller {
* @see #extendDuration(int)
* @see #setFinalX(int)
*
* @hide Pending removal once nothing depends on it
* @deprecated OverScroller's final position may change during an animation.
* Instead of setting a new final position and extending
* the duration of an existing scroll, use startScroll
* to begin a new animation.
* @hide
*/
@Deprecated
public void setFinalY(int newY) {
mScrollerY.setFinalPosition(newY);
}
@@ -710,13 +692,14 @@ public class OverScroller {
void setFinalPosition(int position) {
mFinal = position;
mSplineDistance = mFinal - mStart;
mFinished = false;
}
void extendDuration(int extend) {
final long time = AnimationUtils.currentAnimationTimeMillis();
final int elapsedTime = (int) (time - mStartTime);
mDuration = elapsedTime + extend;
mDuration = mSplineDuration = elapsedTime + extend;
mFinished = false;
}