// Path: library/src/main/java/com/dreamliner/rvhelper/view/CustomizedClickableSpan.java
// public class CustomizedClickableSpan extends ClickableSpan {
// 
//     private int mColorId;
//     private Context mContext;
//     private WeakReference<OnClickListener> mOnClickListener;
// 
//     public CustomizedClickableSpan(@ColorRes int colorId, Context context, OnClickListener onClickListener) {
//         mColorId = colorId;
//         mContext = context;
//         mOnClickListener = new WeakReference<>(onClickListener);
//     }
// 
//     @Override
//     public void updateDrawState(TextPaint ds) {
//         ds.setColor(mContext.getResources().getColor(mColorId));
//     }
// 
//     @Override
//     public void onClick(View widget) {
//         OnClickListener onClickListener = mOnClickListener.get();
//         if (null != onClickListener) {
//             onClickListener.onClick(widget);
//         }
//     }
// }
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/util/StatusConstant.java
// public static final int DEFAULT_NULL = Integer.MAX_VALUE - 2;
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/util/StatusConstant.java
// public static final int NET_ERROR = Integer.MAX_VALUE;
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/util/StatusConstant.java
// public static final int NO_RESULT = Integer.MAX_VALUE - 1;


import android.content.Context;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.util.AttributeSet;
import android.widget.TextView;
import com.dreamliner.lib.rvhelper.R;
import com.dreamliner.rvhelper.view.CustomizedClickableSpan;
import static com.dreamliner.rvhelper.util.StatusConstant.DEFAULT_NULL;
import static com.dreamliner.rvhelper.util.StatusConstant.NET_ERROR;
import static com.dreamliner.rvhelper.util.StatusConstant.NO_RESULT;

    public DefaultEmptyLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        mEmptyTipTv = (TextView) findViewById(R.id.empty_status_tv);
    }

    private void setEmptyTv(TextView textView, String tipStr, String clickStr) {
        if (!TextUtils.isEmpty(clickStr)) {
            SpannableString spStr = new SpannableString(tipStr + clickStr);
            mClickableSpan = new CustomizedClickableSpan(R.color.new_bg, getContext().getApplicationContext(), mOnClickListener);
            spStr.setSpan(mClickableSpan, tipStr.length(), tipStr.length() + clickStr.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
            textView.setText(spStr);
            textView.setMovementMethod(LinkMovementMethod.getInstance());
        }
    }

    @Override
    public void setEmptyType(int type) {
        switch (type) {
            case NET_ERROR:
                setEmptyTv(mEmptyTipTv, "亲,网络有点差哦", "重新加载");
                break;
            case NO_RESULT:
                setEmptyTv(mEmptyTipTv, "亲，暂无数据", "重新加载");
                break;
// Path: library/src/main/java/com/dreamliner/rvhelper/view/CustomizedClickableSpan.java
// public class CustomizedClickableSpan extends ClickableSpan {
// 
//     private int mColorId;
//     private Context mContext;
//     private WeakReference<OnClickListener> mOnClickListener;
// 
//     public CustomizedClickableSpan(@ColorRes int colorId, Context context, OnClickListener onClickListener) {
//         mColorId = colorId;
//         mContext = context;
//         mOnClickListener = new WeakReference<>(onClickListener);
//     }
// 
//     @Override
//     public void updateDrawState(TextPaint ds) {
//         ds.setColor(mContext.getResources().getColor(mColorId));
//     }
// 
//     @Override
//     public void onClick(View widget) {
//         OnClickListener onClickListener = mOnClickListener.get();
//         if (null != onClickListener) {
//             onClickListener.onClick(widget);
//         }
//     }
// }
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/util/StatusConstant.java
// public static final int DEFAULT_NULL = Integer.MAX_VALUE - 2;
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/util/StatusConstant.java
// public static final int NET_ERROR = Integer.MAX_VALUE;
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/util/StatusConstant.java
// public static final int NO_RESULT = Integer.MAX_VALUE - 1;


// Path: library/src/main/java/com/dreamliner/rvhelper/empty/DefaultEmptyLayout.java
import android.content.Context;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.util.AttributeSet;
import android.widget.TextView;
import com.dreamliner.lib.rvhelper.R;
import com.dreamliner.rvhelper.view.CustomizedClickableSpan;
import static com.dreamliner.rvhelper.util.StatusConstant.DEFAULT_NULL;
import static com.dreamliner.rvhelper.util.StatusConstant.NET_ERROR;
import static com.dreamliner.rvhelper.util.StatusConstant.NO_RESULT;


    public DefaultEmptyLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        mEmptyTipTv = (TextView) findViewById(R.id.empty_status_tv);
    }

    private void setEmptyTv(TextView textView, String tipStr, String clickStr) {
        if (!TextUtils.isEmpty(clickStr)) {
            SpannableString spStr = new SpannableString(tipStr + clickStr);
            mClickableSpan = new CustomizedClickableSpan(R.color.new_bg, getContext().getApplicationContext(), mOnClickListener);
            spStr.setSpan(mClickableSpan, tipStr.length(), tipStr.length() + clickStr.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
            textView.setText(spStr);
            textView.setMovementMethod(LinkMovementMethod.getInstance());
        }
    }

    @Override
    public void setEmptyType(int type) {
        switch (type) {
            case NET_ERROR:
                setEmptyTv(mEmptyTipTv, "亲,网络有点差哦", "重新加载");
                break;
            case NO_RESULT:
                setEmptyTv(mEmptyTipTv, "亲，暂无数据", "重新加载");
                break;
            case DEFAULT_NULL: