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 d13e3468f..66aaa30c1 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 @@ -2397,40 +2397,41 @@ private fun ReplyRow( } } + val showChannelInfo by remember(note) { + derivedStateOf { + if (noteEvent is ChannelMessageEvent || noteEvent is LiveActivitiesChatMessageEvent) { + note.channelHex() + } else { + null + } + } + } + + showChannelInfo?.let { + ChannelHeader( + channelHex = it, + showVideo = false, + showBottomDiviser = false, + sendToChannel = true, + modifier = MaterialTheme.colors.replyModifier.padding(10.dp), + accountViewModel = accountViewModel, + nav = nav + ) + } + if (showReply) { val replyingDirectlyTo = remember { note.replyTo?.lastOrNull { it.event?.kind() != CommunityDefinitionEvent.kind } } if (replyingDirectlyTo != null && unPackReply) { ReplyNoteComposition(replyingDirectlyTo, backgroundColor, accountViewModel, nav) Spacer(modifier = StdVertSpacer) - } else { - // ReplyInformation(note.replyTo, noteEvent.mentions(), accountViewModel, nav) - } - } else { - val showChannelReply by remember { - derivedStateOf { - (noteEvent is ChannelMessageEvent && (note.replyTo != null || noteEvent.hasAnyTaggedUser())) || - (noteEvent is LiveActivitiesChatMessageEvent && (note.replyTo != null || noteEvent.hasAnyTaggedUser())) + } else if (showChannelInfo != null) { + val replies = remember { note.replyTo?.toImmutableList() } + val mentions = remember { + (note.event as? BaseTextNoteEvent)?.mentions()?.toImmutableList() + ?: persistentListOf() } - } - if (showChannelReply) { - val channelHex = note.channelHex() - channelHex?.let { - ChannelHeader( - channelHex = channelHex, - showVideo = false, - showBottomDiviser = false, - sendToChannel = true, - modifier = remember { Modifier.padding(vertical = 5.dp) }, - accountViewModel = accountViewModel, - nav = nav - ) - - val replies = remember { note.replyTo?.toImmutableList() } - val mentions = remember { (note.event as? BaseTextNoteEvent)?.mentions()?.toImmutableList() ?: persistentListOf() } - - ReplyInformationChannel(replies, mentions, accountViewModel, nav) - } + ReplyInformationChannel(replies, mentions, accountViewModel, nav) } } } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/Event.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/Event.kt index 5aa91ebf3..ae78d7bc4 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/Event.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/Event.kt @@ -62,7 +62,7 @@ open class Event( override fun toJson(): String = mapper.writeValueAsString(toJsonObject()) - fun hasAnyTaggedUser() = tags.any { it.size > 1 && it[0] == "p" } + override fun hasAnyTaggedUser() = tags.any { it.size > 1 && it[0] == "p" } override fun taggedUsers() = tags.filter { it.size > 1 && it[0] == "p" }.map { it[1] } override fun taggedEvents() = tags.filter { it.size > 1 && it[0] == "e" }.map { it[1] } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/EventInterface.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/EventInterface.kt index 61ba9dbc6..64d308777 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/EventInterface.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/EventInterface.kt @@ -63,6 +63,8 @@ interface EventInterface { fun subject(): String? fun zapraiserAmount(): Long? + fun hasAnyTaggedUser(): Boolean + fun taggedAddresses(): List fun taggedUsers(): List fun taggedEvents(): List