blob: b4bd857189d7b56218fab3dacee85a45585add3c [file] [log] [blame]
package com.airbnb.lottie;
import java.util.List;
import static com.airbnb.lottie.MiscUtils.lerp;
class NumberKeyframeAnimation<T extends Number> extends KeyframeAnimation<T> {
private final Class<T> klass;
NumberKeyframeAnimation(List<Keyframe<T>> keyframes, Class<T> klass) {
super(keyframes);
this.klass = klass;
}
@Override T getValue(Keyframe<T> keyframe, float keyframeProgress) {
Number startValue = keyframe.startValue;
Number endValue = keyframe.endValue;
if (klass.isAssignableFrom(Integer.class)) {
return klass.cast(lerp(startValue.intValue(), endValue.intValue(), keyframeProgress));
} else {
return klass.cast(lerp(startValue.floatValue(), endValue.floatValue(), keyframeProgress));
}
}
}