[Sugar-devel] [PATCH sugar] Only approve and not handle channels in the shell, part of OLPC #10738
Simon Schampijer
simon at schampijer.de
Tue Jun 7 05:46:17 EDT 2011
Tested-by: Samuel Greenfeld <greenfeld at laptop.org>
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='')
More information about the Sugar-devel
mailing list