From ad353d2d1a0d70c1ee3431e634c66328c74e36f8 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Thu, 22 Jun 2023 12:04:11 -0400 Subject: [PATCH] Generalizes the SensitivityWarning to Note. --- .../ui/components/SensitivityWarning.kt | 19 +++++++++++++++++-- .../ui/note/ChatroomMessageCompose.kt | 4 +--- .../amethyst/ui/note/NoteCompose.kt | 11 +++-------- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt index 467e8b7df..951a34b14 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/SensitivityWarning.kt @@ -33,19 +33,34 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.theme.ButtonBorder @Composable fun SensitivityWarning( - hasSensitiveContent: Boolean, + note: Note, + accountViewModel: AccountViewModel, + content: @Composable () -> Unit +) { + val hasSensitiveContent = remember(note.event) { note.event?.isSensitive() ?: false } + + if (hasSensitiveContent) { + SensitivityWarning(accountViewModel, content) + } else { + content() + } +} + +@Composable +fun SensitivityWarning( accountViewModel: AccountViewModel, content: @Composable () -> Unit ) { val accountState by accountViewModel.accountLiveData.observeAsState() var showContentWarningNote by remember(accountState) { - mutableStateOf(accountState?.account?.showSensitiveContent != true && hasSensitiveContent) + mutableStateOf(accountState?.account?.showSensitiveContent != true) } if (showContentWarningNote) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt index 8e3627422..c6abca08a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt @@ -610,10 +610,8 @@ private fun RenderRegularTextNote( val modifier = remember { Modifier.padding(top = 5.dp) } if (eventContent != null) { - val hasSensitiveContent = remember(note.event) { note.event?.isSensitive() ?: false } - SensitivityWarning( - hasSensitiveContent = hasSensitiveContent, + note = note, accountViewModel = accountViewModel ) { TranslatableRichTextViewer( 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 b712db948..0de6c69e8 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 @@ -817,10 +817,8 @@ fun RenderTextEvent( overflow = TextOverflow.Ellipsis ) } else { - val hasSensitiveContent = remember(note.event) { note.event?.isSensitive() ?: false } - SensitivityWarning( - hasSensitiveContent = hasSensitiveContent, + note = note, accountViewModel = accountViewModel ) { val modifier = remember(note) { Modifier.fillMaxWidth() } @@ -863,12 +861,10 @@ fun RenderPoll( overflow = TextOverflow.Ellipsis ) } else { - val hasSensitiveContent = remember(note.event) { note.event?.isSensitive() ?: false } - val tags = remember(note) { note.event?.tags()?.toImmutableListOfLists() ?: ImmutableListOfLists() } SensitivityWarning( - hasSensitiveContent = hasSensitiveContent, + note = note, accountViewModel = accountViewModel ) { TranslatableRichTextViewer( @@ -1119,9 +1115,8 @@ private fun RenderPrivateMessage( overflow = TextOverflow.Ellipsis ) } else { - val hasSensitiveContent = remember(note.event) { note.event?.isSensitive() ?: false } SensitivityWarning( - hasSensitiveContent = hasSensitiveContent, + note = note, accountViewModel = accountViewModel ) { TranslatableRichTextViewer(