diff --git a/src/com/android/launcher3/LogAccelerateInterpolator.java b/src/com/android/launcher3/LogAccelerateInterpolator.java index c3bbfa5364..519d391304 100644 --- a/src/com/android/launcher3/LogAccelerateInterpolator.java +++ b/src/com/android/launcher3/LogAccelerateInterpolator.java @@ -20,6 +20,8 @@ public class LogAccelerateInterpolator implements TimeInterpolator { @Override public float getInterpolation(float t) { - return 1 - computeLog(1 - t, mBase, mDrift) * mLogScale; + // Due to rounding issues, the interpolation doesn't quite reach 1 even though it should. + // To account for this, we short-circuit to return 1 if the input is 1. + return Float.compare(t, 1f) == 0 ? 1f : 1 - computeLog(1 - t, mBase, mDrift) * mLogScale; } } diff --git a/src/com/android/launcher3/LogDecelerateInterpolator.java b/src/com/android/launcher3/LogDecelerateInterpolator.java index 4c5f6f08c4..7d9528280f 100644 --- a/src/com/android/launcher3/LogDecelerateInterpolator.java +++ b/src/com/android/launcher3/LogDecelerateInterpolator.java @@ -21,6 +21,8 @@ public class LogDecelerateInterpolator implements TimeInterpolator { @Override public float getInterpolation(float t) { - return computeLog(t, mBase, mDrift) * mLogScale; + // Due to rounding issues, the interpolation doesn't quite reach 1 even though it should. + // To account for this, we short-circuit to return 1 if the input is 1. + return Float.compare(t, 1f) == 0 ? 1f : computeLog(t, mBase, mDrift) * mLogScale; } }