From e98bb76ee07b9f8da072e4caf789e833b0338138 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sat, 10 Jun 2023 21:16:55 -0400 Subject: [PATCH] Support for NIP-14 --- .../amethyst/service/model/TextNoteEvent.kt | 2 ++ .../vitorpamplona/amethyst/ui/note/NoteCompose.kt | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/TextNoteEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/TextNoteEvent.kt index 616f40d7c..e0b0a98f3 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/TextNoteEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/TextNoteEvent.kt @@ -19,6 +19,8 @@ class TextNoteEvent( sig: HexKey ) : BaseTextNoteEvent(id, pubKey, createdAt, kind, tags, content, sig) { + fun subject() = tags.firstOrNull() { it.size > 1 && it[0] == "subject" }?.get(1) + companion object { const val kind = 1 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 236484ad2..109b5aef2 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 @@ -739,7 +739,7 @@ fun routeFor(note: Note, loggedIn: User): String? { } @Composable -private fun RenderTextEvent( +fun RenderTextEvent( note: Note, makeItShort: Boolean, canPreview: Boolean, @@ -747,7 +747,16 @@ private fun RenderTextEvent( accountViewModel: AccountViewModel, nav: (String) -> Unit ) { - val eventContent = remember(note.event) { accountViewModel.decrypt(note) } + val eventContent = remember(note.event) { + val subject = (note.event as? TextNoteEvent)?.subject()?.ifEmpty { null } + val body = accountViewModel.decrypt(note) + + if (subject != null) { + "## $subject\n$body" + } else { + body + } + } if (eventContent != null) { val isAuthorTheLoggedUser = remember(note.event) { accountViewModel.isLoggedUser(note.author) } @@ -787,7 +796,7 @@ private fun RenderTextEvent( } @Composable -private fun RenderPoll( +fun RenderPoll( note: Note, makeItShort: Boolean, canPreview: Boolean,