package com.liuguangqiang.idaily.ui.viewmodel;
import android.databinding.BaseObservable;
import android.databinding.Bindable;
import com.liuguangqiang.idaily.BR;
import com.liuguangqiang.idaily.utils.databinding.DBRecyclerView;
import java.util.ArrayList;
import java.util.List;
/**
* A abstract ViewModel for RecylerView
* <p/>
* Created by Eric on 16/3/21.
*/
public abstract class AbsRecyclerViewModel<T> extends BaseObservable {
@Bindable
public List<T> data = new ArrayList<>();
@Bindable
public int footerStatus = DBRecyclerView.SHOW_FOOTER;
@Bindable
public boolean loading = false;
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
public int getFooterStatus() {
return footerStatus;
}
public void setFooterStatus(int footerStatus) {
this.footerStatus = footerStatus;
}
public void setLoading(boolean loading) {
this.loading = loading;
}
public boolean isLoading() {
return loading;
}
public void requestData() {
loading = true;
notifyPropertyChanged(BR.loading);
}
public void onRequestFinished() {
loading = false;
notifyPropertyChanged(BR.loading);
}
public void onRequestSuccess(List<T> list) {
if (list.size() < 20) {
footerStatus = DBRecyclerView.HIDE_FOOTER;
} else {
footerStatus = DBRecyclerView.SHOW_FOOTER;
}
data.addAll(list);
notifyPropertyChanged(BR.data);
}
}