23 lines
776 B
Kotlin
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
|
|
} |