package com.example.administrator.cookman.presenter;
import android.content.Context;
import com.example.administrator.cookman.IView.ISplashView;
import com.example.administrator.cookman.model.entity.CookEntity.CategoryChildInfo1;
import com.example.administrator.cookman.model.entity.CookEntity.CategoryResultInfo;
import com.example.administrator.cookman.model.entity.CookEntity.subscriberEntity.CategorySubscriberResultInfo;
import com.example.administrator.cookman.model.interfaces.ICookRespository;
import com.example.administrator.cookman.model.manager.CookCategoryManager;
import com.example.administrator.cookman.model.manager.CustomCategoryManager;
import com.example.administrator.cookman.model.respository.CookRespository;
import com.example.administrator.cookman.utils.Logger.Logger;
import java.util.ArrayList;
import rx.Subscriber;
/**
* Created by Administrator on 2017/2/19.
*/
public class SplashPresenter extends Presenter{
private ICookRespository iCookRespository;
private ISplashView iSplashView;
public SplashPresenter(Context context, ISplashView iSplashView){
super(context);
this.iCookRespository = CookRespository.getInstance();
this.iSplashView = iSplashView;
}
public void destroy(){
if(getCategoryQuerySubscriber != null){
getCategoryQuerySubscriber.unsubscribe();
}
}
public void initData(){
rxJavaExecuter.execute(
iCookRespository.getCategoryQuery()
, getCategoryQuerySubscriber = new GetCategoryQuerySubscriber()
);
}
private GetCategoryQuerySubscriber getCategoryQuerySubscriber;
private class GetCategoryQuerySubscriber extends Subscriber<CategorySubscriberResultInfo> {
@Override
public void onCompleted(){
}
@Override
public void onError(Throwable e){
if(getCategoryQuerySubscriber != null){
getCategoryQuerySubscriber.unsubscribe();
}
CustomCategoryManager.getInstance().initData(null);
if(iSplashView != null)
iSplashView.onSplashInitData();
}
@Override
public void onNext(CategorySubscriberResultInfo data){
ArrayList<CategoryChildInfo1> datas = CookCategoryManager.removeBangZi(data.getResult().getChilds());
CookCategoryManager.getInstance().initDatas(datas);
CustomCategoryManager.getInstance().initData(datas);
if(iSplashView != null)
iSplashView.onSplashInitData();
this.onCompleted();
}
}
}