primitivus: fix setting the presence and status

This commit is contained in:
souliane 2015-06-10 09:18:34 +02:00
commit e10070f923
3 changed files with 10 additions and 1 deletions

View file

@ -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'

View file

@ -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()

View file

@ -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))