#10738 NORM 11.2.0-: Salut: when joining a shared activity an invitation palette is added
Zarro Boogs per Child
bugtracker at laptop.org
Wed Mar 30 15:03:55 EDT 2011
#10738: Salut: when joining a shared activity an invitation palette is added
------------------------------+---------------------------------------------
Reporter: erikos | Owner: erikos
Type: defect | Status: new
Priority: normal | Milestone: 11.2.0-M4
Component: sugar | Version: Development build as of this date
Resolution: | Keywords: collaboration
Next_action: code | Verified: 0
Deployment_affected: | Blockedby:
Blocking: |
------------------------------+---------------------------------------------
Changes (by erikos):
* next_action: diagnose => code
Comment:
The issue is the following:
When we
[http://git.sugarlabs.org/sugar/mainline/blobs/master/src/jarabe/model/invites.py#line129
dispatch the signal] every invite
[http://git.sugarlabs.org/sugar/mainline/blobs/master/src/jarabe/model/invites.py#line138
that is not of (handle_type==HANDLE_TYPE_ROOM and
channel_type==CHANNEL_TYPE_TEXT)] will be treated as a
[http://git.sugarlabs.org/sugar/mainline/blobs/master/src/jarabe/model/invites.py#line157
non sugar invitation].
When we join the activity a DBusTubeChannel will be created
(handle_type==HANDLE_TYPE_ROOM and channel_type==CHANNEL_TYPE_DBUS_TUBE)
and dispatched by the Sugar shell. The shell will recognize this as a non
sugar invitation and add the invitation option accordingly.
The previous sugar-presence-service code did [http://git.sugarlabs.org
/sugar-presence-
service/mainline/blobs/sucrose-0.84/src/telepathy_plugin.py#line467
dispatch the signals differently]. For non-sugar-invitations it
[http://git.sugarlabs.org/sugar-presence-
service/mainline/blobs/sucrose-0.84/src/telepathy_plugin.py#line506
checked for the (handle_type==HANDLE_TYPE_CONTACT and channel_type in
(CHANNEL_TYPE_TEXT, CHANNEL_TYPE_STREAMED_MEDIA))].
I did an invitation from empathy and the invitation properties matched
that pattern.
{{{
1301420002.781930 DEBUG root: AddDispatchOperation
dbus.Array([dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/salut/local_xmpp/erikos_2db/IMChannel/4'),
dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'):
dbus.String(u'erikos-o at xo-3b-35-8a', variant_level=1),
dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'):
dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Messages')],
signature=dbus.Signature('s'), variant_level=1),
dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'):
dbus.String(u'org.freedesktop.Telepathy.Channel.Type.Text',
variant_level=1),
dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'):
dbus.UInt32(1L, variant_level=1),
dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'):
dbus.UInt32(4L, variant_level=1),
dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'):
dbus.UInt32(4L, variant_level=1),
dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'):
dbus.String(u'erikos-o at xo-3b-35-8a', variant_level=1),
dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'):
dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))),
signature=None)], signature=dbus.Signature('(oa{sv})'))
dbus.ObjectPath('/org/freedesktop/Telepathy/DispatchOperation/do6')
dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.ChannelDispatchOperation.PossibleHandlers'):
dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Client.org.laptop.Memorize'),
dbus.String(u'org.freedesktop.Telepathy.Client.Empathy'),
dbus.String(u'org.freedesktop.Telepathy.Client.Sugar')],
signature=dbus.Signature('s'), variant_level=1),
dbus.String(u'org.freedesktop.Telepathy.ChannelDispatchOperation.Interfaces'):
dbus.Array([dbus.String(u'org.freedesktop.Telepathy.ChannelDispatchOperation')],
signature=dbus.Signature('s'), variant_level=1),
dbus.String(u'org.freedesktop.Telepathy.ChannelDispatchOperation.Connection'):
dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/salut/local_xmpp/erikos_2db',
variant_level=1),
dbus.String(u'org.freedesktop.Telepathy.ChannelDispatchOperation.Account'):
dbus.ObjectPath('/org/freedesktop/Telepathy/Account/salut/local_xmpp/account0',
variant_level=1)}, signature=dbus.Signature('sv'))
1301420002.783594 DEBUG root: __got_dispatch_operation_cb
1301420002.784192 DEBUG root: Adding an invite from a non-Sugar client
1301420002.784601 DEBUG root: _add_invite
dbus.ObjectPath('/org/freedesktop/Telepathy/DispatchOperation/do6')
dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/salut/local_xmpp/erikos_2db/IMChannel/4')
'org.freedesktop.Telepathy.Client.org.laptop.Chat'
}}}
The non-sugar invitation did display fine but joining it did fail with the
following traceback:
{{{
1301420015.344435 ERROR root: ActivityInvite.join handler
'org.freedesktop.Telepathy.Client.org.laptop.Chat'
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/jarabe/frame/activitiestray.py",
line 154, in __clicked_cb
self._launch()
File "/usr/lib/python2.7/site-packages/jarabe/frame/activitiestray.py",
line 162, in _launch
self._invite.join()
File "/usr/lib/python2.7/site-packages/jarabe/model/invites.py", line
87, in join
activity_id = model.get_activity_by_room(self._handle).activity_id
AttributeError: 'NoneType' object has no attribute 'activity_id'
1301420015.361700 DEBUG root: icon None not in list of notifications.
}}}
--
Ticket URL: <http://dev.laptop.org/ticket/10738#comment:3>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list