Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.75 KB | None | 0 0
  1. abstract class ObservableUseCase<T, in Params> constructor(
  2.     private val postExecutionThread: PostExecutionThread
  3. ) {
  4.  
  5.     private val disposables = CompositeDisposable()
  6.  
  7.     abstract fun buildUseCaseObservable(params: Params? = null): Observable<T>
  8.  
  9.     open fun execute(observer: DisposableObserver<T>, params: Params? = null) {
  10.         val observable = this.buildUseCaseObservable(params)
  11.             .subscribeOn(Schedulers.io())
  12.             .observeOn(postExecutionThread.scheduler)
  13.  
  14.         addDisposable(observable.subscribeWith(observer))
  15.     }
  16.  
  17.     private fun addDisposable(disposable: Disposable) {
  18.         disposables.add(disposable)
  19.     }
  20.  
  21.     fun dispose() {
  22.         if (!disposables.isDisposed) disposables.dispose()
  23.     }
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement