XEP-0308: Last Message Correction allows you to correct the last sent message, e.g. if there was a typo in your message.
If your client supports this feature it should advertise support for it:
xmppClient.enableFeature(Replace.NAMESPACE);
Let’s say you send a message with a typo in it:
Message message = new Message(Jid.of("juliet@example.net/balcony"), Message.Type.CHAT, "Hello, my frind"); message.setId("123"); xmppClient.send(message);
You then recognize the typo in it and want to correct it. You would send a replacement message, replacing the old message:
Message correctedMessage = new Message(jid, Message.Type.CHAT, "Hello, my friend"); correctedMessage.addExtension(new Replace("123")); xmppClient.send(correctedMessage);
If a message should be replaced by another message, you should check inbound messages for the Replace extension and then replace the old message:
Replace replace = message.getExtension(Replace.class); if (replace != null) { String oldMessageId = replace.getId(); // Replace old message with message... }
Keeping track of the message ids is of course the developer’s responsibility.