package com.dl7.mvp.module.photo.news;
import com.dl7.mvp.api.RetrofitService;
import com.dl7.mvp.api.bean.PhotoInfo;
import com.dl7.mvp.module.base.IBasePresenter;
import com.dl7.mvp.module.base.ILoadDataView;
import com.orhanobut.logger.Logger;
import java.util.List;
import rx.Subscriber;
import rx.functions.Action0;
/**
* Created by long on 2016/9/5.
* 图片新闻列表 Presenter
*/
public class PhotoNewsPresenter implements IBasePresenter {
private String mNextSetId;
private ILoadDataView mView;
public PhotoNewsPresenter(ILoadDataView view) {
this.mView = view;
}
@Override
public void getData(boolean isRefresh) {
RetrofitService.getPhotoList()
.doOnSubscribe(new Action0() {
@Override
public void call() {
mView.showLoading();
}
})
.compose(mView.<List<PhotoInfo>>bindToLife())
.subscribe(new Subscriber<List<PhotoInfo>>() {
@Override
public void onCompleted() {
mView.hideLoading();
}
@Override
public void onError(Throwable e) {
Logger.e(e.toString());
mView.showNetError();
}
@Override
public void onNext(List<PhotoInfo> photoList) {
mView.loadData(photoList);
mNextSetId = photoList.get(photoList.size() - 1).getSetid();
}
});
}
@Override
public void getMoreData() {
RetrofitService.getPhotoMoreList(mNextSetId)
.compose(mView.<List<PhotoInfo>>bindToLife())
.subscribe(new Subscriber<List<PhotoInfo>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
mView.loadNoData();
}
@Override
public void onNext(List<PhotoInfo> photoList) {
mView.loadMoreData(photoList);
}
});
}
}