package com.smartalk.gank.presenter; import android.content.Context; import android.content.Intent; import com.smartalk.gank.http.PanClient; import com.smartalk.gank.model.MeiziData; import com.smartalk.gank.model.休息视频Data; import com.smartalk.gank.ui.activity.AboutActivity; import com.smartalk.gank.ui.activity.BatteryActivity; import com.smartalk.gank.view.IMainView; import rx.Observable; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action1; import rx.functions.Func2; import rx.schedulers.Schedulers; /** * 主界面presenter * Created by panl on 15/12/24. */ public class MainPresenter extends BasePresenter<IMainView> { public MainPresenter(Context context, IMainView iView) { super(context, iView); } @Override public void release() { subscription.unsubscribe(); } public void fetchMeiziData(int page) { iView.showProgress(); subscription = Observable.zip(PanClient.getGankRetrofitInstance().getMeiziData(page), PanClient.getGankRetrofitInstance().get休息视频Data(page), new Func2<MeiziData, 休息视频Data, MeiziData>() { @Override public MeiziData call(MeiziData meiziData, 休息视频Data 休息视频Data) { return createMeiziDataWith休息视频Desc(meiziData, 休息视频Data); } }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<MeiziData>() { @Override public void call(MeiziData meiziData) { if (meiziData.results.size() == 0) { iView.showNoMoreData(); } else { iView.showMeiziList(meiziData.results); } iView.hideProgress(); } }, new Action1<Throwable>() { @Override public void call(Throwable throwable) { iView.showErrorView(); iView.hideProgress(); } }); } private MeiziData createMeiziDataWith休息视频Desc(MeiziData meiziData, 休息视频Data data) { int size = Math.min(meiziData.results.size(), data.results.size()); for (int i = 0; i < size; i++) { meiziData.results.get(i).desc = meiziData.results.get(i).desc + "," + data.results.get(i).desc; meiziData.results.get(i).who = data.results.get(i).who; } return meiziData; } public void toBatteryActivity() { Intent intent = new Intent(context, BatteryActivity.class); context.startActivity(intent); } public void toAboutActivity() { Intent intent = new Intent(context, AboutActivity.class); context.startActivity(intent); } }