diff options
author | Christian Schneppe <christian@pix-art.de> | 2017-11-22 21:00:33 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2017-11-22 21:49:45 +0100 |
commit | 72df864d41e91d184dd20178d48e7b68df13e725 (patch) | |
tree | 0aae3068c35f175549d70232adf72e24ea393561 /src/main/java/de/pixart/messenger/generator | |
parent | acdb88839648405e0498d7774bcdc9f422ebc5c2 (diff) |
send and show read markers in private, non-anonymous groups
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/generator/MessageGenerator.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/main/java/de/pixart/messenger/generator/MessageGenerator.java b/src/main/java/de/pixart/messenger/generator/MessageGenerator.java index 5ed2266ef..4dae14757 100644 --- a/src/main/java/de/pixart/messenger/generator/MessageGenerator.java +++ b/src/main/java/de/pixart/messenger/generator/MessageGenerator.java @@ -39,7 +39,6 @@ public class MessageGenerator extends AbstractGenerator { if (conversation.getMode() == Conversation.MODE_SINGLE) { packet.setTo(message.getCounterpart()); packet.setType(MessagePacket.TYPE_CHAT); - packet.addChild("markable", "urn:xmpp:chat-markers:0"); if (this.mXmppConnectionService.indicateReceived()) { packet.addChild("request", "urn:xmpp:receipts"); } @@ -54,6 +53,10 @@ public class MessageGenerator extends AbstractGenerator { packet.setTo(message.getCounterpart().toBareJid()); packet.setType(MessagePacket.TYPE_GROUPCHAT); } + if (conversation.getMode() == Conversation.MODE_SINGLE || + (conversation.getMucOptions().nonanonymous() && conversation.getMucOptions().membersOnly() && message.getType() != Message.TYPE_PRIVATE)) { + packet.addChild("markable", "urn:xmpp:chat-markers:0"); + } packet.setFrom(account.getJid()); packet.setId(message.getUuid()); packet.addChild("origin-id", Namespace.STANZA_IDS).setAttribute("id", message.getUuid()); @@ -167,10 +170,10 @@ public class MessageGenerator extends AbstractGenerator { return packet; } - public MessagePacket confirm(final Account account, final Jid to, final String id) { + public MessagePacket confirm(final Account account, final Jid to, final String id, final boolean groupChat) { MessagePacket packet = new MessagePacket(); - packet.setType(MessagePacket.TYPE_CHAT); - packet.setTo(to); + packet.setType(groupChat ? MessagePacket.TYPE_GROUPCHAT : MessagePacket.TYPE_CHAT); + packet.setTo(groupChat ? to.toBareJid() : to); packet.setFrom(account.getJid()); Element received = packet.addChild("displayed", "urn:xmpp:chat-markers:0"); received.setAttribute("id", id); |