diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index d832cfaf6..591193b04 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -95,36 +95,20 @@ class Account(val loggedIn: Persona, val followingChannels: MutableSet = } } - fun sendPost(message: String, originalNote: Note?, modifiedMentions: List?) { + fun sendPost(message: String, replyTo: List?, mentions: List?) { if (!isWriteable()) return - val replyToEvent = originalNote?.event - if (replyToEvent is TextNoteEvent) { - val modifiedMentionsHex = modifiedMentions?.map { it.pubkeyHex }?.toSet() ?: emptySet() + val repliesToHex = replyTo?.map { it.idHex } + val mentionsHex = mentions?.map { it.pubkeyHex } - val repliesTo = replyToEvent.replyTos.plus(replyToEvent.id.toHex()) - val mentions = replyToEvent.mentions.plus(replyToEvent.pubKey.toHex()).plus(modifiedMentionsHex).filter { - it in modifiedMentionsHex - } - - val signedEvent = TextNoteEvent.create( - msg = message, - replyTos = repliesTo, - mentions = mentions, - privateKey = loggedIn.privKey!! - ) - Client.send(signedEvent) - LocalCache.consume(signedEvent) - } else { - val signedEvent = TextNoteEvent.create( - msg = message, - replyTos = null, - mentions = modifiedMentions?.map { it.pubkeyHex } ?: emptyList(), - privateKey = loggedIn.privKey!! - ) - Client.send(signedEvent) - LocalCache.consume(signedEvent) - } + val signedEvent = TextNoteEvent.create( + msg = message, + replyTos = repliesToHex, + mentions = mentionsHex, + privateKey = loggedIn.privKey!! + ) + Client.send(signedEvent) + LocalCache.consume(signedEvent) } fun sendChannelMeesage(message: String, toChannel: String, replyingTo: Note? = null) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt index 42e4086ba..bbd50380a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt @@ -38,7 +38,13 @@ class NewPostViewModel: ViewModel() { replyingTo?.let { replyNote -> this.replyTos = (replyNote.replyTo ?: mutableListOf()).plus(replyNote).toMutableList() replyNote.author?.let { replyUser -> - this.mentions = (replyNote.mentions ?: emptyList()).plus(replyUser) + val currentMentions = replyNote.mentions ?: emptyList() + if (currentMentions.contains(replyUser)) { + this.mentions = currentMentions + } else { + this.mentions = currentMentions.plus(replyUser) + } + } } this.account = account @@ -89,7 +95,7 @@ class NewPostViewModel: ViewModel() { }.joinToString(" ") }.joinToString("\n") - account?.sendPost(newMessage, originalNote, mentions) + account?.sendPost(newMessage, replyTos, mentions) message = TextFieldValue("") urlPreview = null }