Как заставить LoadStateAdapter работать, когда у телефона нет доступа в Интернет
кто-нибудь знает как показывать LoadStateAdapter в случае, когда приложение запускается (холодный старт) с отключенной сетью? Я использую Paging 3 - 3.0.0-alpha13 (beta-01 теряет ключи к записям в моей реализации)
Ситуация
Есть PagingDataAdapter к которому добавлен LoadStateAdapter в качестве нижнего колонтитула
В случае, когда мы получаем статус LoadState.Error в LoadStateAdapter, например, в случае потери сети, этот статус делает "LoaderItem" видимым
LoaderItem отображается, когда его метод displayLoadStateAsItem на основе loadState вернет true. По умолчанию это происходит, когда loadState = LoadState.Loading или LoadState.Error.
Footer LoadStateAdapter "наблюдает" за loadState.append
Header LoadStateAdapter "наблюдает" за loadState.prepend
В случаях, когда приложение с холодного старта не имеет доступа к сети RemoteMediator выдает MediatorResult.Error ({"Unable to resolve host ..."})
Ошибка "прилетает" в loadState.mediator и в loadState.refresh append и prepend не получают ошибок имеют статус NotLoading (endOfPaginationReached = false) LoaderItem не отображается.
Как правильно получить результат когда LoadStateAdapter в ситуации холодного запуска покажется в конце, после закешированного списка?
Я пытался создать свой метод
fun LoadStateWithBlackJackAndHookers (footer: LoadStateAdapter <*>): ConcatAdapter {
addLoadStateListener {loadStates ->
loadStates.mediator? .let {
if (it.refresh is LoadState.Error) {
footer.loadState = it.refresh
}
}
footer.loadState = loadStates.append
}
return ConcatAdapter (footer, this)
}
Это не дало желаемого результата, LoadStateAdapter начал получать сообщения об ошибках, но все равно не показывает LoaderItem