ADD week 5
This commit is contained in:
		| @@ -0,0 +1,13 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface AnimatableView { | ||||
|  | ||||
|     public interface Listener { | ||||
|         void onAnimationEnd(); | ||||
|     } | ||||
|  | ||||
|     void startAnimation(Listener listener); | ||||
|  | ||||
|     void stopAnimation(); | ||||
| } | ||||
| @@ -0,0 +1,29 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| import android.animation.TimeInterpolator; | ||||
| import android.view.animation.DecelerateInterpolator; | ||||
| import android.view.animation.LinearInterpolator; | ||||
| import androidx.interpolator.view.animation.FastOutLinearInInterpolator; | ||||
| import androidx.interpolator.view.animation.FastOutSlowInInterpolator; | ||||
| import androidx.interpolator.view.animation.LinearOutSlowInInterpolator; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class AnimationUtils { | ||||
|     public static final TimeInterpolator LINEAR_INTERPOLATOR = new LinearInterpolator(); | ||||
|     public static final TimeInterpolator FAST_OUT_SLOW_IN_INTERPOLATOR = new FastOutSlowInInterpolator(); | ||||
|     public static final TimeInterpolator FAST_OUT_LINEAR_IN_INTERPOLATOR = new FastOutLinearInInterpolator(); | ||||
|     public static final TimeInterpolator LINEAR_OUT_SLOW_IN_INTERPOLATOR = new LinearOutSlowInInterpolator(); | ||||
|     public static final TimeInterpolator DECELERATE_INTERPOLATOR = new DecelerateInterpolator(); | ||||
|  | ||||
|     public static float lerp(float f, float f2, float f3) { | ||||
|         return f + (f3 * (f2 - f)); | ||||
|     } | ||||
|  | ||||
|     public static int lerp(int i, int i2, float f) { | ||||
|         return i + Math.round(f * (i2 - i)); | ||||
|     } | ||||
|  | ||||
|     public static float lerp(float f, float f2, float f3, float f4, float f5) { | ||||
|         return f5 <= f3 ? f : f5 >= f4 ? f2 : lerp(f, f2, (f5 - f3) / (f4 - f3)); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,22 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| import android.animation.Animator; | ||||
| import android.animation.AnimatorSet; | ||||
| import android.animation.ValueAnimator; | ||||
| import java.util.List; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class AnimatorSetCompat { | ||||
|     public static void playTogether(AnimatorSet animatorSet, List<Animator> list) { | ||||
|         int size = list.size(); | ||||
|         long j = 0; | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             Animator animator = list.get(i); | ||||
|             j = Math.max(j, animator.getStartDelay() + animator.getDuration()); | ||||
|         } | ||||
|         ValueAnimator ofInt = ValueAnimator.ofInt(0, 0); | ||||
|         ofInt.setDuration(j); | ||||
|         list.add(0, ofInt); | ||||
|         animatorSet.playTogether(list); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,27 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| import android.animation.TypeEvaluator; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class ArgbEvaluatorCompat implements TypeEvaluator<Integer> { | ||||
|     private static final ArgbEvaluatorCompat instance = new ArgbEvaluatorCompat(); | ||||
|  | ||||
|     public static ArgbEvaluatorCompat getInstance() { | ||||
|         return instance; | ||||
|     } | ||||
|  | ||||
|     @Override // android.animation.TypeEvaluator | ||||
|     public Integer evaluate(float f, Integer num, Integer num2) { | ||||
|         int intValue = num.intValue(); | ||||
|         float f2 = ((intValue >> 24) & 255) / 255.0f; | ||||
|         int intValue2 = num2.intValue(); | ||||
|         float pow = (float) Math.pow(((intValue >> 16) & 255) / 255.0f, 2.2d); | ||||
|         float pow2 = (float) Math.pow(((intValue >> 8) & 255) / 255.0f, 2.2d); | ||||
|         float pow3 = (float) Math.pow((intValue & 255) / 255.0f, 2.2d); | ||||
|         float pow4 = (float) Math.pow(((intValue2 >> 16) & 255) / 255.0f, 2.2d); | ||||
|         float f3 = f2 + (((((intValue2 >> 24) & 255) / 255.0f) - f2) * f); | ||||
|         float pow5 = pow2 + ((((float) Math.pow(((intValue2 >> 8) & 255) / 255.0f, 2.2d)) - pow2) * f); | ||||
|         float pow6 = pow3 + (f * (((float) Math.pow((intValue2 & 255) / 255.0f, 2.2d)) - pow3)); | ||||
|         return Integer.valueOf((Math.round(((float) Math.pow(pow + ((pow4 - pow) * f), 0.45454545454545453d)) * 255.0f) << 16) | (Math.round(f3 * 255.0f) << 24) | (Math.round(((float) Math.pow(pow5, 0.45454545454545453d)) * 255.0f) << 8) | Math.round(((float) Math.pow(pow6, 0.45454545454545453d)) * 255.0f)); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,30 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| import android.util.Property; | ||||
| import android.view.ViewGroup; | ||||
| import com.google.android.material.R; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class ChildrenAlphaProperty extends Property<ViewGroup, Float> { | ||||
|     public static final Property<ViewGroup, Float> CHILDREN_ALPHA = new ChildrenAlphaProperty("childrenAlpha"); | ||||
|  | ||||
|     private ChildrenAlphaProperty(String str) { | ||||
|         super(Float.class, str); | ||||
|     } | ||||
|  | ||||
|     @Override // android.util.Property | ||||
|     public Float get(ViewGroup viewGroup) { | ||||
|         Float f = (Float) viewGroup.getTag(R.id.mtrl_internal_children_alpha_tag); | ||||
|         return f != null ? f : Float.valueOf(1.0f); | ||||
|     } | ||||
|  | ||||
|     @Override // android.util.Property | ||||
|     public void set(ViewGroup viewGroup, Float f) { | ||||
|         float floatValue = f.floatValue(); | ||||
|         viewGroup.setTag(R.id.mtrl_internal_children_alpha_tag, Float.valueOf(floatValue)); | ||||
|         int childCount = viewGroup.getChildCount(); | ||||
|         for (int i = 0; i < childCount; i++) { | ||||
|             viewGroup.getChildAt(i).setAlpha(floatValue); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,26 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.Property; | ||||
| import java.util.WeakHashMap; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class DrawableAlphaProperty extends Property<Drawable, Integer> { | ||||
|     public static final Property<Drawable, Integer> DRAWABLE_ALPHA_COMPAT = new DrawableAlphaProperty(); | ||||
|     private final WeakHashMap<Drawable, Integer> alphaCache; | ||||
|  | ||||
|     private DrawableAlphaProperty() { | ||||
|         super(Integer.class, "drawableAlphaCompat"); | ||||
|         this.alphaCache = new WeakHashMap<>(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.util.Property | ||||
|     public Integer get(Drawable drawable) { | ||||
|         return Integer.valueOf(drawable.getAlpha()); | ||||
|     } | ||||
|  | ||||
|     @Override // android.util.Property | ||||
|     public void set(Drawable drawable, Integer num) { | ||||
|         drawable.setAlpha(num.intValue()); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,26 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| import android.graphics.Matrix; | ||||
| import android.util.Property; | ||||
| import android.widget.ImageView; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class ImageMatrixProperty extends Property<ImageView, Matrix> { | ||||
|     private final Matrix matrix; | ||||
|  | ||||
|     public ImageMatrixProperty() { | ||||
|         super(Matrix.class, "imageMatrixProperty"); | ||||
|         this.matrix = new Matrix(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.util.Property | ||||
|     public void set(ImageView imageView, Matrix matrix) { | ||||
|         imageView.setImageMatrix(matrix); | ||||
|     } | ||||
|  | ||||
|     @Override // android.util.Property | ||||
|     public Matrix get(ImageView imageView) { | ||||
|         this.matrix.set(imageView.getImageMatrix()); | ||||
|         return this.matrix; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,25 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| import android.animation.TypeEvaluator; | ||||
| import android.graphics.Matrix; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class MatrixEvaluator implements TypeEvaluator<Matrix> { | ||||
|     private final float[] tempStartValues = new float[9]; | ||||
|     private final float[] tempEndValues = new float[9]; | ||||
|     private final Matrix tempMatrix = new Matrix(); | ||||
|  | ||||
|     @Override // android.animation.TypeEvaluator | ||||
|     public Matrix evaluate(float f, Matrix matrix, Matrix matrix2) { | ||||
|         matrix.getValues(this.tempStartValues); | ||||
|         matrix2.getValues(this.tempEndValues); | ||||
|         for (int i = 0; i < 9; i++) { | ||||
|             float[] fArr = this.tempEndValues; | ||||
|             float f2 = fArr[i]; | ||||
|             float f3 = this.tempStartValues[i]; | ||||
|             fArr[i] = f3 + ((f2 - f3) * f); | ||||
|         } | ||||
|         this.tempMatrix.setValues(this.tempEndValues); | ||||
|         return this.tempMatrix; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,139 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| import android.animation.Animator; | ||||
| import android.animation.AnimatorInflater; | ||||
| import android.animation.AnimatorSet; | ||||
| import android.animation.ObjectAnimator; | ||||
| import android.animation.PropertyValuesHolder; | ||||
| import android.content.Context; | ||||
| import android.content.res.TypedArray; | ||||
| import android.util.Log; | ||||
| import android.util.Property; | ||||
| import androidx.collection.SimpleArrayMap; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class MotionSpec { | ||||
|     private static final String TAG = "MotionSpec"; | ||||
|     private final SimpleArrayMap<String, MotionTiming> timings = new SimpleArrayMap<>(); | ||||
|     private final SimpleArrayMap<String, PropertyValuesHolder[]> propertyValues = new SimpleArrayMap<>(); | ||||
|  | ||||
|     public boolean hasTiming(String str) { | ||||
|         return this.timings.get(str) != null; | ||||
|     } | ||||
|  | ||||
|     public MotionTiming getTiming(String str) { | ||||
|         if (!hasTiming(str)) { | ||||
|             throw new IllegalArgumentException(); | ||||
|         } | ||||
|         return this.timings.get(str); | ||||
|     } | ||||
|  | ||||
|     public void setTiming(String str, MotionTiming motionTiming) { | ||||
|         this.timings.put(str, motionTiming); | ||||
|     } | ||||
|  | ||||
|     public boolean hasPropertyValues(String str) { | ||||
|         return this.propertyValues.get(str) != null; | ||||
|     } | ||||
|  | ||||
|     public PropertyValuesHolder[] getPropertyValues(String str) { | ||||
|         if (!hasPropertyValues(str)) { | ||||
|             throw new IllegalArgumentException(); | ||||
|         } | ||||
|         return clonePropertyValuesHolder(this.propertyValues.get(str)); | ||||
|     } | ||||
|  | ||||
|     public void setPropertyValues(String str, PropertyValuesHolder[] propertyValuesHolderArr) { | ||||
|         this.propertyValues.put(str, propertyValuesHolderArr); | ||||
|     } | ||||
|  | ||||
|     private PropertyValuesHolder[] clonePropertyValuesHolder(PropertyValuesHolder[] propertyValuesHolderArr) { | ||||
|         PropertyValuesHolder[] propertyValuesHolderArr2 = new PropertyValuesHolder[propertyValuesHolderArr.length]; | ||||
|         for (int i = 0; i < propertyValuesHolderArr.length; i++) { | ||||
|             propertyValuesHolderArr2[i] = propertyValuesHolderArr[i].clone(); | ||||
|         } | ||||
|         return propertyValuesHolderArr2; | ||||
|     } | ||||
|  | ||||
|     public <T> ObjectAnimator getAnimator(String str, T t, Property<T, ?> property) { | ||||
|         ObjectAnimator ofPropertyValuesHolder = ObjectAnimator.ofPropertyValuesHolder(t, getPropertyValues(str)); | ||||
|         ofPropertyValuesHolder.setProperty(property); | ||||
|         getTiming(str).apply(ofPropertyValuesHolder); | ||||
|         return ofPropertyValuesHolder; | ||||
|     } | ||||
|  | ||||
|     public long getTotalDuration() { | ||||
|         int size = this.timings.size(); | ||||
|         long j = 0; | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             MotionTiming valueAt = this.timings.valueAt(i); | ||||
|             j = Math.max(j, valueAt.getDelay() + valueAt.getDuration()); | ||||
|         } | ||||
|         return j; | ||||
|     } | ||||
|  | ||||
|     public static MotionSpec createFromAttribute(Context context, TypedArray typedArray, int i) { | ||||
|         int resourceId; | ||||
|         if (!typedArray.hasValue(i) || (resourceId = typedArray.getResourceId(i, 0)) == 0) { | ||||
|             return null; | ||||
|         } | ||||
|         return createFromResource(context, resourceId); | ||||
|     } | ||||
|  | ||||
|     public static MotionSpec createFromResource(Context context, int i) { | ||||
|         try { | ||||
|             Animator loadAnimator = AnimatorInflater.loadAnimator(context, i); | ||||
|             if (loadAnimator instanceof AnimatorSet) { | ||||
|                 return createSpecFromAnimators(((AnimatorSet) loadAnimator).getChildAnimations()); | ||||
|             } | ||||
|             if (loadAnimator == null) { | ||||
|                 return null; | ||||
|             } | ||||
|             ArrayList arrayList = new ArrayList(); | ||||
|             arrayList.add(loadAnimator); | ||||
|             return createSpecFromAnimators(arrayList); | ||||
|         } catch (Exception e) { | ||||
|             Log.w(TAG, "Can't load animation resource ID #0x" + Integer.toHexString(i), e); | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static MotionSpec createSpecFromAnimators(List<Animator> list) { | ||||
|         MotionSpec motionSpec = new MotionSpec(); | ||||
|         int size = list.size(); | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             addInfoFromAnimator(motionSpec, list.get(i)); | ||||
|         } | ||||
|         return motionSpec; | ||||
|     } | ||||
|  | ||||
|     private static void addInfoFromAnimator(MotionSpec motionSpec, Animator animator) { | ||||
|         if (animator instanceof ObjectAnimator) { | ||||
|             ObjectAnimator objectAnimator = (ObjectAnimator) animator; | ||||
|             motionSpec.setPropertyValues(objectAnimator.getPropertyName(), objectAnimator.getValues()); | ||||
|             motionSpec.setTiming(objectAnimator.getPropertyName(), MotionTiming.createFromAnimator(objectAnimator)); | ||||
|         } else { | ||||
|             throw new IllegalArgumentException("Animator must be an ObjectAnimator: " + animator); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) { | ||||
|             return true; | ||||
|         } | ||||
|         if (obj instanceof MotionSpec) { | ||||
|             return this.timings.equals(((MotionSpec) obj).timings); | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public int hashCode() { | ||||
|         return this.timings.hashCode(); | ||||
|     } | ||||
|  | ||||
|     public String toString() { | ||||
|         return "\n" + getClass().getName() + '{' + Integer.toHexString(System.identityHashCode(this)) + " timings: " + this.timings + "}\n"; | ||||
|     } | ||||
| } | ||||
| @@ -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"; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,14 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class Positioning { | ||||
|     public final int gravity; | ||||
|     public final float xAdjustment; | ||||
|     public final float yAdjustment; | ||||
|  | ||||
|     public Positioning(int i, float f, float f2) { | ||||
|         this.gravity = i; | ||||
|         this.xAdjustment = f; | ||||
|         this.yAdjustment = f2; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,10 @@ | ||||
| package com.google.android.material.animation; | ||||
|  | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface TransformationCallback<T extends View> { | ||||
|     void onScaleChanged(T t); | ||||
|  | ||||
|     void onTranslationChanged(T t); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user