package com.codeest.geeknews.presenter.zhihu;
import com.codeest.geeknews.base.RxPresenter;
import com.codeest.geeknews.model.DataManager;
import com.codeest.geeknews.model.bean.SectionChildListBean;
import com.codeest.geeknews.base.contract.zhihu.SectionChildContract;
import com.codeest.geeknews.util.RxUtil;
import com.codeest.geeknews.widget.CommonSubscriber;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.functions.Function;
/**
* Created by codeest on 16/8/28.
*/
public class SectionChildPresenter extends RxPresenter<SectionChildContract.View> implements SectionChildContract.Presenter{
private DataManager mDataManager;
@Inject
public SectionChildPresenter(DataManager mDataManager) {
this.mDataManager = mDataManager;
}
@Override
public void getThemeChildData(int id) {
addSubscribe(mDataManager.fetchSectionChildListInfo(id)
.compose(RxUtil.<SectionChildListBean>rxSchedulerHelper())
.map(new Function<SectionChildListBean, SectionChildListBean>() {
@Override
public SectionChildListBean apply(SectionChildListBean sectionChildListBean) {
List<SectionChildListBean.StoriesBean> list = sectionChildListBean.getStories();
for(SectionChildListBean.StoriesBean item : list) {
item.setReadState(mDataManager.queryNewsId(item.getId()));
}
return sectionChildListBean;
}
})
.subscribeWith(new CommonSubscriber<SectionChildListBean>(mView) {
@Override
public void onNext(SectionChildListBean sectionChildListBean) {
mView.showContent(sectionChildListBean);
}
})
);
}
@Override
public void insertReadToDB(int id) {
mDataManager.insertNewsId(id);
}
}