ADD week 5
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
package com.google.android.material.animation;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.TimeInterpolator;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.view.animation.AccelerateDecelerateInterpolator;
|
||||
import android.view.animation.AccelerateInterpolator;
|
||||
import android.view.animation.DecelerateInterpolator;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class MotionTiming {
|
||||
private long delay;
|
||||
private long duration;
|
||||
private TimeInterpolator interpolator;
|
||||
private int repeatCount;
|
||||
private int repeatMode;
|
||||
|
||||
public long getDelay() {
|
||||
return this.delay;
|
||||
}
|
||||
|
||||
public long getDuration() {
|
||||
return this.duration;
|
||||
}
|
||||
|
||||
public int getRepeatCount() {
|
||||
return this.repeatCount;
|
||||
}
|
||||
|
||||
public int getRepeatMode() {
|
||||
return this.repeatMode;
|
||||
}
|
||||
|
||||
public MotionTiming(long j, long j2) {
|
||||
this.interpolator = null;
|
||||
this.repeatCount = 0;
|
||||
this.repeatMode = 1;
|
||||
this.delay = j;
|
||||
this.duration = j2;
|
||||
}
|
||||
|
||||
public MotionTiming(long j, long j2, TimeInterpolator timeInterpolator) {
|
||||
this.repeatCount = 0;
|
||||
this.repeatMode = 1;
|
||||
this.delay = j;
|
||||
this.duration = j2;
|
||||
this.interpolator = timeInterpolator;
|
||||
}
|
||||
|
||||
public void apply(Animator animator) {
|
||||
animator.setStartDelay(getDelay());
|
||||
animator.setDuration(getDuration());
|
||||
animator.setInterpolator(getInterpolator());
|
||||
if (animator instanceof ValueAnimator) {
|
||||
ValueAnimator valueAnimator = (ValueAnimator) animator;
|
||||
valueAnimator.setRepeatCount(getRepeatCount());
|
||||
valueAnimator.setRepeatMode(getRepeatMode());
|
||||
}
|
||||
}
|
||||
|
||||
public TimeInterpolator getInterpolator() {
|
||||
TimeInterpolator timeInterpolator = this.interpolator;
|
||||
return timeInterpolator != null ? timeInterpolator : AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR;
|
||||
}
|
||||
|
||||
static MotionTiming createFromAnimator(ValueAnimator valueAnimator) {
|
||||
MotionTiming motionTiming = new MotionTiming(valueAnimator.getStartDelay(), valueAnimator.getDuration(), getInterpolatorCompat(valueAnimator));
|
||||
motionTiming.repeatCount = valueAnimator.getRepeatCount();
|
||||
motionTiming.repeatMode = valueAnimator.getRepeatMode();
|
||||
return motionTiming;
|
||||
}
|
||||
|
||||
private static TimeInterpolator getInterpolatorCompat(ValueAnimator valueAnimator) {
|
||||
TimeInterpolator interpolator = valueAnimator.getInterpolator();
|
||||
if ((interpolator instanceof AccelerateDecelerateInterpolator) || interpolator == null) {
|
||||
return AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR;
|
||||
}
|
||||
if (interpolator instanceof AccelerateInterpolator) {
|
||||
return AnimationUtils.FAST_OUT_LINEAR_IN_INTERPOLATOR;
|
||||
}
|
||||
return interpolator instanceof DecelerateInterpolator ? AnimationUtils.LINEAR_OUT_SLOW_IN_INTERPOLATOR : interpolator;
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (!(obj instanceof MotionTiming)) {
|
||||
return false;
|
||||
}
|
||||
MotionTiming motionTiming = (MotionTiming) obj;
|
||||
if (getDelay() == motionTiming.getDelay() && getDuration() == motionTiming.getDuration() && getRepeatCount() == motionTiming.getRepeatCount() && getRepeatMode() == motionTiming.getRepeatMode()) {
|
||||
return getInterpolator().getClass().equals(motionTiming.getInterpolator().getClass());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return (((((((((int) (getDelay() ^ (getDelay() >>> 32))) * 31) + ((int) (getDuration() ^ (getDuration() >>> 32)))) * 31) + getInterpolator().getClass().hashCode()) * 31) + getRepeatCount()) * 31) + getRepeatMode();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "\n" + getClass().getName() + '{' + Integer.toHexString(System.identityHashCode(this)) + " delay: " + getDelay() + " duration: " + getDuration() + " interpolator: " + getInterpolator().getClass() + " repeatCount: " + getRepeatCount() + " repeatMode: " + getRepeatMode() + "}\n";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user