diff options
Diffstat (limited to 'src/eu/siacs/conversations/services')
-rw-r--r-- | src/eu/siacs/conversations/services/XmppConnectionService.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index e341da1c..48f0e470 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -194,8 +194,8 @@ public class XmppConnectionService extends Service { PresencePacket packet) { if (packet.hasChild("x")&&(packet.findChild("x").getAttribute("xmlns").startsWith("http://jabber.org/protocol/muc"))) { Conversation muc = findMuc(packet.getAttribute("from").split("/")[0]); - int error = muc.getMucOptions().getError(); if (muc!=null) { + int error = muc.getMucOptions().getError(); muc.getMucOptions().processPacket(packet); if ((muc.getMucOptions().getError()!=error)&&(convChangedListener!=null)) { Log.d(LOGTAG,"muc error status changed"); @@ -901,6 +901,11 @@ public class XmppConnectionService extends Service { } public void leaveMuc(Conversation conversation) { + PresencePacket packet = new PresencePacket(); + packet.setAttribute("to", conversation.getContactJid()); + packet.setAttribute("from", conversation.getAccount().getFullJid()); + packet.setAttribute("type","unavailable"); + conversation.getAccount().getXmppConnection().sendPresencePacket(packet); conversation.getMucOptions().setOffline(); } |