Yuito-app-android/app/src/main/java/com/keylesspalace/tusky/util/getErrorMessage.kt

23 lines
776 B
Kotlin

package com.keylesspalace.tusky.util
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
private fun getErrorMessage(report: PagingRequestHelper.StatusReport): String {
return PagingRequestHelper.RequestType.values().mapNotNull {
report.getErrorFor(it)?.message
}.first()
}
fun PagingRequestHelper.createStatusLiveData(): LiveData<NetworkState> {
val liveData = MutableLiveData<NetworkState>()
addListener { report ->
when {
report.hasRunning() -> liveData.postValue(NetworkState.LOADING)
report.hasError() -> liveData.postValue(
NetworkState.error(getErrorMessage(report)))
else -> liveData.postValue(NetworkState.LOADED)
}
}
return liveData
}