package com.codeest.geeknews.presenter.gold;
import com.codeest.geeknews.base.RxPresenter;
import com.codeest.geeknews.base.contract.gold.GoldMainContract;
import com.codeest.geeknews.component.RxBus;
import com.codeest.geeknews.model.DataManager;
import com.codeest.geeknews.model.bean.GoldManagerBean;
import com.codeest.geeknews.model.bean.GoldManagerItemBean;
import com.codeest.geeknews.util.RxUtil;
import com.codeest.geeknews.widget.CommonSubscriber;
import javax.inject.Inject;
import io.realm.RealmList;
/**
* Created by codeest on 16/11/28.
*/
public class GoldMainPresenter extends RxPresenter<GoldMainContract.View> implements GoldMainContract.Presenter{
private DataManager mDataManager;
private RealmList<GoldManagerItemBean> mList;
@Inject
public GoldMainPresenter(DataManager mDataManager) {
this.mDataManager = mDataManager;
}
@Override
public void attachView(GoldMainContract.View view) {
super.attachView(view);
registerEvent();
}
private void registerEvent() {
addSubscribe(RxBus.getDefault().toFlowable(GoldManagerBean.class)
.compose(RxUtil.<GoldManagerBean>rxSchedulerHelper())
.subscribeWith(new CommonSubscriber<GoldManagerBean>(mView, "设置失败", false) {
@Override
public void onNext(GoldManagerBean goldManagerBean) {
mDataManager.updateGoldManagerList(goldManagerBean);
mView.updateTab(goldManagerBean.getManagerList());
}
@Override
public void onError(Throwable e) {
super.onError(e);
registerEvent();
}
})
);
}
@Override
public void initManagerList() {
if (mDataManager.getManagerPoint()) {
//第一次使用,生成默认ManagerList
initList();
mDataManager.updateGoldManagerList(new GoldManagerBean(mList));
mView.updateTab(mList);
} else {
if (mDataManager.getGoldManagerList() == null) {
initList();
mDataManager.updateGoldManagerList(new GoldManagerBean(mList));
} else {
mList = mDataManager.getGoldManagerList().getManagerList();
}
mView.updateTab(mList);
}
}
@Override
public void setManagerList() {
mView.jumpToManager(mDataManager.getGoldManagerList());
}
private void initList() {
mList = new RealmList<>();
mList.add(new GoldManagerItemBean(0, true));
mList.add(new GoldManagerItemBean(1, true));
mList.add(new GoldManagerItemBean(2, true));
mList.add(new GoldManagerItemBean(3, true));
mList.add(new GoldManagerItemBean(4, false));
mList.add(new GoldManagerItemBean(5, false));
mList.add(new GoldManagerItemBean(6, false));
mList.add(new GoldManagerItemBean(7, false));
}
}