// Path: demo/src/main/java/com/dreamliner/lib/rvhelper/sample/entity/Addressbook.java
// public class Addressbook implements Serializable, ItemDecorationTag {
// 
//     private String realname;
// 
//     private String itemDecorationtag;
// 
//     public Addressbook() {
//     }
// 
//     public Addressbook(String realname) {
//         this.realname = realname;
//     }
// 
//     public String getRealname() {
//         return realname;
//     }
// 
//     public void setRealname(String realname) {
//         this.realname = realname;
//     }
// 
//     public String getItemDecorationtag() {
//         return itemDecorationtag;
//     }
// 
//     public void setItemDecorationtag(String itemDecorationtag) {
//         this.itemDecorationtag = itemDecorationtag;
//     }
// 
//     @Override
//     public String getTag() {
//         return TextUtils.isEmpty(itemDecorationtag) ? "#" : itemDecorationtag;
//     }
// 
//     @Override
//     public String toString() {
//         return "Addressbook{" +
//                 ", realname='" + realname + '\'' +
//                 ", itemDecorationtag='" + itemDecorationtag + '\'' +
//                 '}';
//     }
// }
// 
// Path: demo/src/main/java/com/dreamliner/lib/rvhelper/sample/utils/CollectionUtils.java
// public class CollectionUtils {
// 
//     public static boolean isNotNull(Collection<?> collection) {
//         if (collection != null && collection.size() > 0) {
//             return true;
//         }
//         return false;
//     }
// 
//     public static boolean isNotNull(HashMap<?, ?> collection) {
//         if (collection != null && collection.size() > 0) {
//             return true;
//         }
//         return false;
//     }
// }
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/adapter/BaseMixtureAdapter.java
// public abstract class BaseMixtureAdapter<T> extends BaseNormalAdapter<T, BaseViewHolder> {
// 
//     public BaseMixtureAdapter() {
//     }
// 
//     public BaseMixtureAdapter(ItemClickListener itemClickListener) {
//         super(itemClickListener);
//     }
// 
//     public BaseMixtureAdapter(ItemLongListener itemLongListener) {
//         super(itemLongListener);
//     }
// 
//     public BaseMixtureAdapter(ItemClickListener itemClickListener, ItemLongListener itemLongListener) {
//         super(itemClickListener, itemLongListener);
//     }
// 
//     @Override
//     public final void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
//         if (!(holder instanceof FooterViewHolder)) {
//             bindView((BaseViewHolder) holder, position);
//         }
//     }
// }
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/interfaces/ItemClickListener.java
// public interface ItemClickListener {
//     public void onItemClick(View view, int position);
// }
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/viewholder/BaseViewHolder.java
// public class BaseViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
// 
//     private ItemClickListener mItemClickListener;
//     private ItemLongListener mItemLongListener;
// 
//     public BaseViewHolder(View itemView) {
//         super(itemView);
//     }
// 
//     public BaseViewHolder(View itemView, ItemClickListener itemClickListener) {
//         super(itemView);
//         mItemClickListener = itemClickListener;
//     }
// 
//     public BaseViewHolder(View itemView, ItemLongListener itemLongListener) {
//         super(itemView);
//         mItemLongListener = itemLongListener;
//     }
// 
//     public BaseViewHolder(View itemView, ItemClickListener itemClickListener, ItemLongListener itemLongListener) {
//         super(itemView);
//         mItemClickListener = itemClickListener;
//         mItemLongListener = itemLongListener;
//     }
// 
//     @Override
//     public void onClick(View v) {
//         if (null != mItemClickListener) {
//             int position = getAdapterPosition();
//             if (position != RecyclerView.NO_POSITION) {
//                 mItemClickListener.onItemClick(v, position);
//             }
//         }
//     }
// 
//     @Override
//     public boolean onLongClick(View v) {
//         if (null != mItemLongListener) {
//             int position = getAdapterPosition();
//             return position == RecyclerView.NO_POSITION || mItemLongListener.onLongClick(v, position);
//         }
//         return false;
//     }
// }


import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.dreamliner.lib.rvhelper.sample.R;
import com.dreamliner.lib.rvhelper.sample.entity.Addressbook;
import com.dreamliner.lib.rvhelper.sample.utils.CollectionUtils;
import com.dreamliner.rvhelper.adapter.BaseMixtureAdapter;
import com.dreamliner.rvhelper.interfaces.ItemClickListener;
import com.dreamliner.rvhelper.viewholder.BaseViewHolder;
import java.util.HashMap;
import java.util.List;
import androidx.annotation.NonNull;
import butterknife.BindView;
import butterknife.ButterKnife;
package com.dreamliner.lib.rvhelper.sample.ui.activity.addressbook;





/**
 * @author chenzj
 * @Title: AddressbookAdapter
 * @Description: 类的描述 -
 * @date 2016/10/12 14:04
 * @email admin@chenzhongjin.cn
 */
public class AddressbookAdapter extends BaseMixtureAdapter<Addressbook> {

    private HashMap<String, Integer> mHashMap;

    private final int ASSIST_SIGN = 0;
    private final int NEW_SIGN = 1;
    private final int LABEL = 2;
    private final int NORAML = 3;

    public AddressbookAdapter(ItemClickListener itemClickListener) {
        super(itemClickListener);
        mHashMap = new HashMap<>();
    }

    @Override
    public int getItemViewType(int position) {
        if (position == ASSIST_SIGN) {
            return ASSIST_SIGN;
        } else if (position == NEW_SIGN) {
            return NEW_SIGN;
        } else if (position == LABEL) {
            return LABEL;
        } else if (super.getItemViewType(position) != FOOTER_TYPE) {
            return NORAML;
        } else {
            return super.getItemViewType(position);
        }
    }

    @Override
// Path: demo/src/main/java/com/dreamliner/lib/rvhelper/sample/entity/Addressbook.java
// public class Addressbook implements Serializable, ItemDecorationTag {
// 
//     private String realname;
// 
//     private String itemDecorationtag;
// 
//     public Addressbook() {
//     }
// 
//     public Addressbook(String realname) {
//         this.realname = realname;
//     }
// 
//     public String getRealname() {
//         return realname;
//     }
// 
//     public void setRealname(String realname) {
//         this.realname = realname;
//     }
// 
//     public String getItemDecorationtag() {
//         return itemDecorationtag;
//     }
// 
//     public void setItemDecorationtag(String itemDecorationtag) {
//         this.itemDecorationtag = itemDecorationtag;
//     }
// 
//     @Override
//     public String getTag() {
//         return TextUtils.isEmpty(itemDecorationtag) ? "#" : itemDecorationtag;
//     }
// 
//     @Override
//     public String toString() {
//         return "Addressbook{" +
//                 ", realname='" + realname + '\'' +
//                 ", itemDecorationtag='" + itemDecorationtag + '\'' +
//                 '}';
//     }
// }
// 
// Path: demo/src/main/java/com/dreamliner/lib/rvhelper/sample/utils/CollectionUtils.java
// public class CollectionUtils {
// 
//     public static boolean isNotNull(Collection<?> collection) {
//         if (collection != null && collection.size() > 0) {
//             return true;
//         }
//         return false;
//     }
// 
//     public static boolean isNotNull(HashMap<?, ?> collection) {
//         if (collection != null && collection.size() > 0) {
//             return true;
//         }
//         return false;
//     }
// }
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/adapter/BaseMixtureAdapter.java
// public abstract class BaseMixtureAdapter<T> extends BaseNormalAdapter<T, BaseViewHolder> {
// 
//     public BaseMixtureAdapter() {
//     }
// 
//     public BaseMixtureAdapter(ItemClickListener itemClickListener) {
//         super(itemClickListener);
//     }
// 
//     public BaseMixtureAdapter(ItemLongListener itemLongListener) {
//         super(itemLongListener);
//     }
// 
//     public BaseMixtureAdapter(ItemClickListener itemClickListener, ItemLongListener itemLongListener) {
//         super(itemClickListener, itemLongListener);
//     }
// 
//     @Override
//     public final void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
//         if (!(holder instanceof FooterViewHolder)) {
//             bindView((BaseViewHolder) holder, position);
//         }
//     }
// }
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/interfaces/ItemClickListener.java
// public interface ItemClickListener {
//     public void onItemClick(View view, int position);
// }
// 
// Path: library/src/main/java/com/dreamliner/rvhelper/viewholder/BaseViewHolder.java
// public class BaseViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
// 
//     private ItemClickListener mItemClickListener;
//     private ItemLongListener mItemLongListener;
// 
//     public BaseViewHolder(View itemView) {
//         super(itemView);
//     }
// 
//     public BaseViewHolder(View itemView, ItemClickListener itemClickListener) {
//         super(itemView);
//         mItemClickListener = itemClickListener;
//     }
// 
//     public BaseViewHolder(View itemView, ItemLongListener itemLongListener) {
//         super(itemView);
//         mItemLongListener = itemLongListener;
//     }
// 
//     public BaseViewHolder(View itemView, ItemClickListener itemClickListener, ItemLongListener itemLongListener) {
//         super(itemView);
//         mItemClickListener = itemClickListener;
//         mItemLongListener = itemLongListener;
//     }
// 
//     @Override
//     public void onClick(View v) {
//         if (null != mItemClickListener) {
//             int position = getAdapterPosition();
//             if (position != RecyclerView.NO_POSITION) {
//                 mItemClickListener.onItemClick(v, position);
//             }
//         }
//     }
// 
//     @Override
//     public boolean onLongClick(View v) {
//         if (null != mItemLongListener) {
//             int position = getAdapterPosition();
//             return position == RecyclerView.NO_POSITION || mItemLongListener.onLongClick(v, position);
//         }
//         return false;
//     }
// }


// Path: demo/src/main/java/com/dreamliner/lib/rvhelper/sample/ui/activity/addressbook/AddressbookAdapter.java
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.dreamliner.lib.rvhelper.sample.R;
import com.dreamliner.lib.rvhelper.sample.entity.Addressbook;
import com.dreamliner.lib.rvhelper.sample.utils.CollectionUtils;
import com.dreamliner.rvhelper.adapter.BaseMixtureAdapter;
import com.dreamliner.rvhelper.interfaces.ItemClickListener;
import com.dreamliner.rvhelper.viewholder.BaseViewHolder;
import java.util.HashMap;
import java.util.List;
import androidx.annotation.NonNull;
import butterknife.BindView;
import butterknife.ButterKnife;

package com.dreamliner.lib.rvhelper.sample.ui.activity.addressbook;





/**
 * @author chenzj
 * @Title: AddressbookAdapter
 * @Description: 类的描述 -
 * @date 2016/10/12 14:04
 * @email admin@chenzhongjin.cn
 */
public class AddressbookAdapter extends BaseMixtureAdapter<Addressbook> {

    private HashMap<String, Integer> mHashMap;

    private final int ASSIST_SIGN = 0;
    private final int NEW_SIGN = 1;
    private final int LABEL = 2;
    private final int NORAML = 3;

    public AddressbookAdapter(ItemClickListener itemClickListener) {
        super(itemClickListener);
        mHashMap = new HashMap<>();
    }

    @Override
    public int getItemViewType(int position) {
        if (position == ASSIST_SIGN) {
            return ASSIST_SIGN;
        } else if (position == NEW_SIGN) {
            return NEW_SIGN;
        } else if (position == LABEL) {
            return LABEL;
        } else if (super.getItemViewType(position) != FOOTER_TYPE) {
            return NORAML;
        } else {
            return super.getItemViewType(position);
        }
    }

    @Override
    public BaseViewHolder createCustomViewHolder(ViewGroup parent, int viewType) {