package com.hitherejoe.androidtvboilerplate.ui.search;
import com.hitherejoe.androidtvboilerplate.data.DataManager;
import com.hitherejoe.androidtvboilerplate.data.model.Cat;
import com.hitherejoe.androidtvboilerplate.ui.base.BasePresenter;
import java.util.List;
import javax.inject.Inject;
import rx.SingleSubscriber;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
import timber.log.Timber;
public class SearchContentPresenter extends BasePresenter<SearchContentMvpView> {
private Subscription mSubscription;
private final DataManager mDataManager;
@Inject
public SearchContentPresenter(DataManager dataManager) {
mDataManager = dataManager;
}
@Override
public void detachView() {
super.detachView();
if (mSubscription != null) mSubscription.unsubscribe();
}
public void searchCats(List<Cat> cats) {
checkViewAttached();
mSubscription = mDataManager.getCats(cats)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new SingleSubscriber<List<Cat>>() {
@Override
public void onSuccess(List<Cat> cats) {
getMvpView().showCats(cats);
}
@Override
public void onError(Throwable error) {
getMvpView().showCatsError();
Timber.e(error, "There was an error loading the cats!");
}
});
}
}