Я создал перечисление следующим образом:
enum class Status {
LOADING,
SUCCESS,
ERROR
}
И использую его во ViewModel:
private val _posts = MutableLiveData<List<Post>>()
val posts: LiveData<List<Post>>
get() = _posts
private val _status = MutableLiveData<Status>()
val status: LiveData<Status>
get() = _status
init {
showPhotos()
}
fun showPhotos() {
EspressoIdlingResource.increment() // App is busy until further notice
_status.postValue(Status.LOADING)
compositeDisposable.add(Network.items.getPhotos()
.subscribeOn(schedulerProvider.io())
.observeOn(schedulerProvider.ui())
.doFinally {
if (!EspressoIdlingResource.countingIdlingResource.isIdleNow) {
EspressoIdlingResource.decrement() // Set app as idle.
}
}
.subscribe({
_status.postValue(Status.SUCCESS)
showPosts(it)
}) {
_status.postValue(Status.ERROR)
Timber.e(it)
})
}