diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index a28b835bd4..eb70b13620 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -35,7 +35,6 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.TransitionDrawable; import android.os.Build; import android.os.Parcelable; -import android.os.PowerManager; import android.support.v4.view.ViewCompat; import android.util.AttributeSet; import android.util.Log; @@ -2156,10 +2155,7 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler { // Animations are disabled in power save mode, causing the repeated animation to jump // spastically between beginning and end states. Since this looks bad, we don't repeat // the animation in power save mode. - PowerManager powerManager = (PowerManager) getContext() - .getSystemService(Context.POWER_SERVICE); - boolean powerSaverOn = Utilities.ATLEAST_LOLLIPOP && powerManager.isPowerSaveMode(); - if (!powerSaverOn) { + if (!Utilities.isPowerSaverOn(getContext())) { va.setRepeatMode(ValueAnimator.REVERSE); va.setRepeatCount(ValueAnimator.INFINITE); } diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 77d1649134..6ef8795994 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -3066,6 +3066,10 @@ 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/Utilities.java b/src/com/android/launcher3/Utilities.java index 9c81284885..b353f82cef 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -46,6 +46,7 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.PaintDrawable; import android.os.Build; import android.os.Bundle; +import android.os.PowerManager; import android.os.Process; import android.text.Spannable; import android.text.SpannableString; @@ -805,4 +806,10 @@ public final class Utilities { return context.getSharedPreferences( LauncherFiles.SHARED_PREFERENCES_KEY, Context.MODE_PRIVATE); } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public static boolean isPowerSaverOn(Context context) { + PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); + return ATLEAST_LOLLIPOP && powerManager.isPowerSaveMode(); + } }