From 9858d9872248b87aac383499abc9a3a27dc472cf Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 19 Mar 2024 10:06:53 -0400 Subject: [PATCH] Avoids double request to show anyway when the user has hidden a post and ALSO the user's followers have reported the post. --- .../amethyst/ui/note/NoteCompose.kt | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index 082b102bb..e0950d17b 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -266,10 +266,8 @@ fun CheckHiddenNoteCompose( // Ignores reports as well normalNote(true) } else { - WatchIsHidden(note, showHiddenWarning, accountViewModel) { - LoadReportsNoteCompose(note, modifier, accountViewModel, nav) { canPreview -> - normalNote(canPreview) - } + WatchIsHidden(note, showHiddenWarning, modifier, accountViewModel, nav) { canPreview -> + normalNote(canPreview) } } } @@ -278,10 +276,12 @@ fun CheckHiddenNoteCompose( fun WatchIsHidden( note: Note, showHiddenWarning: Boolean, + modifier: Modifier = Modifier, accountViewModel: AccountViewModel, - notHiddenNote: @Composable () -> Unit, + nav: (String) -> Unit, + normalNote: @Composable (canPreview: Boolean) -> Unit, ) { - val isHidden by remember(note) { + val isHiddenState by remember(note) { accountViewModel.account.liveHiddenUsers .map { note.isHiddenFor(it) } .distinctUntilChanged() @@ -293,9 +293,13 @@ fun WatchIsHidden( mutableStateOf(false) } - Crossfade(targetState = isHidden, label = "CheckHiddenNoteCompose") { - if (!it || showAnyway.value) { - notHiddenNote() + Crossfade(targetState = isHiddenState, label = "CheckHiddenNoteCompose") { isHidden -> + if (showAnyway.value) { + normalNote(true) + } else if (!isHidden) { + LoadReportsNoteCompose(note, modifier, accountViewModel, nav) { canPreview -> + normalNote(canPreview) + } } else if (showHiddenWarning) { // if it is a quoted or boosted note, how the hidden warning. HiddenNoteByMe(