From 383d859544d55eae71b41c2be4a4d78b7ebfce11 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Thu, 11 Jan 2024 10:43:51 -0500 Subject: [PATCH] Fixes the BookmarkScreen update after adding and removing a bookmark to the list --- .../com/vitorpamplona/amethyst/model/Account.kt | 16 +++++++++++++--- .../ui/screen/loggedIn/BookmarkListScreen.kt | 1 - 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index bce553768..5ad77ecac 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -454,11 +454,21 @@ class Account( val liveHiddenUsers = flowHiddenUsers.asLiveData() - val decryptBookmarks: LiveData by lazy { + val decryptBookmarks: LiveData by lazy { userProfile().live().innerBookmarks.switchMap { userState -> liveData(Dispatchers.IO) { - userState.user.latestBookmarkList?.privateTags(signer) { - scope.launch(Dispatchers.IO) { userState.user.latestBookmarkList?.let { emit(it) } } + if (userState.user.latestBookmarkList == null) { + emit(null) + } else { + emit( + withTimeoutOrNull(1000) { + suspendCancellableCoroutine { continuation -> + userState.user.latestBookmarkList?.privateTags(signer) { + continuation.resume(userState.user.latestBookmarkList) + } + } + }, + ) } } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/BookmarkListScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/BookmarkListScreen.kt index 1926b39d0..9e1244322 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/BookmarkListScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/BookmarkListScreen.kt @@ -68,7 +68,6 @@ fun BookmarkListScreen( privateFeedViewModel.invalidateData() } - RenderBookmarkScreen(privateFeedViewModel, accountViewModel, nav, publicFeedViewModel) }