blob: a3ac1c3a8ba3c35661f687095fb1e6cfc243dea7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package de.thedevstack.conversationsplus.utils.messaging;
import java.util.ArrayList;
import de.thedevstack.conversationsplus.entities.Account;
import de.thedevstack.conversationsplus.entities.Conversation;
import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.enums.MessageConfirmation;
import de.thedevstack.conversationsplus.utils.XmppSendUtil;
import de.thedevstack.conversationsplus.xml.Element;
import de.thedevstack.conversationsplus.xmpp.chatmarkers.ChatMarkers;
import de.thedevstack.conversationsplus.xmpp.receipts.MessageDeliveryReceipts;
import de.thedevstack.conversationsplus.xmpp.stanzas.MessagePacket;
/**
*/
public final class MessageReceiptUtil {
public static void sendMessageReceipts(Message message) {
MessageConfirmation confirmation = message.getConfirmation();
ArrayList<Element> receipts = new ArrayList<>();
if (MessageConfirmation.DELIVERY_RECEIPT_CHAT_MARKERS == confirmation) {
receipts.add(ChatMarkers.RECEIVED.getXmlElement());
receipts.add(MessageDeliveryReceipts.RECEIVED.getXmlElement());
} else if (MessageConfirmation.CHAT_MARKERS == confirmation) {
receipts.add(ChatMarkers.RECEIVED.getXmlElement());
} else {
receipts.add(MessageDeliveryReceipts.RECEIVED.getXmlElement());
}
Account account = message.getConversation().getAccount();
MessagePacket receivedPacket = new MessagePacket();
receivedPacket.setType((message.getConversation().getMode() == Conversation.MODE_SINGLE ? MessagePacket.TYPE_CHAT : MessagePacket.TYPE_GROUPCHAT));
receivedPacket.setTo(message.getCounterpart());
receivedPacket.setFrom(account.getJid());
for (Element receipt : receipts) {
receivedPacket.addChild(receipt).setAttribute("id", message.getRemoteMsgId());
}
XmppSendUtil.sendMessagePacket(account, receivedPacket);
}
}
|