package in.mvpstarter.sample.ui.main; import java.util.List; import javax.inject.Inject; import in.mvpstarter.sample.data.DataManager; import in.mvpstarter.sample.injection.ConfigPersistent; import in.mvpstarter.sample.ui.base.BasePresenter; import io.reactivex.SingleObserver; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; @ConfigPersistent public class MainPresenter extends BasePresenter<MainMvpView> { private final DataManager mDataManager; @Inject public MainPresenter(DataManager dataManager) { mDataManager = dataManager; } @Override public void attachView(MainMvpView mvpView) { super.attachView(mvpView); } public void getPokemon(int limit) { checkViewAttached(); getMvpView().showProgress(true); mDataManager.getPokemonList(limit) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(new SingleObserver<List<String>>() { @Override public void onSubscribe(Disposable d) { } @Override public void onSuccess(List<String> pokemon) { getMvpView().showProgress(false); getMvpView().showPokemon(pokemon); } @Override public void onError(Throwable error) { getMvpView().showProgress(false); getMvpView().showError(error); } }); } }