// Path: recyclerview/src/main/java/me/henrytao/recyclerview/holder/BlankHolder.java
// public class BlankHolder extends BaseHolder {
// 
//   public BlankHolder(View itemView) {
//     super(itemView);
//   }
// 
//   public BlankHolder(LayoutInflater inflater, ViewGroup parent, @LayoutRes int layoutId) {
//     super(inflater, parent, layoutId);
//   }
// 
//   public BlankHolder(LayoutInflater inflater, ViewGroup parent, @LayoutRes int layoutId, boolean isFillParent) {
//     super(inflater, parent, layoutId, isFillParent);
//   }
// }


import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import me.henrytao.recyclerview.holder.BlankHolder;
    return position >= getItemCount();
  }

  public boolean isFooterView(int position) {
    return getFooterViewIndex(position) >= 0;
  }

  public boolean isHeaderView(int position) {
    return getHeaderViewIndex(position) >= 0;
  }

  public boolean isItemView(int position) {
    return !isHeaderView(position) && !isFooterView(position) && !isBlankView(position);
  }

  public void notifyFooterChanged(int index) {
    int position = getFooterViewPosition(index);
    if (position >= 0) {
      notifyItemChanged(position);
    }
  }

  public void notifyHeaderChanged(int index) {
    int position = getHeaderViewPosition(index);
    if (position >= 0) {
      notifyItemChanged(position);
    }
  }

  public RecyclerView.ViewHolder onCreateBlankViewHolder(LayoutInflater inflater, ViewGroup parent) {
// Path: recyclerview/src/main/java/me/henrytao/recyclerview/holder/BlankHolder.java
// public class BlankHolder extends BaseHolder {
// 
//   public BlankHolder(View itemView) {
//     super(itemView);
//   }
// 
//   public BlankHolder(LayoutInflater inflater, ViewGroup parent, @LayoutRes int layoutId) {
//     super(inflater, parent, layoutId);
//   }
// 
//   public BlankHolder(LayoutInflater inflater, ViewGroup parent, @LayoutRes int layoutId, boolean isFillParent) {
//     super(inflater, parent, layoutId, isFillParent);
//   }
// }


// Path: recyclerview/src/main/java/me/henrytao/recyclerview/adapter/BaseAdapter.java
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import me.henrytao.recyclerview.holder.BlankHolder;

    return position >= getItemCount();
  }

  public boolean isFooterView(int position) {
    return getFooterViewIndex(position) >= 0;
  }

  public boolean isHeaderView(int position) {
    return getHeaderViewIndex(position) >= 0;
  }

  public boolean isItemView(int position) {
    return !isHeaderView(position) && !isFooterView(position) && !isBlankView(position);
  }

  public void notifyFooterChanged(int index) {
    int position = getFooterViewPosition(index);
    if (position >= 0) {
      notifyItemChanged(position);
    }
  }

  public void notifyHeaderChanged(int index) {
    int position = getHeaderViewPosition(index);
    if (position >= 0) {
      notifyItemChanged(position);
    }
  }

  public RecyclerView.ViewHolder onCreateBlankViewHolder(LayoutInflater inflater, ViewGroup parent) {
    return new BlankHolder(new View(parent.getContext()));