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; } }