diff options
author | Krzysztof Klinikowski <kkszysiu@gmail.com> | 2010-04-11 22:40:55 +0200 |
---|---|---|
committer | Krzysztof Klinikowski <kkszysiu@gmail.com> | 2010-04-11 22:40:55 +0200 |
commit | e106dccb475ee09da94d8ffe3ae1ad122f6ee994 (patch) | |
tree | 8fb9bd0e0fb47cb86d477511b5f199c81aaaf839 /sunshine/capabilities.py | |
parent | 9b47417aa8dd8eb209a3a2a8ffef2e8ace96e0df (diff) |
Many fixes and modifications. Capabilities implemented, better channel naming. Im not sure is that stable, need more testing.
Diffstat (limited to 'sunshine/capabilities.py')
-rw-r--r-- | sunshine/capabilities.py | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/sunshine/capabilities.py b/sunshine/capabilities.py index d5276cd..0424b74 100644 --- a/sunshine/capabilities.py +++ b/sunshine/capabilities.py @@ -153,7 +153,7 @@ class SunshineCapabilities(telepathy.server.ConnectionInterfaceCapabilities, cc_ret = dbus.Dictionary({}, signature='ua(a{sv}as)') for handle in contacts_handles: ctype = telepathy.CHANNEL_TYPE_TEXT - if handle in self._caps: + if handle in self._caps and ctype in self._caps[handle]: old_gen, old_spec = self._caps[handle][ctype] else: old_gen = 0 @@ -171,6 +171,30 @@ class SunshineCapabilities(telepathy.server.ConnectionInterfaceCapabilities, self.CapabilitiesChanged(ret) self.ContactCapabilitiesChanged(cc_ret) +# def add_create_capability(self, contact_handle): +# """Add the create capability for self handle.""" +# ret = [] +# cc_ret = dbus.Dictionary({}, signature='ua(a{sv}as)') +# +# ctype = telepathy.CHANNEL_TYPE_TEXT +# if handle in self._caps: +# old_gen, old_spec = self._caps[handle][ctype] +# else: +# old_gen = 0 +# old_spec = 0 +# new_gen = old_gen +# new_gen |= telepathy.CONNECTION_CAPABILITY_FLAG_CREATE +# +# diff = (int(handle), ctype, old_gen, new_gen, old_spec, old_spec) +# ret.append(diff) +# +# # ContactCapabilities +# self._contact_caps.setdefault(handle, []).append(self.text_chat_class) +# cc_ret[handle] = self._contact_caps[handle] +# +# self.CapabilitiesChanged(ret) +# self.ContactCapabilitiesChanged(cc_ret) + def _update_capabilities(self, contact): handle = SunshineHandleFactory(self, 'contact', contact.account, contact.network_id) @@ -234,12 +258,17 @@ class SunshineCapabilities(telepathy.server.ConnectionInterfaceCapabilities, contacts list.""" handles = set([self._self_handle]) for contact in self.profile.contacts: - handle = SunshineHandleFactory(self, 'contact', - str(contact), None) - handles.add(handle) + handle = SunshineHandleFactory(self, 'contact', + str(contact.uin), None) + handles.add(handle) self.add_text_capabilities(handles) # These caps were updated before we were online. for caps in self._update_capabilities_calls: self.UpdateCapabilities(caps) self._update_capabilities_calls = [] + + def updateCapabilitiesCalls(self): + # These caps were updated before we were online. + for caps in self._update_capabilities_calls: + self.UpdateCapabilities(caps) |