diff --git a/src/main/java/eu/siacs/conversations/entities/Message.java b/src/main/java/eu/siacs/conversations/entities/Message.java index e88bf3265506aa2815da29217b4e3c7903e8de5f..7e89357f9d69f7d9cc900218688c894bba2a169c 100644 --- a/src/main/java/eu/siacs/conversations/entities/Message.java +++ b/src/main/java/eu/siacs/conversations/entities/Message.java @@ -418,6 +418,18 @@ public class Message extends AbstractEntity implements AvatarService.Avatarable this.subject = subject; } + public Element getThread() { + if (this.payloads == null) return null; + + for (Element el : this.payloads) { + if (el.getName().equals("thread") && el.getNamespace().equals("jabber:client")) { + return el; + } + } + + return null; + } + public void setMucUser(MucOptions.User user) { this.user = new WeakReference<>(user); } diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java index 952d3d83efada6f51e6a5cb657c42589e0555e23..a6f924b28cb7e903f872c88285dfb18395fc14e0 100644 --- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java +++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java @@ -610,6 +610,10 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece if (el.getName().equals("query") && el.getNamespace().equals("http://jabber.org/protocol/disco#items") && el.getAttribute("node").equals("http://jabber.org/protocol/commands")) { message.addPayload(el); } + if (el.getName().equals("thread") && (el.getNamespace() == null || el.getNamespace().equals("jabber:client"))) { + el.setAttribute("xmlns", "jabber:client"); + message.addPayload(el); + } } if (conversationMultiMode) { message.setMucUser(conversation.getMucOptions().findUserByFullJid(counterpart));