mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 23:36:47 +00:00
Let spring take over the overscroll amount when swiping to first/last page.
Bug: 153747836 Change-Id: I8a883f648587b0cb4008df3b8176c9341162b8d1
This commit is contained in:
@@ -131,8 +131,8 @@
|
||||
<item name="dismiss_task_trans_x_damping_ratio" type="dimen" format="float">0.5</item>
|
||||
<item name="dismiss_task_trans_x_stiffness" type="dimen" format="float">1500</item>
|
||||
|
||||
<item name="horizontal_spring_damping_ratio" type="dimen" format="float">0.75</item>
|
||||
<item name="horizontal_spring_stiffness" type="dimen" format="float">200</item>
|
||||
<item name="horizontal_spring_damping_ratio" type="dimen" format="float">0.8</item>
|
||||
<item name="horizontal_spring_stiffness" type="dimen" format="float">400</item>
|
||||
|
||||
<item name="swipe_up_rect_scale_damping_ratio" type="dimen" format="float">0.75</item>
|
||||
<item name="swipe_up_rect_scale_stiffness" type="dimen" format="float">200</item>
|
||||
|
||||
@@ -1069,16 +1069,28 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the amount of overscroll caused by the spring in {@link OverScroller}.
|
||||
*/
|
||||
private int getSpringOverScroll(int amount) {
|
||||
if (mScroller.isSpringing()) {
|
||||
return amount < 0
|
||||
? mScroller.getCurrPos()
|
||||
: Math.max(0, mScroller.getCurrPos() - mMaxScroll);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
protected void dampedOverScroll(int amount) {
|
||||
mSpringOverScroll = amount;
|
||||
if (amount == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
int size = mOrientationHandler.getMeasuredSize(this);
|
||||
int overScrollAmount = OverScroll.dampedScroll(amount, size);
|
||||
mSpringOverScroll = overScrollAmount;
|
||||
if (mScroller.isSpringing()) {
|
||||
mSpringOverScroll = getSpringOverScroll(amount);
|
||||
invalidate();
|
||||
return;
|
||||
}
|
||||
@@ -1090,8 +1102,8 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
|
||||
}
|
||||
|
||||
protected void overScroll(int amount) {
|
||||
mSpringOverScroll = amount;
|
||||
if (mScroller.isSpringing()) {
|
||||
mSpringOverScroll = getSpringOverScroll(amount);
|
||||
invalidate();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -561,10 +561,11 @@ public class OverScroller {
|
||||
mStartTime = AnimationUtils.currentAnimationTimeMillis();
|
||||
mDuration = duration;
|
||||
|
||||
if (mSpring != null) {
|
||||
mSpring.cancel();
|
||||
}
|
||||
|
||||
if (mState == SPRING) {
|
||||
if (mSpring != null) {
|
||||
mSpring.cancel();
|
||||
}
|
||||
mSpring = new SpringAnimation(this, SPRING_PROPERTY);
|
||||
|
||||
ResourceProvider rp = DynamicResource.provider(mContext);
|
||||
@@ -576,9 +577,9 @@ public class OverScroller {
|
||||
mSpring.setStartVelocity(velocity);
|
||||
mSpring.animateToFinalPosition(mFinal);
|
||||
mSpring.addEndListener((animation, canceled, value, velocity1) -> {
|
||||
mSpring = null;
|
||||
finish();
|
||||
mState = SPLINE;
|
||||
mSpring = null;
|
||||
});
|
||||
}
|
||||
// Unused
|
||||
|
||||
Reference in New Issue
Block a user