summaryrefslogtreecommitdiff
path: root/sunshine/capabilities.py
diff options
context:
space:
mode:
authorKrzysztof Klinikowski <kkszysiu@gmail.com>2010-04-11 22:40:55 +0200
committerKrzysztof Klinikowski <kkszysiu@gmail.com>2010-04-11 22:40:55 +0200
commite106dccb475ee09da94d8ffe3ae1ad122f6ee994 (patch)
tree8fb9bd0e0fb47cb86d477511b5f199c81aaaf839 /sunshine/capabilities.py
parent9b47417aa8dd8eb209a3a2a8ffef2e8ace96e0df (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.py37
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)