package org.maepaysoh.maepaysoh.adapters;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
import static android.support.v7.widget.RecyclerView.Adapter;
import static android.support.v7.widget.RecyclerView.AdapterDataObserver;
import static android.support.v7.widget.RecyclerView.ViewHolder;
/**
* @author rockerhieu on 7/6/15.
*/
public class RecyclerViewAdapterWrapper extends Adapter {
private final Adapter wrapped;
public RecyclerViewAdapterWrapper(Adapter wrapped) {
super();
this.wrapped = wrapped;
this.wrapped.registerAdapterDataObserver(new AdapterDataObserver() {
public void onChanged() {
notifyDataSetChanged();
}
public void onItemRangeChanged(int positionStart, int itemCount) {
notifyItemRangeChanged(positionStart, itemCount);
}
public void onItemRangeInserted(int positionStart, int itemCount) {
notifyItemRangeInserted(positionStart, itemCount);
}
public void onItemRangeRemoved(int positionStart, int itemCount) {
notifyItemRangeRemoved(positionStart, itemCount);
}
public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) {
notifyItemMoved(fromPosition, toPosition);
}
});
}
@Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return wrapped.onCreateViewHolder(parent, viewType);
}
@Override public void onBindViewHolder(ViewHolder holder, int position) {
wrapped.onBindViewHolder(holder, position);
}
@Override public int getItemCount() {
return wrapped.getItemCount();
}
@Override public int getItemViewType(int position) {
return wrapped.getItemViewType(position);
}
@Override public void setHasStableIds(boolean hasStableIds) {
wrapped.setHasStableIds(hasStableIds);
}
@Override public long getItemId(int position) {
return wrapped.getItemId(position);
}
@Override public void onViewRecycled(ViewHolder holder) {
wrapped.onViewRecycled(holder);
}
@Override public boolean onFailedToRecycleView(ViewHolder holder) {
return wrapped.onFailedToRecycleView(holder);
}
@Override public void onViewAttachedToWindow(ViewHolder holder) {
wrapped.onViewAttachedToWindow(holder);
}
@Override public void onViewDetachedFromWindow(ViewHolder holder) {
wrapped.onViewDetachedFromWindow(holder);
}
@Override public void registerAdapterDataObserver(AdapterDataObserver observer) {
wrapped.registerAdapterDataObserver(observer);
}
@Override public void unregisterAdapterDataObserver(AdapterDataObserver observer) {
wrapped.unregisterAdapterDataObserver(observer);
}
@Override public void onAttachedToRecyclerView(RecyclerView recyclerView) {
wrapped.onAttachedToRecyclerView(recyclerView);
}
@Override public void onDetachedFromRecyclerView(RecyclerView recyclerView) {
wrapped.onDetachedFromRecyclerView(recyclerView);
}
public RecyclerView.Adapter getWrappedAdapter() {
return wrapped;
}
}