mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 01:16:49 +00:00
Don't repeat ReorderPreviewAnimation for folders/widgets in power save mode.
Since power save mode (introduced in Lollipop, also known as battery saver) disables animations, the ReorderPreviewAnimation looks bad - instead of displaced folders subtly and smoothly moving up and down, they violently jump between up and down positions in rapid succession. Setting the animation to not repeat in this case avoids this issue. Bug: 23675090 Change-Id: I8149610af75e7023dca28a942b3447228083cd33
This commit is contained in:
@@ -35,6 +35,7 @@ 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;
|
||||
@@ -45,6 +46,7 @@ import android.view.ViewDebug;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
import android.view.animation.DecelerateInterpolator;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.android.launcher3.BubbleTextView.BubbleTextShadowHandler;
|
||||
import com.android.launcher3.FolderIcon.FolderRingAnimator;
|
||||
@@ -2141,8 +2143,18 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler {
|
||||
}
|
||||
ValueAnimator va = LauncherAnimUtils.ofFloat(child, 0f, 1f);
|
||||
a = va;
|
||||
va.setRepeatMode(ValueAnimator.REVERSE);
|
||||
va.setRepeatCount(ValueAnimator.INFINITE);
|
||||
|
||||
// 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) {
|
||||
va.setRepeatMode(ValueAnimator.REVERSE);
|
||||
va.setRepeatCount(ValueAnimator.INFINITE);
|
||||
}
|
||||
|
||||
va.setDuration(mode == MODE_HINT ? HINT_DURATION : PREVIEW_DURATION);
|
||||
va.setStartDelay((int) (Math.random() * 60));
|
||||
va.addUpdateListener(new AnimatorUpdateListener() {
|
||||
|
||||
Reference in New Issue
Block a user