From cdec63d96b6c7262a28fd03a322e524527e33261 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 14 Mar 2023 14:14:06 -0500 Subject: [PATCH] Do not include fallback quote on direct reply It may be too close to the preceeding message and confusing looking on clients that use the fallback. --- .../java/eu/siacs/conversations/entities/Message.java | 4 ++++ .../conversations/services/XmppConnectionService.java | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/entities/Message.java b/src/main/java/eu/siacs/conversations/entities/Message.java index 206168d3d..9203a5d9d 100644 --- a/src/main/java/eu/siacs/conversations/entities/Message.java +++ b/src/main/java/eu/siacs/conversations/entities/Message.java @@ -514,6 +514,10 @@ public class Message extends AbstractEntity implements AvatarService.Avatarable } } + public synchronized void clearFallbacks() { + this.payloads.removeAll(getFallbacks()); + } + public synchronized void setBody(String body) { if (body == null) { throw new Error("You should not set the message body to null"); diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java index fcbbc2451..beff4f194 100644 --- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java @@ -139,6 +139,7 @@ import eu.siacs.conversations.utils.Compatibility; import eu.siacs.conversations.utils.Consumer; import eu.siacs.conversations.utils.ConversationsFileObserver; import eu.siacs.conversations.utils.CryptoHelper; +import eu.siacs.conversations.utils.Emoticons; import eu.siacs.conversations.utils.EasyOnboardingInvite; import eu.siacs.conversations.utils.ExceptionHelper; import eu.siacs.conversations.utils.MimeUtils; @@ -1040,8 +1041,13 @@ public class XmppConnectionService extends Service { final Message inReplyTo = lastMessageUuid == null ? null : conversation.findMessageWithUuid(lastMessageUuid); Message message = new Message(conversation, body, conversation.getNextEncryption()); if (inReplyTo != null) { - message = inReplyTo.reply(); - message.appendBody(body); + if (Emoticons.isEmoji(body)) { + message = inReplyTo.react(body); + } else { + message = inReplyTo.reply(); + } + message.clearFallbacks(); + message.setBody(body); message.setEncryption(conversation.getNextEncryption()); } if (inReplyTo != null && inReplyTo.isPrivateMessage()) { -- 2.38.5