From b7dc92d85afe521c66c57599fa8a89338cc4e0ea Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sat, 10 Oct 2020 17:58:14 +0530 Subject: [PATCH] app: tweak first load behavior Signed-off-by: Harsh Shandilya --- .../dev/msfjarvis/lobsters/data/LobstersViewModel.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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) }