// Path: HintCase/src/main/java/com/joanfuentes/hintcase/ShapeAnimator.java
// public abstract class ShapeAnimator {
//     public static final int DEFAULT_ANIMATION_DURATION_IN_MILLISECONDS = 300;
//     public static final ShapeAnimator NO_ANIMATOR = null;
//     public static final OnFinishListener NO_CALLBACK = null;
//     protected int durationInMilliseconds;
//     protected long startDelayInMilliseconds;
// 
//     public ShapeAnimator() {
//         durationInMilliseconds = DEFAULT_ANIMATION_DURATION_IN_MILLISECONDS;
//     }
// 
//     public ShapeAnimator(int durationInMilliseconds) {
//         this.durationInMilliseconds = durationInMilliseconds;
//     }
// 
//     abstract public ValueAnimator getAnimator(View view, Shape shape, OnFinishListener onFinishListener);
// 
//     public ValueAnimator getAnimator(View view, Shape shape) {
//         return getAnimator(view, shape, NO_CALLBACK);
//     }
// 
//     public interface OnFinishListener {
//         void onFinish();
//     }
// 
//     public ShapeAnimator setStartDelay(long startDelayInMilliseconds) {
//         this.startDelayInMilliseconds = startDelayInMilliseconds;
//         return this;
//     }
// }
// 
// Path: HintCase/src/main/java/com/joanfuentes/hintcase/Shape.java
// public abstract class Shape {
//     private static final int DEFAULT_COLOR = 0xFFFFFF;
//     private static final int DEFAULT_ALPHA = 0;
//     private int left;
//     private int top;
//     private int right;
//     private int bottom;
//     private float centerX;
//     private float centerY;
//     private float width;
//     private float height;
//     private Paint shapePaint;
// 
//     public Shape() {
//         shapePaint = getInitializedTypePaint();
//     }
// 
//     private Paint getInitializedTypePaint() {
//         Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
//         paint.setColor(DEFAULT_COLOR);
//         paint.setAlpha(DEFAULT_ALPHA);
//         paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
//         return paint;
//     }
// 
//     public int getLeft() {
//         return left;
//     }
// 
//     public void setLeft(int left) {
//         this.left = left;
//     }
// 
//     public int getTop() {
//         return top;
//     }
// 
//     public void setTop(int top) {
//         this.top = top;
//     }
// 
//     public int getRight() {
//         return right;
//     }
// 
//     public void setRight(int right) {
//         this.right = right;
//     }
// 
//     public int getBottom() {
//         return bottom;
//     }
// 
//     public void setBottom(int bottom) {
//         this.bottom = bottom;
//     }
// 
//     public float getCenterX() {
//         return centerX;
//     }
// 
//     public void setCenterX(float centerX) {
//         this.centerX = centerX;
//     }
// 
//     public float getCenterY() {
//         return centerY;
//     }
// 
//     public void setCenterY(float centerY) {
//         this.centerY = centerY;
//     }
// 
//     public float getWidth() {
//         return width;
//     }
// 
//     public void setWidth(float width) {
//         this.width = width;
//     }
// 
//     public float getHeight() {
//         return height;
//     }
// 
//     public void setHeight(float height) {
//         this.height = height;
//     }
// 
//     public Paint getShapePaint() {
//         return shapePaint;
//     }
// 
//     abstract public void setMinimumValue();
//     abstract public void setShapeInfo(View targetView, ViewGroup parent, int offset, Context context);
//     abstract public boolean isTouchEventInsideTheHint(MotionEvent event);
//     abstract public void draw(Canvas canvas);
// }


import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.view.View;
import com.joanfuentes.hintcase.ShapeAnimator;
import com.joanfuentes.hintcase.Shape;
package com.joanfuentes.hintcaseassets.shapeanimators;



public class FadeOutShapeAnimator extends ShapeAnimator {

    public FadeOutShapeAnimator() {
        super();
    }

    public FadeOutShapeAnimator(int durationInMilliseconds) {
        super(durationInMilliseconds);
    }

    @Override
// Path: HintCase/src/main/java/com/joanfuentes/hintcase/ShapeAnimator.java
// public abstract class ShapeAnimator {
//     public static final int DEFAULT_ANIMATION_DURATION_IN_MILLISECONDS = 300;
//     public static final ShapeAnimator NO_ANIMATOR = null;
//     public static final OnFinishListener NO_CALLBACK = null;
//     protected int durationInMilliseconds;
//     protected long startDelayInMilliseconds;
// 
//     public ShapeAnimator() {
//         durationInMilliseconds = DEFAULT_ANIMATION_DURATION_IN_MILLISECONDS;
//     }
// 
//     public ShapeAnimator(int durationInMilliseconds) {
//         this.durationInMilliseconds = durationInMilliseconds;
//     }
// 
//     abstract public ValueAnimator getAnimator(View view, Shape shape, OnFinishListener onFinishListener);
// 
//     public ValueAnimator getAnimator(View view, Shape shape) {
//         return getAnimator(view, shape, NO_CALLBACK);
//     }
// 
//     public interface OnFinishListener {
//         void onFinish();
//     }
// 
//     public ShapeAnimator setStartDelay(long startDelayInMilliseconds) {
//         this.startDelayInMilliseconds = startDelayInMilliseconds;
//         return this;
//     }
// }
// 
// Path: HintCase/src/main/java/com/joanfuentes/hintcase/Shape.java
// public abstract class Shape {
//     private static final int DEFAULT_COLOR = 0xFFFFFF;
//     private static final int DEFAULT_ALPHA = 0;
//     private int left;
//     private int top;
//     private int right;
//     private int bottom;
//     private float centerX;
//     private float centerY;
//     private float width;
//     private float height;
//     private Paint shapePaint;
// 
//     public Shape() {
//         shapePaint = getInitializedTypePaint();
//     }
// 
//     private Paint getInitializedTypePaint() {
//         Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
//         paint.setColor(DEFAULT_COLOR);
//         paint.setAlpha(DEFAULT_ALPHA);
//         paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
//         return paint;
//     }
// 
//     public int getLeft() {
//         return left;
//     }
// 
//     public void setLeft(int left) {
//         this.left = left;
//     }
// 
//     public int getTop() {
//         return top;
//     }
// 
//     public void setTop(int top) {
//         this.top = top;
//     }
// 
//     public int getRight() {
//         return right;
//     }
// 
//     public void setRight(int right) {
//         this.right = right;
//     }
// 
//     public int getBottom() {
//         return bottom;
//     }
// 
//     public void setBottom(int bottom) {
//         this.bottom = bottom;
//     }
// 
//     public float getCenterX() {
//         return centerX;
//     }
// 
//     public void setCenterX(float centerX) {
//         this.centerX = centerX;
//     }
// 
//     public float getCenterY() {
//         return centerY;
//     }
// 
//     public void setCenterY(float centerY) {
//         this.centerY = centerY;
//     }
// 
//     public float getWidth() {
//         return width;
//     }
// 
//     public void setWidth(float width) {
//         this.width = width;
//     }
// 
//     public float getHeight() {
//         return height;
//     }
// 
//     public void setHeight(float height) {
//         this.height = height;
//     }
// 
//     public Paint getShapePaint() {
//         return shapePaint;
//     }
// 
//     abstract public void setMinimumValue();
//     abstract public void setShapeInfo(View targetView, ViewGroup parent, int offset, Context context);
//     abstract public boolean isTouchEventInsideTheHint(MotionEvent event);
//     abstract public void draw(Canvas canvas);
// }


// Path: HintCaseAssets/src/main/java/com/joanfuentes/hintcaseassets/shapeanimators/FadeOutShapeAnimator.java
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.view.View;
import com.joanfuentes.hintcase.ShapeAnimator;
import com.joanfuentes.hintcase.Shape;

package com.joanfuentes.hintcaseassets.shapeanimators;



public class FadeOutShapeAnimator extends ShapeAnimator {

    public FadeOutShapeAnimator() {
        super();
    }

    public FadeOutShapeAnimator(int durationInMilliseconds) {
        super(durationInMilliseconds);
    }

    @Override
    public ValueAnimator getAnimator(View view, Shape shape,