From b4df9d87d88b7526e383703ba857172da4b31430 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 18 Oct 2020 23:14:31 +0530 Subject: [PATCH] Allow reusing save action to remove from saved list Signed-off-by: Harsh Shandilya --- app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt | 8 +++++++- .../java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt index b2c1865e..78607540 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt @@ -134,7 +134,13 @@ private fun LobsterList( item, linkOpenAction = { post -> urlLauncher.launch(post.url.ifEmpty { post.commentsUrl }) }, commentOpenAction = { post -> urlLauncher.launch(post.commentsUrl) }, - saveAction = { post -> if (!showSaved.value) viewModel.savePost(post) }, + saveAction = { post -> + if (showSaved.value) { + viewModel.removeSavedPost(post) + } else { + viewModel.savePost(post) + } + }, ) } } 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 1a088743..3558cff7 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt @@ -86,4 +86,11 @@ class LobstersViewModel @ViewModelInject constructor( getSavedPosts() } } + + fun removeSavedPost(post: LobstersPost) { + viewModelScope.launch { + savedPostsDao.deletePostById(post.shortId) + getSavedPosts() + } + } }