aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/parser/PresenceParser.java
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2015-12-02 16:38:08 +0100
committerDaniel Gultsch <daniel@gultsch.de>2015-12-02 16:38:08 +0100
commit0eaf7669f74f33fc9898a8acc8913140276aadd9 (patch)
tree8a0381fdbce4b2ae0ea323c2f7b7a8cfe064d507 /src/main/java/eu/siacs/conversations/parser/PresenceParser.java
parent02c6793ca9ae195494c7be86f7e0d7a6c08a04c0 (diff)
parenta3eb540f059f9123799c54d69201eba8a096e116 (diff)
Merge pull request #1545 from SamWhited/show_new_contact_request_messages
Show status message when contact requests presence
Diffstat (limited to 'src/main/java/eu/siacs/conversations/parser/PresenceParser.java')
-rw-r--r--src/main/java/eu/siacs/conversations/parser/PresenceParser.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/eu/siacs/conversations/parser/PresenceParser.java b/src/main/java/eu/siacs/conversations/parser/PresenceParser.java
index d83347d8..59b94bc0 100644
--- a/src/main/java/eu/siacs/conversations/parser/PresenceParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/PresenceParser.java
@@ -6,6 +6,7 @@ import eu.siacs.conversations.crypto.PgpEngine;
import eu.siacs.conversations.entities.Account;
import eu.siacs.conversations.entities.Contact;
import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
import eu.siacs.conversations.entities.MucOptions;
import eu.siacs.conversations.entities.Presences;
import eu.siacs.conversations.generator.PresenceGenerator;
@@ -44,8 +45,8 @@ public class PresenceParser extends AbstractParser implements
}
}
- public void parseContactPresence(PresencePacket packet, Account account) {
- PresenceGenerator mPresenceGenerator = mXmppConnectionService.getPresenceGenerator();
+ public void parseContactPresence(final PresencePacket packet, final Account account) {
+ final PresenceGenerator mPresenceGenerator = mXmppConnectionService.getPresenceGenerator();
final Jid from = packet.getFrom();
if (from == null) {
return;
@@ -93,6 +94,17 @@ public class PresenceParser extends AbstractParser implements
mPresenceGenerator.sendPresenceUpdatesTo(contact));
} else {
contact.setOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST);
+ final String statusMessage = packet.findChildContent("status");
+ if (statusMessage != null && !statusMessage.isEmpty()) {
+ final Conversation conversation = mXmppConnectionService.findOrCreateConversation(
+ account, contact.getJid().toBareJid(), false);
+ conversation.add(new Message(
+ conversation,
+ statusMessage,
+ Message.ENCRYPTION_NONE,
+ Message.STATUS_RECEIVED
+ ));
+ }
}
}
mXmppConnectionService.updateRosterUi();