blob: bf8ddddc824c8423c60aea3c55c7548b746caa2a [file] [log] [blame]
package com.airbnb.lottie.model.animatable;
import android.graphics.PointF;
import com.airbnb.lottie.animation.keyframe.BaseKeyframeAnimation;
import com.airbnb.lottie.animation.keyframe.PathKeyframeAnimation;
import com.airbnb.lottie.animation.keyframe.PointKeyframeAnimation;
import com.airbnb.lottie.value.Keyframe;
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);
}
}