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 e96c1129..39bcf1a3 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt @@ -33,13 +33,22 @@ class LobstersViewModel @ViewModelInject constructor( viewModelScope.launch { dao.loadPosts().collectLatest { _posts.value = it } } - getMorePosts() + getMorePostsInternal(true) } fun getMorePosts() { + getMorePostsInternal(false) + } + + private fun getMorePostsInternal(firstLoad: Boolean) { viewModelScope.launch(coroutineExceptionHandler) { val newPosts = lobstersApi.getHottestPosts(apiPage) - _posts.value += newPosts + if (firstLoad) { + _posts.value = newPosts + dao.deleteAllPosts() + } else { + _posts.value += newPosts + } apiPage += 1 dao.insertPosts(*_posts.value.toTypedArray()) }