Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. import io.reactivex.ObservableTransformer
  2.  
  3. import io.reactivex.ObservableTransformer
  4.  
  5. object RxUtil {
  6.  
  7. private val LOADING_MESSAGE = "Loading"
  8.  
  9. fun <T> applyUIDefaults(rxFragment: RxFragment): ObservableTransformer<T, T> {
  10. return { upstream ->
  11. upstream
  12. .compose(RxUtil.addToCompositeDisposable<Any>(rxFragment))
  13. .compose(RxUtil.applySchedulers<Any>())
  14. .compose(RxUtil.applyRequestStatus<Any>(rxFragment))
  15. .compose(RxUtil.showLoadingDialog<Any>(rxFragment))
  16. }
  17. }
  18.  
  19. private fun <T> applyRequestStatus(rxFragment: RxFragment): ObservableTransformer<T, T> {
  20. return { upstream ->
  21. upstream.doOnSubscribe({ disposable -> rxFragment.setRequestInProgress(true) })
  22. .doOnTerminate({ rxFragment.setRequestInProgress(false) })
  23. }
  24. }
  25.  
  26. private fun <T> applySchedulers(): ObservableTransformer<T, T> {
  27. return schedulersTransformer as ObservableTransformer<T, T>
  28. }
  29.  
  30. private fun <T> addToCompositeDisposable(rxFragment: RxFragment): ObservableTransformer<T, T> {
  31. return { upstream -> upstream.doOnSubscribe({ disposable -> rxFragment.getCompositeDisposable().add(disposable) }) }
  32. }
  33.  
  34. private fun <T> showLoadingDialog(rxFragment: RxFragment): ObservableTransformer<T, T> {
  35. return { observable ->
  36. observable
  37. .doOnSubscribe({ disposable -> DialogUtils.showProgressDialog(rxFragment.getFragmentManager(), LOADING_MESSAGE) })
  38. .doOnTerminate({ DialogUtils.hideProgressDialog(rxFragment.getFragmentManager()) })
  39. }
  40. }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement