Skip state animation if animations are disabled
> Also update the animation disabled check to use new-API
Bug: 118678948
Change-Id: Ib709844e34bdb7e369b368a7c33f2e8ff120024b
diff --git a/src/com/android/launcher3/AbstractFloatingView.java b/src/com/android/launcher3/AbstractFloatingView.java
index 3cb6ba6..d6f992f 100644
--- a/src/com/android/launcher3/AbstractFloatingView.java
+++ b/src/com/android/launcher3/AbstractFloatingView.java
@@ -30,7 +30,6 @@
import android.util.Pair;
import android.view.MotionEvent;
import android.view.View;
-import android.view.ViewGroup;
import android.widget.LinearLayout;
import androidx.annotation.IntDef;
@@ -120,7 +119,7 @@
}
public final void close(boolean animate) {
- animate &= !Utilities.isPowerSaverPreventingAnimation(getContext());
+ animate &= Utilities.areAnimationsEnabled(getContext());
if (mIsOpen) {
BaseActivity.fromContext(getContext()).getUserEventDispatcher()
.resetElapsedContainerMillis("container closed");
diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java
index a117cfd..9d9a639 100644
--- a/src/com/android/launcher3/CellLayout.java
+++ b/src/com/android/launcher3/CellLayout.java
@@ -1983,7 +1983,7 @@
// 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.
- if (!Utilities.isPowerSaverPreventingAnimation(getContext())) {
+ if (Utilities.areAnimationsEnabled(getContext())) {
va.setRepeatMode(ValueAnimator.REVERSE);
va.setRepeatCount(ValueAnimator.INFINITE);
}
diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java
index eff0619..209578d 100644
--- a/src/com/android/launcher3/LauncherStateManager.java
+++ b/src/com/android/launcher3/LauncherStateManager.java
@@ -222,6 +222,7 @@
private void goToState(LauncherState state, boolean animated, long delay,
final Runnable onCompleteRunnable) {
+ animated &= Utilities.areAnimationsEnabled(mLauncher);
if (mLauncher.isInState(state)) {
if (mConfig.mCurrentAnimation == null) {
// Run any queued runnable
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java
index fd4b508..7598450 100644
--- a/src/com/android/launcher3/Utilities.java
+++ b/src/com/android/launcher3/Utilities.java
@@ -19,6 +19,7 @@
import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP;
import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_HOTSEAT;
+import android.animation.ValueAnimator;
import android.app.ActivityManager;
import android.app.WallpaperManager;
import android.content.BroadcastReceiver;
@@ -517,12 +518,10 @@
LauncherFiles.DEVICE_PREFERENCES_KEY, Context.MODE_PRIVATE);
}
- public static boolean isPowerSaverPreventingAnimation(Context context) {
- if (ATLEAST_P) {
- // Battery saver mode no longer prevents animations.
- return false;
- }
- return context.getSystemService(PowerManager.class).isPowerSaveMode();
+ public static boolean areAnimationsEnabled(Context context) {
+ return ATLEAST_OREO
+ ? ValueAnimator.areAnimatorsEnabled()
+ : !context.getSystemService(PowerManager.class).isPowerSaveMode();
}
public static boolean isWallpaperAllowed(Context context) {