Created
February 11, 2018 18:11
-
-
Save sallySalem/061b02b922f8284d9abf51ea717a5e88 to your computer and use it in GitHub Desktop.
Use Kotlin extension function instead of `compose()` in java to reuse the code of schedulers in Rxjava
This file contains 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
//So no need to inject ioScheduler or computationScheduler | |
Observable.just("").applyIoScheduler() | |
Observable.just("").applyComputationScheduler() | |
Flowable.just("").applyIoScheduler() | |
Flowable.just("").applyComputationScheduler() | |
Single.just("").applyIoScheduler() | |
Single.just("").applyComputationScheduler() | |
Maybe.just("").applyIoScheduler() | |
Maybe.just("").applyComputationScheduler() |
This file contains 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
//Observable | |
fun <T> Observable<T>.applyIoScheduler() = applyScheduler(Schedulers.io()) | |
fun <T> Observable<T>.applyComputationScheduler() = applyScheduler(Schedulers.computation()) | |
private fun <T> Observable<T>.applyScheduler(scheduler: Scheduler) = | |
subscribeOn(scheduler).observeOn(AndroidSchedulers.mainThread()) | |
//Flowable | |
fun <T> Flowable<T>.applyIoScheduler() = applyScheduler(Schedulers.io()) | |
fun <T> Flowable<T>.applyComputationScheduler() = applyScheduler(Schedulers.computation()) | |
private fun <T> Flowable<T>.applyScheduler(scheduler: Scheduler) = | |
subscribeOn(scheduler).observeOn(AndroidSchedulers.mainThread()) | |
//Single | |
fun <T> Single<T>.applyIoScheduler() = applyScheduler(Schedulers.io()) | |
fun <T> Single<T>.applyComputationScheduler() = applyScheduler(Schedulers.computation()) | |
private fun <T> Single<T>.applyScheduler(scheduler: Scheduler) = | |
subscribeOn(scheduler).observeOn(AndroidSchedulers.mainThread()) | |
//Maybe | |
fun <T> Maybe<T>.applyIoScheduler() = applyScheduler(Schedulers.io()) | |
fun <T> Maybe<T>.applyComputationScheduler() = applyScheduler(Schedulers.computation()) | |
private fun <T> Maybe<T>.applyScheduler(scheduler: Scheduler) = | |
subscribeOn(scheduler).observeOn(AndroidSchedulers.mainThread()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment