diff --git a/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt b/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt index 29c5b008..b6b60a5c 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt @@ -24,16 +24,19 @@ class LobstersViewModel @ViewModelInject constructor( private val coroutineExceptionHandler = CoroutineExceptionHandler { _, throwable -> when (throwable) { // Swallow known network errors that can be recovered from. - is UnknownHostException, is SocketTimeoutException -> {} + is UnknownHostException, is SocketTimeoutException -> { + if (_posts.value.isEmpty()) { + viewModelScope.launch { + dao.loadPosts().collectLatest { _posts.value = it } + } + } + } else -> throw throwable } } val posts: StateFlow> get() = _posts init { - viewModelScope.launch { - dao.loadPosts().collectLatest { _posts.value = it } - } getMorePostsInternal(true) }