package com.joanfuentes.hintcaseassets.shapeanimators;
import android.animation.ValueAnimator;
import android.view.View;
import com.joanfuentes.hintcase.ShapeAnimator;
import com.joanfuentes.hintcaseassets.shapes.CircularShape;
import com.joanfuentes.hintcase.Shape;
public class RevealCircleShapeAnimator extends ShapeAnimator {
public RevealCircleShapeAnimator() {
super();
}
public RevealCircleShapeAnimator(int durationInMilliseconds) {
super(durationInMilliseconds);
}
@Override
public ValueAnimator getAnimator(final View view, Shape shape,
final OnFinishListener onFinishListener) {
final CircularShape circularShape = (CircularShape) shape;
ValueAnimator valueAnimator = ValueAnimator.ofFloat(circularShape.getMaxRadius(),
circularShape.getMinRadius());
valueAnimator.setStartDelay(startDelayInMilliseconds);
valueAnimator.setDuration(durationInMilliseconds)
.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
circularShape.setCurrentRadius((Float) valueAnimator.getAnimatedValue());
if (circularShape.getCurrentRadius() == circularShape.getMinRadius()) {
if (onFinishListener != null) {
onFinishListener.onFinish();
}
}
view.invalidate();
}
});
return valueAnimator;
}
}