From dc83ad2deecb1c86ab21774baaa75ab957f85699 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 19 Oct 2020 00:20:07 +0530 Subject: [PATCH] Update liked state when removing a saved post as well Signed-off-by: Harsh Shandilya --- .../java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 540dd557..15c4b27a 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt @@ -62,7 +62,7 @@ class LobstersViewModel @ViewModelInject constructor( private fun getMorePostsInternal(firstLoad: Boolean) { viewModelScope.launch(coroutineExceptionHandler) { val newPosts = lobstersApi.getHottestPosts(apiPage) - .map { it.apply { isLiked = savedPostsDao.isLiked(shortId) } } + .transformLikedFlag() .toList() if (firstLoad) { _posts.value = newPosts @@ -91,6 +91,11 @@ class LobstersViewModel @ViewModelInject constructor( viewModelScope.launch { savedPostsDao.deletePostById(post.shortId) getSavedPosts() + _posts.value = _posts.value.transformLikedFlag().toList() } } + + private suspend fun List.transformLikedFlag() = map { + it.apply { isLiked = savedPostsDao.isLiked(shortId) } + } }