Merge "Implement animateNavBarLongPress for stashed taskbar." into 24D1-dev

This commit is contained in:
Andy Wickham
2024-05-07 22:07:51 +00:00
committed by Android (Google) Code Review
2 changed files with 27 additions and 1 deletions
@@ -15,9 +15,12 @@
*/
package com.android.launcher3.taskbar;
import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.annotation.Nullable;
import android.content.Context;
import android.graphics.Rect;
@@ -111,4 +114,17 @@ public class StashedHandleView extends View {
setBackgroundColor(newColor);
}
}
/**
* Updates the handle scale.
*
* @param scale target scale to animate towards (starting from current scale)
* @param durationMs milliseconds for the animation to take
*/
public void animateScale(float scale, long durationMs) {
ObjectAnimator scaleAnim = ObjectAnimator.ofPropertyValuesHolder(this,
PropertyValuesHolder.ofFloat(SCALE_PROPERTY, scale));
scaleAnim.setDuration(durationMs).setAutoCancel(true);
scaleAnim.start();
}
}
@@ -57,6 +57,10 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT
public static final int ALPHA_INDEX_HIDDEN_WHILE_DREAMING = 3;
private static final int NUM_ALPHA_CHANNELS = 4;
// Values for long press animations, picked to most closely match navbar spec.
private static final float SCALE_TOUCH_ANIMATION_SHRINK = 0.85f;
private static final float SCALE_TOUCH_ANIMATION_EXPAND = 1.18f;
/**
* The SharedPreferences key for whether the stashed handle region is dark.
*/
@@ -324,7 +328,13 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT
@Override
public void animateNavBarLongPress(boolean isTouchDown, boolean shrink, long durationMs) {
// TODO(b/308693847): Animate similarly to NavigationHandle.java (SysUI).
float targetScale;
if (isTouchDown) {
targetScale = shrink ? SCALE_TOUCH_ANIMATION_SHRINK : SCALE_TOUCH_ANIMATION_EXPAND;
} else {
targetScale = 1f;
}
mStashedHandleView.animateScale(targetScale, durationMs);
}
@Override