Tested-by: Samuel Greenfeld <[email protected]>

see: http://dev.laptop.org/ticket/10768


On 05/23/2011 01:21 PM, Simon Schampijer wrote:
We only approve channels in the shell and do not claim to handle them
anymore. The handling is now done by the activity (toolkit patch).
More info about approving and handling of channels can be found at [1].

This patch does only handle sugar activity invitations, invitations
from non-sugar clients will be handled in a separate patch.

[1] 
http://telepathy.freedesktop.org/doc/book/sect.channel-dispatcher.clients.html
---
  src/jarabe/model/telepathyclient.py |   21 +++++++++++++++------
  1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/jarabe/model/telepathyclient.py 
b/src/jarabe/model/telepathyclient.py
index c6fbac1..3a60866 100644
--- a/src/jarabe/model/telepathyclient.py
+++ b/src/jarabe/model/telepathyclient.py
@@ -19,11 +19,16 @@ import logging
  import dbus
  from dbus import PROPERTIES_IFACE
  from telepathy.interfaces import CLIENT, \
+                                 CHANNEL, \
+                                 CHANNEL_TYPE_TEXT, \
                                   CLIENT_APPROVER, \
                                   CLIENT_HANDLER, \
                                   CLIENT_INTERFACE_REQUESTS
  from telepathy.server import DBusProperties

+from telepathy.constants import CONNECTION_HANDLE_TYPE_CONTACT
+from telepathy.constants import CONNECTION_HANDLE_TYPE_ROOM
+
  from sugar import dispatch


@@ -48,9 +53,6 @@ class TelepathyClient(dbus.service.Object, DBusProperties):
          self._implement_property_get(CLIENT, {
              'Interfaces': lambda: list(self._interfaces),
            })
-        self._implement_property_get(CLIENT_HANDLER, {
-            'HandlerChannelFilter': self.__get_filters_cb,
-          })
          self._implement_property_get(CLIENT_APPROVER, {
              'ApproverChannelFilter': self.__get_filters_cb,
            })
@@ -59,9 +61,16 @@ class TelepathyClient(dbus.service.Object, DBusProperties):
          self.got_dispatch_operation = dispatch.Signal()

      def __get_filters_cb(self):
-        logging.debug('__get_filters_cb')
-        filter_dict = dbus.Dictionary({}, signature='sv')
-        return dbus.Array([filter_dict], signature='a{sv}')
+        filt = {
+            CHANNEL + '.ChannelType': CHANNEL_TYPE_TEXT,
+            CHANNEL + '.TargetHandleType': CONNECTION_HANDLE_TYPE_ROOM,
+            }
+        filter_dict = dbus.Dictionary(filt, signature='sv')
+        filters = dbus.Array([filter_dict], signature='a{sv}')
+
+        logging.debug('__get_filters_cb %r', filters)
+
+        return filters

      @dbus.service.method(dbus_interface=CLIENT_HANDLER,
                           in_signature='ooa(oa{sv})aota{sv}', out_signature='')

_______________________________________________
Sugar-devel mailing list
[email protected]
http://lists.sugarlabs.org/listinfo/sugar-devel

Reply via email to