what-the-bank/sources/com/airbnb/lottie/animation/keyframe/TransformKeyframeAnimation....

366 lines
17 KiB
Java
Raw Permalink Normal View History

2024-07-27 18:17:47 +07:00
package com.airbnb.lottie.animation.keyframe;
import android.graphics.Matrix;
import android.graphics.PointF;
import com.airbnb.lottie.LottieProperty;
import com.airbnb.lottie.animation.keyframe.BaseKeyframeAnimation;
import com.airbnb.lottie.model.animatable.AnimatableTransform;
import com.airbnb.lottie.model.layer.BaseLayer;
import com.airbnb.lottie.value.Keyframe;
import com.airbnb.lottie.value.LottieValueCallback;
import com.airbnb.lottie.value.ScaleXY;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import java.util.Collections;
/* loaded from: classes.dex */
public class TransformKeyframeAnimation {
private BaseKeyframeAnimation<PointF, PointF> anchorPoint;
private BaseKeyframeAnimation<?, Float> endOpacity;
private final Matrix matrix = new Matrix();
private BaseKeyframeAnimation<Integer, Integer> opacity;
private BaseKeyframeAnimation<?, PointF> position;
private BaseKeyframeAnimation<Float, Float> rotation;
private BaseKeyframeAnimation<ScaleXY, ScaleXY> scale;
private FloatKeyframeAnimation skew;
private FloatKeyframeAnimation skewAngle;
private final Matrix skewMatrix1;
private final Matrix skewMatrix2;
private final Matrix skewMatrix3;
private final float[] skewValues;
private BaseKeyframeAnimation<?, Float> startOpacity;
public TransformKeyframeAnimation(AnimatableTransform animatableTransform) {
this.anchorPoint = animatableTransform.getAnchorPoint() == null ? null : animatableTransform.getAnchorPoint().createAnimation();
this.position = animatableTransform.getPosition() == null ? null : animatableTransform.getPosition().createAnimation();
this.scale = animatableTransform.getScale() == null ? null : animatableTransform.getScale().createAnimation();
this.rotation = animatableTransform.getRotation() == null ? null : animatableTransform.getRotation().createAnimation();
FloatKeyframeAnimation floatKeyframeAnimation = animatableTransform.getSkew() == null ? null : (FloatKeyframeAnimation) animatableTransform.getSkew().createAnimation();
this.skew = floatKeyframeAnimation;
if (floatKeyframeAnimation != null) {
this.skewMatrix1 = new Matrix();
this.skewMatrix2 = new Matrix();
this.skewMatrix3 = new Matrix();
this.skewValues = new float[9];
} else {
this.skewMatrix1 = null;
this.skewMatrix2 = null;
this.skewMatrix3 = null;
this.skewValues = null;
}
this.skewAngle = animatableTransform.getSkewAngle() == null ? null : (FloatKeyframeAnimation) animatableTransform.getSkewAngle().createAnimation();
if (animatableTransform.getOpacity() != null) {
this.opacity = animatableTransform.getOpacity().createAnimation();
}
if (animatableTransform.getStartOpacity() != null) {
this.startOpacity = animatableTransform.getStartOpacity().createAnimation();
} else {
this.startOpacity = null;
}
if (animatableTransform.getEndOpacity() != null) {
this.endOpacity = animatableTransform.getEndOpacity().createAnimation();
} else {
this.endOpacity = null;
}
}
public void addAnimationsToLayer(BaseLayer baseLayer) {
baseLayer.addAnimation(this.opacity);
baseLayer.addAnimation(this.startOpacity);
baseLayer.addAnimation(this.endOpacity);
baseLayer.addAnimation(this.anchorPoint);
baseLayer.addAnimation(this.position);
baseLayer.addAnimation(this.scale);
baseLayer.addAnimation(this.rotation);
baseLayer.addAnimation(this.skew);
baseLayer.addAnimation(this.skewAngle);
}
public void addListener(BaseKeyframeAnimation.AnimationListener animationListener) {
BaseKeyframeAnimation<Integer, Integer> baseKeyframeAnimation = this.opacity;
if (baseKeyframeAnimation != null) {
baseKeyframeAnimation.addUpdateListener(animationListener);
}
BaseKeyframeAnimation<?, Float> baseKeyframeAnimation2 = this.startOpacity;
if (baseKeyframeAnimation2 != null) {
baseKeyframeAnimation2.addUpdateListener(animationListener);
}
BaseKeyframeAnimation<?, Float> baseKeyframeAnimation3 = this.endOpacity;
if (baseKeyframeAnimation3 != null) {
baseKeyframeAnimation3.addUpdateListener(animationListener);
}
BaseKeyframeAnimation<PointF, PointF> baseKeyframeAnimation4 = this.anchorPoint;
if (baseKeyframeAnimation4 != null) {
baseKeyframeAnimation4.addUpdateListener(animationListener);
}
BaseKeyframeAnimation<?, PointF> baseKeyframeAnimation5 = this.position;
if (baseKeyframeAnimation5 != null) {
baseKeyframeAnimation5.addUpdateListener(animationListener);
}
BaseKeyframeAnimation<ScaleXY, ScaleXY> baseKeyframeAnimation6 = this.scale;
if (baseKeyframeAnimation6 != null) {
baseKeyframeAnimation6.addUpdateListener(animationListener);
}
BaseKeyframeAnimation<Float, Float> baseKeyframeAnimation7 = this.rotation;
if (baseKeyframeAnimation7 != null) {
baseKeyframeAnimation7.addUpdateListener(animationListener);
}
FloatKeyframeAnimation floatKeyframeAnimation = this.skew;
if (floatKeyframeAnimation != null) {
floatKeyframeAnimation.addUpdateListener(animationListener);
}
FloatKeyframeAnimation floatKeyframeAnimation2 = this.skewAngle;
if (floatKeyframeAnimation2 != null) {
floatKeyframeAnimation2.addUpdateListener(animationListener);
}
}
public void setProgress(float f) {
BaseKeyframeAnimation<Integer, Integer> baseKeyframeAnimation = this.opacity;
if (baseKeyframeAnimation != null) {
baseKeyframeAnimation.setProgress(f);
}
BaseKeyframeAnimation<?, Float> baseKeyframeAnimation2 = this.startOpacity;
if (baseKeyframeAnimation2 != null) {
baseKeyframeAnimation2.setProgress(f);
}
BaseKeyframeAnimation<?, Float> baseKeyframeAnimation3 = this.endOpacity;
if (baseKeyframeAnimation3 != null) {
baseKeyframeAnimation3.setProgress(f);
}
BaseKeyframeAnimation<PointF, PointF> baseKeyframeAnimation4 = this.anchorPoint;
if (baseKeyframeAnimation4 != null) {
baseKeyframeAnimation4.setProgress(f);
}
BaseKeyframeAnimation<?, PointF> baseKeyframeAnimation5 = this.position;
if (baseKeyframeAnimation5 != null) {
baseKeyframeAnimation5.setProgress(f);
}
BaseKeyframeAnimation<ScaleXY, ScaleXY> baseKeyframeAnimation6 = this.scale;
if (baseKeyframeAnimation6 != null) {
baseKeyframeAnimation6.setProgress(f);
}
BaseKeyframeAnimation<Float, Float> baseKeyframeAnimation7 = this.rotation;
if (baseKeyframeAnimation7 != null) {
baseKeyframeAnimation7.setProgress(f);
}
FloatKeyframeAnimation floatKeyframeAnimation = this.skew;
if (floatKeyframeAnimation != null) {
floatKeyframeAnimation.setProgress(f);
}
FloatKeyframeAnimation floatKeyframeAnimation2 = this.skewAngle;
if (floatKeyframeAnimation2 != null) {
floatKeyframeAnimation2.setProgress(f);
}
}
public Matrix getMatrix() {
float floatValue;
PointF value;
this.matrix.reset();
BaseKeyframeAnimation<?, PointF> baseKeyframeAnimation = this.position;
if (baseKeyframeAnimation != null && (value = baseKeyframeAnimation.getValue()) != null && (value.x != BitmapDescriptorFactory.HUE_RED || value.y != BitmapDescriptorFactory.HUE_RED)) {
this.matrix.preTranslate(value.x, value.y);
}
BaseKeyframeAnimation<Float, Float> baseKeyframeAnimation2 = this.rotation;
if (baseKeyframeAnimation2 != null) {
if (baseKeyframeAnimation2 instanceof ValueCallbackKeyframeAnimation) {
floatValue = baseKeyframeAnimation2.getValue().floatValue();
} else {
floatValue = ((FloatKeyframeAnimation) baseKeyframeAnimation2).getFloatValue();
}
if (floatValue != BitmapDescriptorFactory.HUE_RED) {
this.matrix.preRotate(floatValue);
}
}
if (this.skew != null) {
float cos = this.skewAngle == null ? 0.0f : (float) Math.cos(Math.toRadians((-r3.getFloatValue()) + 90.0f));
float sin = this.skewAngle == null ? 1.0f : (float) Math.sin(Math.toRadians((-r5.getFloatValue()) + 90.0f));
float tan = (float) Math.tan(Math.toRadians(r0.getFloatValue()));
clearSkewValues();
float[] fArr = this.skewValues;
fArr[0] = cos;
fArr[1] = sin;
float f = -sin;
fArr[3] = f;
fArr[4] = cos;
fArr[8] = 1.0f;
this.skewMatrix1.setValues(fArr);
clearSkewValues();
float[] fArr2 = this.skewValues;
fArr2[0] = 1.0f;
fArr2[3] = tan;
fArr2[4] = 1.0f;
fArr2[8] = 1.0f;
this.skewMatrix2.setValues(fArr2);
clearSkewValues();
float[] fArr3 = this.skewValues;
fArr3[0] = cos;
fArr3[1] = f;
fArr3[3] = sin;
fArr3[4] = cos;
fArr3[8] = 1.0f;
this.skewMatrix3.setValues(fArr3);
this.skewMatrix2.preConcat(this.skewMatrix1);
this.skewMatrix3.preConcat(this.skewMatrix2);
this.matrix.preConcat(this.skewMatrix3);
}
BaseKeyframeAnimation<ScaleXY, ScaleXY> baseKeyframeAnimation3 = this.scale;
if (baseKeyframeAnimation3 != null) {
ScaleXY value2 = baseKeyframeAnimation3.getValue();
if (value2.getScaleX() != 1.0f || value2.getScaleY() != 1.0f) {
this.matrix.preScale(value2.getScaleX(), value2.getScaleY());
}
}
BaseKeyframeAnimation<PointF, PointF> baseKeyframeAnimation4 = this.anchorPoint;
if (baseKeyframeAnimation4 != null) {
PointF value3 = baseKeyframeAnimation4.getValue();
if (value3.x != BitmapDescriptorFactory.HUE_RED || value3.y != BitmapDescriptorFactory.HUE_RED) {
this.matrix.preTranslate(-value3.x, -value3.y);
}
}
return this.matrix;
}
private void clearSkewValues() {
for (int i = 0; i < 9; i++) {
this.skewValues[i] = 0.0f;
}
}
public Matrix getMatrixForRepeater(float f) {
BaseKeyframeAnimation<?, PointF> baseKeyframeAnimation = this.position;
PointF value = baseKeyframeAnimation == null ? null : baseKeyframeAnimation.getValue();
BaseKeyframeAnimation<ScaleXY, ScaleXY> baseKeyframeAnimation2 = this.scale;
ScaleXY value2 = baseKeyframeAnimation2 == null ? null : baseKeyframeAnimation2.getValue();
this.matrix.reset();
if (value != null) {
this.matrix.preTranslate(value.x * f, value.y * f);
}
if (value2 != null) {
double d = f;
this.matrix.preScale((float) Math.pow(value2.getScaleX(), d), (float) Math.pow(value2.getScaleY(), d));
}
BaseKeyframeAnimation<Float, Float> baseKeyframeAnimation3 = this.rotation;
if (baseKeyframeAnimation3 != null) {
float floatValue = baseKeyframeAnimation3.getValue().floatValue();
BaseKeyframeAnimation<PointF, PointF> baseKeyframeAnimation4 = this.anchorPoint;
PointF value3 = baseKeyframeAnimation4 != null ? baseKeyframeAnimation4.getValue() : null;
Matrix matrix = this.matrix;
float f2 = BitmapDescriptorFactory.HUE_RED;
float f3 = value3 == null ? 0.0f : value3.x;
if (value3 != null) {
f2 = value3.y;
}
matrix.preRotate(floatValue * f, f3, f2);
}
return this.matrix;
}
public <T> boolean applyValueCallback(T t, LottieValueCallback<T> lottieValueCallback) {
if (t == LottieProperty.TRANSFORM_ANCHOR_POINT) {
BaseKeyframeAnimation<PointF, PointF> baseKeyframeAnimation = this.anchorPoint;
if (baseKeyframeAnimation == null) {
this.anchorPoint = new ValueCallbackKeyframeAnimation(lottieValueCallback, new PointF());
return true;
}
baseKeyframeAnimation.setValueCallback(lottieValueCallback);
return true;
}
if (t == LottieProperty.TRANSFORM_POSITION) {
BaseKeyframeAnimation<?, PointF> baseKeyframeAnimation2 = this.position;
if (baseKeyframeAnimation2 == null) {
this.position = new ValueCallbackKeyframeAnimation(lottieValueCallback, new PointF());
return true;
}
baseKeyframeAnimation2.setValueCallback(lottieValueCallback);
return true;
}
if (t == LottieProperty.TRANSFORM_POSITION_X) {
BaseKeyframeAnimation<?, PointF> baseKeyframeAnimation3 = this.position;
if (baseKeyframeAnimation3 instanceof SplitDimensionPathKeyframeAnimation) {
((SplitDimensionPathKeyframeAnimation) baseKeyframeAnimation3).setXValueCallback(lottieValueCallback);
return true;
}
}
if (t == LottieProperty.TRANSFORM_POSITION_Y) {
BaseKeyframeAnimation<?, PointF> baseKeyframeAnimation4 = this.position;
if (baseKeyframeAnimation4 instanceof SplitDimensionPathKeyframeAnimation) {
((SplitDimensionPathKeyframeAnimation) baseKeyframeAnimation4).setYValueCallback(lottieValueCallback);
return true;
}
}
if (t == LottieProperty.TRANSFORM_SCALE) {
BaseKeyframeAnimation<ScaleXY, ScaleXY> baseKeyframeAnimation5 = this.scale;
if (baseKeyframeAnimation5 == null) {
this.scale = new ValueCallbackKeyframeAnimation(lottieValueCallback, new ScaleXY());
return true;
}
baseKeyframeAnimation5.setValueCallback(lottieValueCallback);
return true;
}
if (t == LottieProperty.TRANSFORM_ROTATION) {
BaseKeyframeAnimation<Float, Float> baseKeyframeAnimation6 = this.rotation;
if (baseKeyframeAnimation6 == null) {
this.rotation = new ValueCallbackKeyframeAnimation(lottieValueCallback, Float.valueOf(BitmapDescriptorFactory.HUE_RED));
return true;
}
baseKeyframeAnimation6.setValueCallback(lottieValueCallback);
return true;
}
if (t == LottieProperty.TRANSFORM_OPACITY) {
BaseKeyframeAnimation<Integer, Integer> baseKeyframeAnimation7 = this.opacity;
if (baseKeyframeAnimation7 == null) {
this.opacity = new ValueCallbackKeyframeAnimation(lottieValueCallback, 100);
return true;
}
baseKeyframeAnimation7.setValueCallback(lottieValueCallback);
return true;
}
if (t == LottieProperty.TRANSFORM_START_OPACITY) {
BaseKeyframeAnimation<?, Float> baseKeyframeAnimation8 = this.startOpacity;
if (baseKeyframeAnimation8 == null) {
this.startOpacity = new ValueCallbackKeyframeAnimation(lottieValueCallback, Float.valueOf(100.0f));
return true;
}
baseKeyframeAnimation8.setValueCallback(lottieValueCallback);
return true;
}
if (t == LottieProperty.TRANSFORM_END_OPACITY) {
BaseKeyframeAnimation<?, Float> baseKeyframeAnimation9 = this.endOpacity;
if (baseKeyframeAnimation9 == null) {
this.endOpacity = new ValueCallbackKeyframeAnimation(lottieValueCallback, Float.valueOf(100.0f));
return true;
}
baseKeyframeAnimation9.setValueCallback(lottieValueCallback);
return true;
}
if (t == LottieProperty.TRANSFORM_SKEW) {
if (this.skew == null) {
this.skew = new FloatKeyframeAnimation(Collections.singletonList(new Keyframe(Float.valueOf(BitmapDescriptorFactory.HUE_RED))));
}
this.skew.setValueCallback(lottieValueCallback);
return true;
}
if (t != LottieProperty.TRANSFORM_SKEW_ANGLE) {
return false;
}
if (this.skewAngle == null) {
this.skewAngle = new FloatKeyframeAnimation(Collections.singletonList(new Keyframe(Float.valueOf(BitmapDescriptorFactory.HUE_RED))));
}
this.skewAngle.setValueCallback(lottieValueCallback);
return true;
}
public BaseKeyframeAnimation<?, Float> getStartOpacity() {
return this.startOpacity;
}
public BaseKeyframeAnimation<?, Integer> getOpacity() {
return this.opacity;
}
public BaseKeyframeAnimation<?, Float> getEndOpacity() {
return this.endOpacity;
}
}