answer correctly if both markers and receipts are requested

This commit is contained in:
iNPUTmice 2014-07-24 01:04:25 +02:00
parent 23e5fb5d56
commit 7ee2ef5233
2 changed files with 17 additions and 13 deletions

View file

@ -151,4 +151,14 @@ public class MessageGenerator {
packet.addChild(x);
return packet;
}
public MessagePacket received(Account account, MessagePacket originalMessage, String namespace) {
MessagePacket receivedPacket = new MessagePacket();
receivedPacket.setType(MessagePacket.TYPE_NORMAL);
receivedPacket.setTo(originalMessage.getFrom());
receivedPacket.setFrom(account.getFullJid());
Element received = receivedPacket.addChild("received",namespace);
received.setAttribute("id", originalMessage.getId());
return receivedPacket;
}
}

View file

@ -316,26 +316,20 @@ public class MessageParser extends AbstractParser implements
return;
} else if (packet.getType() == MessagePacket.TYPE_NORMAL) {
this.parseNormal(packet, account);
return;
}
if ((message == null) || (message.getBody() == null)) {
return;
}
if ((mXmppConnectionService.confirmMessages())
&& ((packet.getId() != null))) {
MessagePacket receivedPacket = new MessagePacket();
receivedPacket.setType(MessagePacket.TYPE_NORMAL);
receivedPacket.setTo(message.getCounterpart());
receivedPacket.setFrom(account.getFullJid());
if (packet.hasChild("markable", "urn:xmpp:chat-markers:0")) {
Element received = receivedPacket.addChild("received",
"urn:xmpp:chat-markers:0");
received.setAttribute("id", packet.getId());
account.getXmppConnection().sendMessagePacket(receivedPacket);
} else if (packet.hasChild("request", "urn:xmpp:receipts")) {
Element received = receivedPacket.addChild("received",
"urn:xmpp:receipts");
received.setAttribute("id", packet.getId());
account.getXmppConnection().sendMessagePacket(receivedPacket);
MessagePacket receipt = mXmppConnectionService.getMessageGenerator().received(account, packet, "urn:xmpp:chat-markers:0");
mXmppConnectionService.sendMessagePacket(account, receipt);
}
if (packet.hasChild("request", "urn:xmpp:receipts")) {
MessagePacket receipt = mXmppConnectionService.getMessageGenerator().received(account, packet, "urn:xmpp:receipts");
mXmppConnectionService.sendMessagePacket(account, receipt);
}
}
Conversation conversation = message.getConversation();