Use prepareQuote to format /me and strip deep nesting

Stephen Paul Weber created

Change summary

src/main/java/eu/siacs/conversations/entities/Message.java   | 6 +++++-
src/main/java/eu/siacs/conversations/utils/MessageUtils.java | 4 ++--
2 files changed, 7 insertions(+), 3 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Message.java 🔗

@@ -381,7 +381,7 @@ public class Message extends AbstractEntity implements AvatarService.Avatarable
     }
 
     public Message reply() {
-        Message m = new Message(conversation, QuoteHelper.quote(getBody()) + "\n", ENCRYPTION_NONE);
+        Message m = new Message(conversation, QuoteHelper.quote(MessageUtils.prepareQuote(this)) + "\n", ENCRYPTION_NONE);
         m.setThread(getThread());
         m.addPayload(
             new Element("reply", "urn:xmpp:reply:0")
@@ -430,6 +430,10 @@ public class Message extends AbstractEntity implements AvatarService.Avatarable
         }
     }
 
+    public String getQuoteableBody() {
+        return this.body;
+    }
+
     public String getBody() {
         StringBuilder body = new StringBuilder(this.body);
 

src/main/java/eu/siacs/conversations/utils/MessageUtils.java 🔗

@@ -61,9 +61,9 @@ public class MessageUtils {
             } else {
                 nick = UIHelper.getMessageDisplayName(message);
             }
-            body = nick + " " + message.getBody().substring(Message.ME_COMMAND.length());
+            body = nick + " " + message.getQuoteableBody().substring(Message.ME_COMMAND.length());
         } else {
-            body = message.getMergedBody().toString();
+            body = message.getQuoteableBody();
         }
         for (String line : body.split("\n")) {
             if (!(line.length() <= 0) && QuoteHelper.isNestedTooDeeply(line)) {