diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index ccf9c00380..07236282f3 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -3117,10 +3117,6 @@ public class Launcher extends Activity } oa.setDuration(getResources().getInteger(R.integer.config_folderExpandDuration)); oa.start(); - if (Utilities.isPowerSaverOn(this)) { - // Animations are disabled in battery saver mode, so just skip to the end state. - oa.end(); - } } private void shrinkAndFadeInFolderIcon(final FolderIcon fi, boolean animate) { 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; } }