package com.codeest.geeknews.presenter.zhihu; import com.codeest.geeknews.base.RxPresenter; import com.codeest.geeknews.model.DataManager; import com.codeest.geeknews.model.bean.ThemeChildListBean; import com.codeest.geeknews.base.contract.zhihu.ThemeChildContract; 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/24. */ public class ThemeChildPresenter extends RxPresenter<ThemeChildContract.View> implements ThemeChildContract.Presenter{ private DataManager mDataManager; @Inject public ThemeChildPresenter(DataManager mDataManager) { this.mDataManager = mDataManager; } @Override public void getThemeChildData(int id) { addSubscribe(mDataManager.fetchThemeChildListInfo(id) .compose(RxUtil.<ThemeChildListBean>rxSchedulerHelper()) .map(new Function<ThemeChildListBean, ThemeChildListBean>() { @Override public ThemeChildListBean apply(ThemeChildListBean themeChildListBean) { List<ThemeChildListBean.StoriesBean> list = themeChildListBean.getStories(); for(ThemeChildListBean.StoriesBean item : list) { item.setReadState(mDataManager.queryNewsId(item.getId())); } return themeChildListBean; } }) .subscribeWith(new CommonSubscriber<ThemeChildListBean>(mView) { @Override public void onNext(ThemeChildListBean themeChildListBean) { mView.showContent(themeChildListBean); } }) ); } @Override public void insertReadToDB(int id) { mDataManager.insertNewsId(id); } }