219 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			219 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.constraintlayout.motion.utils;
 | |
| 
 | |
| import android.util.Log;
 | |
| import android.view.View;
 | |
| import androidx.constraintlayout.core.motion.utils.KeyCycleOscillator;
 | |
| import androidx.constraintlayout.motion.widget.MotionLayout;
 | |
| import androidx.constraintlayout.widget.ConstraintAttribute;
 | |
| import java.lang.reflect.InvocationTargetException;
 | |
| import java.lang.reflect.Method;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public abstract class ViewOscillator extends KeyCycleOscillator {
 | |
|     private static final String TAG = "ViewOscillator";
 | |
| 
 | |
|     public abstract void setProperty(View view, float t);
 | |
| 
 | |
|     public static ViewOscillator makeSpline(String str) {
 | |
|         if (str.startsWith("CUSTOM")) {
 | |
|             return new CustomSet();
 | |
|         }
 | |
|         str.hashCode();
 | |
|         switch (str) {
 | |
|             case "rotationX":
 | |
|                 return new RotationXset();
 | |
|             case "rotationY":
 | |
|                 return new RotationYset();
 | |
|             case "translationX":
 | |
|                 return new TranslationXset();
 | |
|             case "translationY":
 | |
|                 return new TranslationYset();
 | |
|             case "translationZ":
 | |
|                 return new TranslationZset();
 | |
|             case "progress":
 | |
|                 return new ProgressSet();
 | |
|             case "scaleX":
 | |
|                 return new ScaleXset();
 | |
|             case "scaleY":
 | |
|                 return new ScaleYset();
 | |
|             case "waveVariesBy":
 | |
|                 return new AlphaSet();
 | |
|             case "rotation":
 | |
|                 return new RotationSet();
 | |
|             case "elevation":
 | |
|                 return new ElevationSet();
 | |
|             case "transitionPathRotate":
 | |
|                 return new PathRotateSet();
 | |
|             case "alpha":
 | |
|                 return new AlphaSet();
 | |
|             case "waveOffset":
 | |
|                 return new AlphaSet();
 | |
|             default:
 | |
|                 return null;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class ElevationSet extends ViewOscillator {
 | |
|         ElevationSet() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             view.setElevation(get(t));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class AlphaSet extends ViewOscillator {
 | |
|         AlphaSet() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             view.setAlpha(get(t));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class RotationSet extends ViewOscillator {
 | |
|         RotationSet() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             view.setRotation(get(t));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class RotationXset extends ViewOscillator {
 | |
|         RotationXset() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             view.setRotationX(get(t));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class RotationYset extends ViewOscillator {
 | |
|         RotationYset() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             view.setRotationY(get(t));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public static class PathRotateSet extends ViewOscillator {
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|         }
 | |
| 
 | |
|         public void setPathRotate(View view, float t, double dx, double dy) {
 | |
|             view.setRotation(get(t) + ((float) Math.toDegrees(Math.atan2(dy, dx))));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class ScaleXset extends ViewOscillator {
 | |
|         ScaleXset() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             view.setScaleX(get(t));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class ScaleYset extends ViewOscillator {
 | |
|         ScaleYset() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             view.setScaleY(get(t));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class TranslationXset extends ViewOscillator {
 | |
|         TranslationXset() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             view.setTranslationX(get(t));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class TranslationYset extends ViewOscillator {
 | |
|         TranslationYset() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             view.setTranslationY(get(t));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class TranslationZset extends ViewOscillator {
 | |
|         TranslationZset() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             view.setTranslationZ(get(t));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class CustomSet extends ViewOscillator {
 | |
|         protected ConstraintAttribute mCustom;
 | |
|         float[] value = new float[1];
 | |
| 
 | |
|         CustomSet() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.core.motion.utils.KeyCycleOscillator
 | |
|         protected void setCustom(Object custom) {
 | |
|             this.mCustom = (ConstraintAttribute) custom;
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             this.value[0] = get(t);
 | |
|             CustomSupport.setInterpolatedValue(this.mCustom, view, this.value);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class ProgressSet extends ViewOscillator {
 | |
|         boolean mNoMethod = false;
 | |
| 
 | |
|         ProgressSet() {
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.constraintlayout.motion.utils.ViewOscillator
 | |
|         public void setProperty(View view, float t) {
 | |
|             Method method;
 | |
|             if (view instanceof MotionLayout) {
 | |
|                 ((MotionLayout) view).setProgress(get(t));
 | |
|                 return;
 | |
|             }
 | |
|             if (this.mNoMethod) {
 | |
|                 return;
 | |
|             }
 | |
|             try {
 | |
|                 method = view.getClass().getMethod("setProgress", Float.TYPE);
 | |
|             } catch (NoSuchMethodException unused) {
 | |
|                 this.mNoMethod = true;
 | |
|                 method = null;
 | |
|             }
 | |
|             if (method != null) {
 | |
|                 try {
 | |
|                     method.invoke(view, Float.valueOf(get(t)));
 | |
|                 } catch (IllegalAccessException e) {
 | |
|                     Log.e(ViewOscillator.TAG, "unable to setProgress", e);
 | |
|                 } catch (InvocationTargetException e2) {
 | |
|                     Log.e(ViewOscillator.TAG, "unable to setProgress", e2);
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |