From 405d3d24a064fd1dbf0ace67349dbe6f47370405 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 1 Jul 2024 11:47:58 -0400 Subject: [PATCH] Removes decryption for DVM responses since it doesn't encrypt statuses --- .../types/NIP90ContentDiscoveryResponse.kt | 75 ++++++------------- .../amethyst/ui/note/types/NIP90Status.kt | 65 +--------------- 2 files changed, 26 insertions(+), 114 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/NIP90ContentDiscoveryResponse.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/NIP90ContentDiscoveryResponse.kt index 02a060d57..f595f2ab7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/NIP90ContentDiscoveryResponse.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/NIP90ContentDiscoveryResponse.kt @@ -24,7 +24,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.State -import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Modifier @@ -33,12 +32,10 @@ import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.ui.components.GenericLoadable import com.vitorpamplona.amethyst.ui.components.SensitivityWarning import com.vitorpamplona.amethyst.ui.components.TranslatableRichTextViewer -import com.vitorpamplona.amethyst.ui.note.LoadDecryptedContent import com.vitorpamplona.amethyst.ui.note.elements.DisplayUncitedHashtags import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.quartz.events.EmptyTagList -import com.vitorpamplona.quartz.events.Event -import com.vitorpamplona.quartz.events.TextNoteEvent +import com.vitorpamplona.quartz.events.NIP90ContentDiscoveryResponseEvent import com.vitorpamplona.quartz.events.toImmutableListOfLists @Composable @@ -53,57 +50,31 @@ fun RenderNIP90ContentDiscoveryResponse( accountViewModel: AccountViewModel, nav: (String) -> Unit, ) { - val noteEvent = note.event as? Event ?: return + val noteEvent = note.event as? NIP90ContentDiscoveryResponseEvent ?: return - LoadDecryptedContent( - note, - accountViewModel, - ) { body -> - val eventContent by - remember(note.event) { - derivedStateOf { - val subject = (note.event as? TextNoteEvent)?.subject()?.ifEmpty { null } - val newBody = - if (editState.value is GenericLoadable.Loaded) { - val state = - (editState.value as? GenericLoadable.Loaded)?.loaded?.modificationToShow - state?.value?.event?.content() ?: body - } else { - body - } + SensitivityWarning( + note = note, + accountViewModel = accountViewModel, + ) { + val modifier = remember(note) { Modifier.fillMaxWidth() } + val tags = + remember(note) { note.event?.tags()?.toImmutableListOfLists() ?: EmptyTagList } - if (!subject.isNullOrBlank() && !newBody.split("\n")[0].contains(subject)) { - "### $subject\n$newBody" - } else { - newBody - } - } - } - - SensitivityWarning( - note = note, + TranslatableRichTextViewer( + content = noteEvent.content, + canPreview = canPreview && !makeItShort, + quotesLeft = quotesLeft, + modifier = modifier, + tags = tags, + backgroundColor = backgroundColor, + id = note.idHex, + callbackUri = note.toNostrUri(), accountViewModel = accountViewModel, - ) { - val modifier = remember(note) { Modifier.fillMaxWidth() } - val tags = - remember(note) { note.event?.tags()?.toImmutableListOfLists() ?: EmptyTagList } + nav = nav, + ) + } - TranslatableRichTextViewer( - content = eventContent, - canPreview = canPreview && !makeItShort, - quotesLeft = quotesLeft, - modifier = modifier, - tags = tags, - backgroundColor = backgroundColor, - id = note.idHex, - callbackUri = note.toNostrUri(), - accountViewModel = accountViewModel, - nav = nav, - ) - } - - if (noteEvent.hasHashtags()) { - DisplayUncitedHashtags(noteEvent, eventContent, nav) - } + if (noteEvent.hasHashtags()) { + DisplayUncitedHashtags(noteEvent, noteEvent.content, nav) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/NIP90Status.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/NIP90Status.kt index ac9921814..c3f032c63 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/NIP90Status.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/NIP90Status.kt @@ -24,17 +24,12 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.State -import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue -import androidx.compose.runtime.remember import androidx.compose.ui.graphics.Color import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.ui.components.GenericLoadable -import com.vitorpamplona.amethyst.ui.note.LoadDecryptedContent import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel -import com.vitorpamplona.quartz.events.BaseTextNoteEvent -import com.vitorpamplona.quartz.events.CommunityDefinitionEvent -import com.vitorpamplona.quartz.events.TextNoteEvent +import com.vitorpamplona.quartz.events.NIP90StatusEvent @Composable fun RenderNIP90Status( @@ -48,61 +43,7 @@ fun RenderNIP90Status( accountViewModel: AccountViewModel, nav: (String) -> Unit, ) { - val noteEvent = note.event + val noteEvent = note.event as? NIP90StatusEvent ?: return - val showReply by - remember(note) { - derivedStateOf { - noteEvent is BaseTextNoteEvent && !makeItShort && unPackReply && (note.replyTo != null || noteEvent.hasAnyTaggedUser()) - } - } - - if (showReply) { - val replyingDirectlyTo = - remember(note) { - if (noteEvent is BaseTextNoteEvent) { - val replyingTo = noteEvent.replyingToAddressOrEvent() - if (replyingTo != null) { - val newNote = accountViewModel.getNoteIfExists(replyingTo) - if (newNote != null && newNote.channelHex() == null && newNote.event?.kind() != CommunityDefinitionEvent.KIND) { - newNote - } else { - note.replyTo?.lastOrNull { it.event?.kind() != CommunityDefinitionEvent.KIND } - } - } else { - note.replyTo?.lastOrNull { it.event?.kind() != CommunityDefinitionEvent.KIND } - } - } else { - note.replyTo?.lastOrNull { it.event?.kind() != CommunityDefinitionEvent.KIND } - } - } - } - - LoadDecryptedContent( - note, - accountViewModel, - ) { body -> - val eventContent by - remember(note.event) { - derivedStateOf { - val subject = (note.event as? TextNoteEvent)?.subject()?.ifEmpty { null } - val newBody = - if (editState.value is GenericLoadable.Loaded) { - val state = - (editState.value as? GenericLoadable.Loaded)?.loaded?.modificationToShow - state?.value?.event?.content() ?: body - } else { - body - } - - if (!subject.isNullOrBlank() && !newBody.split("\n")[0].contains(subject)) { - "### $subject\n$newBody" - } else { - newBody - } - } - } - - Text(text = eventContent) - } + Text(text = noteEvent.content) }