From 112ac95571c9b81921a912d67b9c369fb523a235 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Thu, 12 Nov 2015 12:31:50 -0800 Subject: [PATCH] Skip to the end of the folder open animation in battery saver mode. Bug: 25666809 Change-Id: I867d56a34fc5e0ad6aaabd8b6df47be05ec31966 --- src/com/android/launcher3/CellLayout.java | 6 +----- src/com/android/launcher3/Launcher.java | 4 ++++ src/com/android/launcher3/Utilities.java | 7 +++++++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index 5f64a829be..0a2a01728e 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -36,7 +36,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; @@ -2183,10 +2182,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 9824e3e3ed..658272f857 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -3125,6 +3125,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 d14d056fed..735cbebb73 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; @@ -759,4 +760,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(); + } }