You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
776 B
23 lines
776 B
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
|
|
} |