package io.virtualapp.abs.nestedadapter;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
public class RecyclerViewAdapterWrapper extends RecyclerView.Adapter {
protected final RecyclerView.Adapter wrapped;
public RecyclerViewAdapterWrapper(RecyclerView.Adapter wrapped) {
super();
this.wrapped = wrapped;
this.wrapped.registerAdapterDataObserver(new RecyclerView.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 RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return wrapped.onCreateViewHolder(parent, viewType);
}
@Override
public void onBindViewHolder(RecyclerView.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(RecyclerView.ViewHolder holder) {
wrapped.onViewRecycled(holder);
}
@Override
public boolean onFailedToRecycleView(RecyclerView.ViewHolder holder) {
return wrapped.onFailedToRecycleView(holder);
}
@Override
public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) {
wrapped.onViewAttachedToWindow(holder);
}
@Override
public void onViewDetachedFromWindow(RecyclerView.ViewHolder holder) {
wrapped.onViewDetachedFromWindow(holder);
}
@Override
public void registerAdapterDataObserver(RecyclerView.AdapterDataObserver observer) {
wrapped.registerAdapterDataObserver(observer);
}
@Override
public void unregisterAdapterDataObserver(RecyclerView.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;
}
}