package com.king.tv.mvp.presenter; import com.king.base.util.LogUtils; import com.king.base.util.StringUtils; import com.king.tv.App; import com.king.tv.bean.LiveInfo; import com.king.tv.bean.LiveListResult; import com.king.tv.bean.P; import com.king.tv.bean.SearchRequestBody; import com.king.tv.bean.SearchResult; import com.king.tv.mvp.base.BasePresenter; import com.king.tv.mvp.view.ILiveListView; import java.util.List; import javax.inject.Inject; import rx.Observer; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action1; import rx.functions.Func1; import rx.schedulers.Schedulers; /** * @author Jenly <a href="mailto:jenly1314@gmail.com">Jenly</a> * @since 2017/2/21 */ public class LiveListPresenter extends BasePresenter<ILiveListView> { @Inject public LiveListPresenter(App app) { super(app); } public void getLiveList(String slug){ if(StringUtils.isBlank(slug)){ getLiveList(); }else{ getLiveListBySlug(slug); } } public void getLiveList(){ if(isViewAttached()){ getView().showProgress(); } getAppComponent().getAPIService() .getLiveListResult() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<LiveListResult>() { @Override public void onCompleted() { if(isViewAttached()) getView().onCompleted(); } @Override public void onError(Throwable e) { if(isViewAttached()) getView().onError(e); } @Override public void onNext(LiveListResult liveListResult) { LogUtils.d("Response:" + liveListResult); List<LiveInfo> list = null; if(liveListResult!=null){ list = liveListResult.getData(); } if(isViewAttached()) getView().onGetLiveList(list); } }); } public void getLiveListBySlug(String slug){ if(isViewAttached()){ getView().showProgress(); } getAppComponent().getAPIService() .getLiveListResultByCategories(slug) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<LiveListResult>() { @Override public void onCompleted() { if(isViewAttached()) getView().onCompleted(); } @Override public void onError(Throwable e) { if(isViewAttached()) getView().onError(e); } @Override public void onNext(LiveListResult liveListResult) { LogUtils.d("Response:" + liveListResult); List<LiveInfo> list = null; if(liveListResult!=null){ list = liveListResult.getData(); } if(isViewAttached()) getView().onGetLiveList(list); } }); } public void getLiveListByKey(String key,int page){ getLiveListByKey(key,page,P.DEFAULT_SIZE); } public void getLiveListByKey(String key, final int page, int pageSize){ if(isViewAttached()){ getView().showProgress(); } getAppComponent().getAPIService() .search(SearchRequestBody.getInstance(new P(page,key,pageSize))) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .map(new Func1<SearchResult, List<LiveInfo>>() { @Override public List<LiveInfo> call(SearchResult searchResult) { LogUtils.d("Response:" + searchResult); if(searchResult!=null){ if(searchResult.getData()!=null){ return searchResult.getData().getItems(); }else{ LogUtils.d(searchResult.toString()); } } return null; } }) .onErrorReturn(new Func1<Throwable, List<LiveInfo>>() { @Override public List<LiveInfo> call(Throwable throwable) { LogUtils.w(throwable); return null; } }) .subscribe(new Action1<List<LiveInfo>>() { @Override public void call(List<LiveInfo> list) { if(isViewAttached()){ if(page>0){ getView().onGetMoreLiveList(list); }else{ getView().onGetLiveList(list); } } } }); } }