Last active
June 14, 2017 11:27
-
-
Save Firsto/19d4ea078ae8b0974e096fe6042edfca to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import com.arellomobile.mvp.MvpPresenter; | |
import com.arellomobile.mvp.MvpView; | |
import gb.sweetlifecl.di.module.SchedulerProvider; | |
import rx.Completable; | |
import rx.Observable; | |
import rx.Single; | |
import rx.Subscription; | |
public abstract class RxPresenter<V extends MvpView> extends MvpPresenter<V> { | |
private SchedulerProvider schedulerProvider; | |
public RxPresenter(SchedulerProvider schedulerProvider) { | |
this.schedulerProvider = schedulerProvider; | |
} | |
public void unsubscribe(Subscription... subscriptions) { | |
for (Subscription subscription : subscriptions) { | |
if (subscription != null && !subscription.isUnsubscribed()) { | |
subscription.unsubscribe(); | |
} | |
} | |
} | |
protected <T> Observable.Transformer<T, T> applyObservableSchedulers() { | |
return observable -> observable.subscribeOn(schedulerProvider.getSubscribeOn()) | |
.observeOn(schedulerProvider.getObserveOn()); | |
} | |
protected <T> Single.Transformer<T, T> applySingleSchedulers() { | |
return single -> single.subscribeOn(schedulerProvider.getSubscribeOn()) | |
.observeOn(schedulerProvider.getObserveOn()); | |
} | |
protected Completable.Transformer applyCompletableSchedulers() { | |
return completable -> completable.subscribeOn(schedulerProvider.getSubscribeOn()) | |
.observeOn(schedulerProvider.getObserveOn()); | |
} | |
public void setSchedulerProvider(SchedulerProvider schedulerProvider) { | |
this.schedulerProvider = schedulerProvider; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment