diff --git a/src/eu/siacs/conversations/parser/MessageParser.java b/src/eu/siacs/conversations/parser/MessageParser.java index 0f95627d3..4b9bb3548 100644 --- a/src/eu/siacs/conversations/parser/MessageParser.java +++ b/src/eu/siacs/conversations/parser/MessageParser.java @@ -285,6 +285,10 @@ public class MessageParser extends AbstractParser implements .findOrCreateConversation(account, packet.getAttribute("from"), true); if (!conversation.getMucOptions().online()) { + if (x.hasChild("password")) { + Element password = x.findChild("password"); + conversation.getMucOptions().setPassword(password.getContent()); + } mXmppConnectionService.joinMuc(conversation); mXmppConnectionService.updateConversationUi(); } @@ -293,10 +297,14 @@ public class MessageParser extends AbstractParser implements } else if (packet.hasChild("x", "jabber:x:conference")) { Element x = packet.findChild("x", "jabber:x:conference"); String jid = x.getAttribute("jid"); + String password = x.getAttribute("password"); if (jid != null) { Conversation conversation = mXmppConnectionService .findOrCreateConversation(account, jid, true); if (!conversation.getMucOptions().online()) { + if (password != null) { + conversation.getMucOptions().setPassword(password); + } mXmppConnectionService.joinMuc(conversation); mXmppConnectionService.updateConversationUi(); }