Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import io.reactivex.ObservableTransformer
- import io.reactivex.ObservableTransformer
- object RxUtil {
- private val LOADING_MESSAGE = "Loading"
- fun <T> applyUIDefaults(rxFragment: RxFragment): ObservableTransformer<T, T> {
- return { upstream ->
- upstream
- .compose(RxUtil.addToCompositeDisposable<Any>(rxFragment))
- .compose(RxUtil.applySchedulers<Any>())
- .compose(RxUtil.applyRequestStatus<Any>(rxFragment))
- .compose(RxUtil.showLoadingDialog<Any>(rxFragment))
- }
- }
- private fun <T> applyRequestStatus(rxFragment: RxFragment): ObservableTransformer<T, T> {
- return { upstream ->
- upstream.doOnSubscribe({ disposable -> rxFragment.setRequestInProgress(true) })
- .doOnTerminate({ rxFragment.setRequestInProgress(false) })
- }
- }
- private fun <T> applySchedulers(): ObservableTransformer<T, T> {
- return schedulersTransformer as ObservableTransformer<T, T>
- }
- private fun <T> addToCompositeDisposable(rxFragment: RxFragment): ObservableTransformer<T, T> {
- return { upstream -> upstream.doOnSubscribe({ disposable -> rxFragment.getCompositeDisposable().add(disposable) }) }
- }
- private fun <T> showLoadingDialog(rxFragment: RxFragment): ObservableTransformer<T, T> {
- return { observable ->
- observable
- .doOnSubscribe({ disposable -> DialogUtils.showProgressDialog(rxFragment.getFragmentManager(), LOADING_MESSAGE) })
- .doOnTerminate({ DialogUtils.hideProgressDialog(rxFragment.getFragmentManager()) })
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement