# HG changeset patch # User souliane # Date 1387356867 -3600 # Node ID 2ab513a47e3b20d005052d13eeda8052b7b67bba # Parent 6ce8515ee8f5bc38516ff965fcbd631767ce06d8 browser_side: fix presence/status update (do not share between different resources) diff -r 6ce8515ee8f5 -r 2ab513a47e3b browser_side/contact.py --- a/browser_side/contact.py Wed Dec 18 09:51:10 2013 +0100 +++ b/browser_side/contact.py Wed Dec 18 09:54:27 2013 +0100 @@ -293,13 +293,13 @@ @param jid: JID userhost as unicode """ if availability == 'unavailable': - if self.connected.has_key(jid): - if self.connected[jid].has_key(resource): + if jid in self.connected: + if resource in self.connected[jid]: del self.connected[jid][resource] if not self.connected[jid]: del self.connected[jid] else: - if not self.connected.has_key(jid): + if not jid in self.connected: self.connected[jid] = {} self.connected[jid][resource] = (availability, priority, statuses) self._contact_list.setState(jid, "availability", availability) diff -r 6ce8515ee8f5 -r 2ab513a47e3b libervia.py --- a/libervia.py Wed Dec 18 09:51:10 2013 +0100 +++ b/libervia.py Wed Dec 18 09:54:27 2013 +0100 @@ -627,13 +627,13 @@ self.contact_panel.setContactMessageWaiting(other.bare, True) def _presenceUpdateCb(self, entity, show, priority, statuses): - _entity = JID(entity) - #XXX: QnD way to get our status - if self.whoami and self.whoami.bare == _entity.bare and statuses: + entity_jid = JID(entity) + if self.whoami and self.whoami == entity_jid: # XXX: QnD way to get our presence/status self.status_panel.setPresence(show) - self.status_panel.changeStatus(statuses.values()[0]) - if (not self.whoami or self.whoami.bare != _entity.bare): - self.contact_panel.setConnected(_entity.bare, _entity.resource, show, priority, statuses) + if statuses: + self.status_panel.changeStatus(statuses.values()[0]) + else: + self.contact_panel.setConnected(entity_jid.bare, entity_jid.resource, show, priority, statuses) def _roomJoinedCb(self, room_jid, room_nicks, user_nick): _target = JID(room_jid)