// Path: htextview-base/src/main/java/com/hanks/htextview/base/AnimationListener.java
// public interface AnimationListener {
//     void onAnimationEnd(HTextView hTextView);
// }
// 
// Path: htextview-base/src/main/java/com/hanks/htextview/base/HTextView.java
// public abstract class HTextView extends TextView {
//     public HTextView(Context context) {
//         this(context, null);
//     }
// 
//     public HTextView(Context context, AttributeSet attrs) {
//         this(context, attrs, 0);
//     }
// 
//     public HTextView(Context context, AttributeSet attrs, int defStyleAttr) {
//         super(context, attrs, defStyleAttr);
//     }
// 
//     public abstract void setAnimationListener(AnimationListener listener);
// 
//     public abstract void setProgress(float progress);
// 
//     public abstract void animateText(CharSequence text);
// }


import android.content.Context;
import android.content.res.TypedArray;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import com.hanks.htextview.base.AnimationListener;
import com.hanks.htextview.base.HTextView;
import java.util.Random;
package com.hanks.htextview.typer;




/**
 * Typer Effect
 * Created by hanks on 2017/3/15.
 */

public class TyperTextView extends HTextView {

    public static final int INVALIDATE = 0x767;
    private Random random;
    private CharSequence mText;
    private Handler handler;
    private int charIncrease;
    private int typerSpeed;
// Path: htextview-base/src/main/java/com/hanks/htextview/base/AnimationListener.java
// public interface AnimationListener {
//     void onAnimationEnd(HTextView hTextView);
// }
// 
// Path: htextview-base/src/main/java/com/hanks/htextview/base/HTextView.java
// public abstract class HTextView extends TextView {
//     public HTextView(Context context) {
//         this(context, null);
//     }
// 
//     public HTextView(Context context, AttributeSet attrs) {
//         this(context, attrs, 0);
//     }
// 
//     public HTextView(Context context, AttributeSet attrs, int defStyleAttr) {
//         super(context, attrs, defStyleAttr);
//     }
// 
//     public abstract void setAnimationListener(AnimationListener listener);
// 
//     public abstract void setProgress(float progress);
// 
//     public abstract void animateText(CharSequence text);
// }


// Path: htextview-typer/src/main/java/com/hanks/htextview/typer/TyperTextView.java
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import com.hanks.htextview.base.AnimationListener;
import com.hanks.htextview.base.HTextView;
import java.util.Random;

package com.hanks.htextview.typer;




/**
 * Typer Effect
 * Created by hanks on 2017/3/15.
 */

public class TyperTextView extends HTextView {

    public static final int INVALIDATE = 0x767;
    private Random random;
    private CharSequence mText;
    private Handler handler;
    private int charIncrease;
    private int typerSpeed;
    private AnimationListener animationListener;