package com.c9mj.platform.gallery.mvp.presenter.impl; import com.c9mj.platform.explore.api.ExploreAPI; import com.c9mj.platform.gallery.mvp.model.bean.PhotoSetBean; import com.c9mj.platform.gallery.mvp.presenter.IGalleryPresenter; import com.c9mj.platform.gallery.mvp.view.IGalleryView; import com.c9mj.platform.util.retrofit.HttpSubscriber; import com.c9mj.platform.util.retrofit.RetrofitHelper; import org.reactivestreams.Publisher; import java.util.ArrayList; import io.reactivex.Flowable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Function; import io.reactivex.schedulers.Schedulers; /** * Created by Administrator on 2016/12/16. */ public class GalleryPresenterImpl implements IGalleryPresenter { private final IGalleryView view; public GalleryPresenterImpl(IGalleryView view) { this.view = view; } @Override public void getExploreSet(String photoSetId) { /** * photoSetId=00AJ0003|618725 * typeId=0003 * setId=618725 */ String[] photoSetArray = photoSetId.split("\\|"); String typeId = photoSetArray[0].substring(photoSetArray[0].length() - 4, photoSetArray[0].length());//取hou四位 String setId = photoSetArray[1]; RetrofitHelper.getExploreHelper().create(ExploreAPI.class) .getExploreSet(typeId, setId) .flatMap(new Function<PhotoSetBean, Publisher<ArrayList<String>>>() { @Override public Publisher<ArrayList<String>> apply(PhotoSetBean photoSetBean) throws Exception { ArrayList<String> imgList = new ArrayList<>(); for (PhotoSetBean.PhotosBean photosBean : photoSetBean.getPhotos()) { imgList.add(photosBean.getImgurl()); } return Flowable.just(imgList); } }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new HttpSubscriber<ArrayList<String>>() { @Override public void _onNext(ArrayList<String> imgList) { view.updateViewPager(imgList); } @Override public void _onError(String message) { view.showError(message); } }); } }