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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|