Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-09-17 12:45:41 (GMT)
committer Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-09-17 12:45:41 (GMT)
commit0b95b36d85e08a4df3a63c78f1cf8b549f06a5fa (patch)
treebe3613e755f236109759fa266360a7ad17022368
parentd53cccf33dada461dc417e2f90e5492dbb58c894 (diff)
Announce file transfer capabilities #1603
-rw-r--r--src/jarabe/model/neighborhood.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/jarabe/model/neighborhood.py b/src/jarabe/model/neighborhood.py
index a457ff7..a7e43f0 100644
--- a/src/jarabe/model/neighborhood.py
+++ b/src/jarabe/model/neighborhood.py
@@ -27,12 +27,16 @@ from telepathy.interfaces import ACCOUNT, \
CHANNEL, \
CHANNEL_INTERFACE_GROUP, \
CHANNEL_TYPE_CONTACT_LIST, \
+ CHANNEL_TYPE_FILE_TRANSFER, \
+ CLIENT, \
CONNECTION, \
CONNECTION_INTERFACE_ALIASING, \
CONNECTION_INTERFACE_CONTACTS, \
+ CONNECTION_INTERFACE_CONTACT_CAPABILITIES, \
CONNECTION_INTERFACE_REQUESTS, \
CONNECTION_INTERFACE_SIMPLE_PRESENCE
-from telepathy.constants import HANDLE_TYPE_LIST, \
+from telepathy.constants import HANDLE_TYPE_CONTACT, \
+ HANDLE_TYPE_LIST, \
CONNECTION_PRESENCE_TYPE_OFFLINE, \
CONNECTION_STATUS_CONNECTED, \
CONNECTION_STATUS_DISCONNECTED
@@ -297,6 +301,20 @@ class _Account(gobject.GObject):
def __get_self_handle_cb(self, self_handle):
self._self_handle = self_handle
+ if CONNECTION_INTERFACE_CONTACT_CAPABILITIES in self._connection:
+ interface = CONNECTION_INTERFACE_CONTACT_CAPABILITIES
+ connection = self._connection[interface]
+ client_name = CLIENT + '.Sugar.FileTransfer'
+ file_transfer_channel_class = {
+ CHANNEL + '.ChannelType': CHANNEL_TYPE_FILE_TRANSFER,
+ CHANNEL + '.TargetHandleType': HANDLE_TYPE_CONTACT}
+ capabilities = []
+ connection.UpdateCapabilities(
+ [(client_name, [file_transfer_channel_class], capabilities)],
+ reply_handler=self.__update_capabilities_cb,
+ error_handler=partial(self.__error_handler_cb,
+ 'Connection.UpdateCapabilities'))
+
connection = self._connection[CONNECTION_INTERFACE_ALIASING]
connection.connect_to_signal('AliasesChanged',
self.__aliases_changed_cb)
@@ -350,6 +368,9 @@ class _Account(gobject.GObject):
error_handler=partial(self.__error_handler_cb,
'Connection.GetMembers'))
+ def __update_capabilities_cb(self):
+ pass
+
def __aliases_changed_cb(self, aliases):
logging.debug('_Account.__aliases_changed_cb')
for handle, alias in aliases: