package com.airbnb.lottie; import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Matrix; import android.support.annotation.Nullable; class StrokeContent extends BaseStrokeContent { private final String name; private final KeyframeAnimation<Integer> colorAnimation; StrokeContent(final LottieDrawable lottieDrawable, BaseLayer layer, ShapeStroke stroke) { super(lottieDrawable, layer, stroke.getCapType().toPaintCap(), stroke.getJoinType().toPaintJoin(), stroke.getOpacity(), stroke.getWidth(), stroke.getLineDashPattern(), stroke.getDashOffset()); name = stroke.getName(); colorAnimation = stroke.getColor().createAnimation(); colorAnimation.addUpdateListener(this); layer.addAnimation(colorAnimation); } @Override public void addColorFilter(@Nullable String layerName, @Nullable String contentName, @Nullable ColorFilter colorFilter) { paint.setColorFilter(colorFilter); } @Override public void draw(Canvas canvas, Matrix parentMatrix, int parentAlpha) { paint.setColor(colorAnimation.getValue()); super.draw(canvas, parentMatrix, parentAlpha); } @Override public String getName() { return name; } }