Change summary
src/main/java/eu/siacs/conversations/parser/MessageParser.java | 13
src/main/java/im/conversations/android/xmpp/model/stanza/Message.java | 1
2 files changed, 9 insertions(+), 5 deletions(-)
Detailed changes
@@ -485,11 +485,14 @@ public class MessageParser extends AbstractParser implements Consumer<im.convers
if (fasten != null) {
replaceElement = fasten.findChild("retract", "urn:xmpp:message-retract:0");
if (replaceElement == null) replaceElement = fasten.findChild("moderated", "urn:xmpp:message-moderate:0");
- if (replaceElement != null) {
- final String reason = replaceElement.findChildContent("reason", "urn:xmpp:message-moderate:0");
- replacementId = fasten.getAttribute("id");
- packet.setBody(reason == null ? "" : reason);
- }
+ }
+ if (replaceElement == null) replaceElement = packet.findChild("retract", "urn:xmpp:message-retract:1");
+ if (replaceElement == null) replaceElement = packet.findChild("moderate", "urn:xmpp:message-moderate:1");
+ if (replaceElement != null) {
+ var reason = replaceElement.findChildContent("reason", "urn:xmpp:message-moderate:0");
+ if (reason == null) reason = replaceElement.findChildContent("reason", "urn:xmpp:message-moderate:1");
+ replacementId = (fasten == null ? replaceElement : fasten).getAttribute("id");
+ packet.setBody(reason == null ? "" : reason);
}
}
LocalizedContent body = packet.getBody();
@@ -46,6 +46,7 @@ public class Message extends Stanza {
}
public void setBody(final String text) {
+ removeChild(findChild("body"));
this.addExtension(new Body(text));
}