From e10070f9238aef261c23e93b48c26500469c5412 Mon Sep 17 00:00:00 2001 From: souliane Date: Wed, 10 Jun 2015 09:18:34 +0200 Subject: [PATCH] primitivus: fix setting the presence and status --- frontends/src/primitivus/primitivus | 1 + frontends/src/primitivus/status.py | 3 ++- src/core/xmpp.py | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/frontends/src/primitivus/primitivus b/frontends/src/primitivus/primitivus index c582661a..284596cb 100755 --- a/frontends/src/primitivus/primitivus +++ b/frontends/src/primitivus/primitivus @@ -117,6 +117,7 @@ class EditBar(sat_widgets.ModalEdit): elif command == 'messages': wid = sat_widgets.GenericList(logging.memoryGet()) self.host.selectWidget(wid) + # FIXME: reactivate the command # elif command == 'presence': # values = [value for value in commonConst.PRESENCE.keys()] # values = [value if value else 'online' for value in values] # the empty value actually means 'online' diff --git a/frontends/src/primitivus/status.py b/frontends/src/primitivus/status.py index 8d4293da..468cabb4 100644 --- a/frontends/src/primitivus/status.py +++ b/frontends/src/primitivus/status.py @@ -61,8 +61,9 @@ class StatusBar(urwid.Columns): elif isinstance(user_data, sat_widgets.AdvancedEdit): new = (previous[0], new_value[0]) if new != previous: + statuses = {C.PRESENCE_STATUSES_DEFAULT: new[1]} # FIXME: manage multilingual statuses for profile in self.host.profiles: # FIXME: for now all the profiles share the same status - self.host.bridge.setPresence(show=new[0], status=new[1], profile_key=profile) # FIXME: manage multilingual statuses + self.host.bridge.setPresence(show=new[0], statuses=statuses, profile_key=profile) self.setPresenceStatus(new[0], new[1]) self.host.removePopUp() diff --git a/src/core/xmpp.py b/src/core/xmpp.py index 616842a8..54281011 100644 --- a/src/core/xmpp.py +++ b/src/core/xmpp.py @@ -354,6 +354,13 @@ class SatPresenceProtocol(xmppim.PresenceClientProtocol): self.host.bridge.presenceUpdate(entity.full(), "unavailable", 0, statuses, self.parent.profile) def available(self, entity=None, show=None, statuses=None, priority=None): + """Set a presence and statuses. + + @param entity (jid.JID): entity + @param show (unicode): value in ('unavailable', '', 'away', 'xa', 'chat', 'dnd') + @param statuses (dict{unicode: unicode}): multilingual statuses with + the entry key beeing a language code on 2 characters or "default". + """ if priority is None: try: priority = int(self.host.memory.getParamA("Priority", "Connection", profile_key=self.parent.profile))