package com.think.uiloader.ui.mvp.presenter; import com.google.common.base.Optional; import com.think.tlr.TLRLog; import com.think.uiloader.data.entity.ImageEntity; import com.think.uiloader.domain.DefaultObserver; import com.think.uiloader.domain.ImageCase; import com.think.uiloader.ui.mvp.contract.ImageContract; import java.lang.ref.WeakReference; import javax.inject.Inject; /** * Created by borney on 5/8/17. */ public class ImagePresenter implements ImageContract.Presenter { private ImageCase mImageCase; private WeakReference<ImageContract.View> mView; @Inject ImagePresenter(ImageCase imageCase) { mImageCase = imageCase; } @Override public void images(int startIndex, int returnNum) { if (getView().isPresent()) { getView().get().startImages(); } mImageCase.images(startIndex, returnNum, new DefaultObserver<ImageEntity>() { @Override public void onNext(ImageEntity entity) { TLRLog.v("-----------------------get images success!!!-------------------"); if (getView().isPresent()) { getView().get().imagesSuccess(entity.getImgs()); } } @Override public void onComplete() { if (getView().isPresent()) { getView().get().endImages(); } } @Override public void onError(Throwable exception) { if (getView().isPresent()) { getView().get().error(0); } } }); } @Override public void setView(ImageContract.View view) { mView = new WeakReference<>(view); } @Override public void resume() { } @Override public void pause() { } @Override public void destroy() { } private Optional<ImageContract.View> getView() { return Optional.fromNullable(mView.get()); } }