Return 1f in Log(Ac/De)celerateInterpolators on a 1f input.
am: bd42ba73b2
* commit 'bd42ba73b23d0470b675af73a721fc1d019be39d':
Return 1f in Log(Ac/De)celerateInterpolators on a 1f input.
Change-Id: Iae6c49b04d4b360d3e89928643c7e96ad6caecf0
diff --git a/src/com/android/launcher3/LogAccelerateInterpolator.java b/src/com/android/launcher3/LogAccelerateInterpolator.java
index c3bbfa5..519d391 100644
--- a/src/com/android/launcher3/LogAccelerateInterpolator.java
+++ b/src/com/android/launcher3/LogAccelerateInterpolator.java
@@ -20,6 +20,8 @@
@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 4c5f6f0..7d95282 100644
--- a/src/com/android/launcher3/LogDecelerateInterpolator.java
+++ b/src/com/android/launcher3/LogDecelerateInterpolator.java
@@ -21,6 +21,8 @@
@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;
}
}