package com.team.zhuoke.ui.refreshview.recyclerview;
import android.support.v7.widget.RecyclerView;
import com.team.zhuoke.ui.refreshview.XRefreshView;
/**
* 作者:gaoyin
* 电话:18810474975
* 邮箱:18810474975@163.com
* 版本号:1.0
* 类描述:
* 备注消息:
* 修改时间:16/10/26 下午1:29
**/
public class RecyclerViewDataObserver extends RecyclerView.AdapterDataObserver {
private BaseRecyclerAdapter mAdapter;
private XRefreshView xRefreshView;
private boolean mAttached;
private boolean hasData = true;
public RecyclerViewDataObserver() {
}
public void setData(BaseRecyclerAdapter adapter, XRefreshView xRefreshView) {
mAdapter = adapter;
this.xRefreshView = xRefreshView;
// onChanged();
}
private void enableEmptyView(boolean enable) {
if (xRefreshView != null) {
xRefreshView.enableEmptyView(enable);
}
}
@Override
public void onChanged() {
if (mAdapter == null) {
return;
}
if (mAdapter.isEmpty()) {
if (hasData) {
enableEmptyView(true);
hasData = false;
}
} else {
if (!hasData) {
enableEmptyView(false);
hasData = true;
}
}
}
@Override
public void onItemRangeChanged(int positionStart, int itemCount, Object payload) {
onChanged();
}
@Override
public void onItemRangeChanged(int positionStart, int itemCount) {
onChanged();
}
@Override
public void onItemRangeInserted(int positionStart, int itemCount) {
onChanged();
}
@Override
public void onItemRangeRemoved(int positionStart, int itemCount) {
onChanged();
}
@Override
public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) {
onChanged();
}
public void attach() {
mAttached = true;
}
public boolean hasAttached() {
return mAttached;
}
}