From e507afcf7cbf0c989c81c67af71e22c1d1b60825 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Mon, 22 Jul 2024 10:24:42 -0500 Subject: [PATCH] Store oob fallbacks for sent messages --- .../conversations/generator/MessageGenerator.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java b/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java index ae508a867730ad7e23fb3bbb35950abded673dcc..8627b15562133d8c53910ee31cb15d57a9b60038 100644 --- a/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java +++ b/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java @@ -118,18 +118,21 @@ public class MessageGenerator extends AbstractGenerator { if (message.getFallbacks(Namespace.OOB).isEmpty()) { if (message.getBody().equals("")) { message.setBody(fileParams.url); - packet.addChild("fallback", "urn:xmpp:fallback:0").setAttribute("for", Namespace.OOB) - .addChild("body", "urn:xmpp:fallback:0"); + final var fallback = new Element("fallback", "urn:xmpp:fallback:0").setAttribute("for", Namespace.OOB); + fallback.addChild("body", "urn:xmpp:fallback:0"); + message.addPayload(fallback); } else { long start = message.getRawBody().codePointCount(0, message.getRawBody().length()); message.appendBody(fileParams.url); - packet.addChild("fallback", "urn:xmpp:fallback:0").setAttribute("for", Namespace.OOB) - .addChild("body", "urn:xmpp:fallback:0") - .setAttribute("start", String.valueOf(start)) - .setAttribute("end", String.valueOf(start + fileParams.url.length())); + final var fallback = new Element("fallback", "urn:xmpp:fallback:0").setAttribute("for", Namespace.OOB); + fallback.addChild("body", "urn:xmpp:fallback:0") + .setAttribute("start", String.valueOf(start)) + .setAttribute("end", String.valueOf(start + fileParams.url.length())); + message.addPayload(fallback); } } + packet = preparePacket(message, false); packet.addChild("x", Namespace.OOB).addChild("url").setContent(fileParams.url); } if (message.getRawBody() != null) packet.setBody(message.getRawBody());