Skip to content

Commit

Permalink
[TimePicker] Update motion specs
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 472531602
  • Loading branch information
imhappi authored and afohrman committed Sep 8, 2022
1 parent 7c56473 commit a4f6a1e
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions lib/java/com/google/android/material/timepicker/ClockHandView.java
Expand Up @@ -24,6 +24,7 @@

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
import android.annotation.SuppressLint;
import android.content.Context;
Expand All @@ -42,16 +43,20 @@
import androidx.annotation.Nullable;
import androidx.annotation.Px;
import androidx.core.view.ViewCompat;
import com.google.android.material.animation.AnimationUtils;
import com.google.android.material.internal.ViewUtils;
import com.google.android.material.math.MathUtils;
import com.google.android.material.motion.MotionUtils;
import com.google.android.material.timepicker.RadialViewGroup.Level;
import java.util.ArrayList;
import java.util.List;

/** A Class to draw the hand on a Clock face. */
class ClockHandView extends View {

private static final int ANIMATION_DURATION = 200;
private static final int DEFAULT_ANIMATION_DURATION = 200;
private final int animationDuration;
private final TimeInterpolator animationInterpolator;
private final ValueAnimator rotationAnimator = new ValueAnimator();
private boolean animatingOnTouchUp;
private float downX;
Expand Down Expand Up @@ -108,6 +113,14 @@ public ClockHandView(Context context, @Nullable AttributeSet attrs, int defStyle
defStyleAttr,
R.style.Widget_MaterialComponents_TimePicker_Clock);

animationDuration =
MotionUtils.resolveThemeDuration(
context, R.attr.motionDurationLong2, DEFAULT_ANIMATION_DURATION);
animationInterpolator =
MotionUtils.resolveThemeInterpolator(
context,
R.attr.motionEasingEmphasizedInterpolator,
AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR);
circleRadius = a.getDimensionPixelSize(R.styleable.ClockHandView_materialCircleRadius, 0);
selectorRadius = a.getDimensionPixelSize(R.styleable.ClockHandView_selectorSize, 0);
Resources res = getResources();
Expand Down Expand Up @@ -148,7 +161,8 @@ public void setHandRotation(@FloatRange(from = 0f, to = 360f) float degrees, boo

Pair<Float, Float> animationValues = getValuesForAnimation(degrees);
rotationAnimator.setFloatValues(animationValues.first, animationValues.second);
rotationAnimator.setDuration(ANIMATION_DURATION);
rotationAnimator.setDuration(animationDuration);
rotationAnimator.setInterpolator(animationInterpolator);
rotationAnimator.addUpdateListener(
animation -> {
float animatedValue = (float) animation.getAnimatedValue();
Expand Down

0 comments on commit a4f6a1e

Please sign in to comment.