blob: f1062348d966e2e202bbc82272857e58d2ef2f79 [file] [log] [blame]
package com.airbnb.lottie.model.animatable;
import android.graphics.PointF;
import com.airbnb.lottie.value.Keyframe;
import com.airbnb.lottie.animation.keyframe.BaseKeyframeAnimation;
import com.airbnb.lottie.animation.keyframe.PathKeyframeAnimation;
import com.airbnb.lottie.animation.keyframe.PointKeyframeAnimation;
import java.util.Collections;
import java.util.List;
public class AnimatablePathValue implements AnimatableValue<PointF, PointF> {
private final List<Keyframe<PointF>> keyframes;
/**
* Create a default static animatable path.
*/
public AnimatablePathValue() {
keyframes = Collections.singletonList(new Keyframe<>(new PointF(0, 0)));
}
public AnimatablePathValue(List<Keyframe<PointF>> keyframes) {
this.keyframes = keyframes;
}
@Override
public List<Keyframe<PointF>> getKeyframes() {
return keyframes;
}
@Override
public boolean isStatic() {
return keyframes.size() == 1 && keyframes.get(0).isStatic();
}
@Override
public BaseKeyframeAnimation<PointF, PointF> createAnimation() {
if (keyframes.get(0).isStatic()) {
return new PointKeyframeAnimation(keyframes);
}
return new PathKeyframeAnimation(keyframes);
}
}