From 837970147c50002adbbe8522afeff0e64dd5e36a Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 28 Sep 2020 11:03:32 +0530 Subject: [PATCH] app: add local cache busting Signed-off-by: Harsh Shandilya --- .../msfjarvis/lobsters/data/LobstersViewModel.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 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 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()) }