ADD week 5
This commit is contained in:
@ -0,0 +1,218 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user