#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