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);
}
});
}
}