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() + } + } }