diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-09-11 15:53:27 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-09-11 15:53:27 (GMT) |
commit | fdb9c57e659c8ff66479f80633e2305e3a56a686 (patch) | |
tree | 471557c94dd4c2472c2dc8e588d354c86133ae95 /sugar | |
parent | 6ff3486f42437e8a758d2fc6fd1f723e176a20d3 (diff) |
Handle invitations inside Activity.
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/activity/activity.py | 14 | ||||
-rw-r--r-- | sugar/activity/activityservice.py | 5 |
2 files changed, 19 insertions, 0 deletions
diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py index 9e14088..af15e4e 100644 --- a/sugar/activity/activity.py +++ b/sugar/activity/activity.py @@ -543,6 +543,20 @@ class Activity(Window, gtk.Container): # FIXME: some way to distinguish between share scopes self._jobject.metadata['share-scope'] = SCOPE_NEIGHBORHOOD + def _invite_response_cb(self, error): + if error: + logging.error('Invite failed: %s' % error) + + def invite(self, buddy_key): + if self._shared_activity is None: + return + + buddy = self._pservice.get_buddy(buddy_key) + if buddy: + self._shared_activity.invite(buddy, '', self._invite_response_cb) + else: + logging.error('Cannot invite %s, no such buddy.' % buddy_key) + def share(self, private=False): """Request that the activity be shared on the network. diff --git a/sugar/activity/activityservice.py b/sugar/activity/activityservice.py index f2b3394..b2f7e15 100644 --- a/sugar/activity/activityservice.py +++ b/sugar/activity/activityservice.py @@ -59,3 +59,8 @@ class ActivityService(dbus.service.Object): def SetActive(self, active): logging.debug('ActivityService.set_active: %s.' % active) self._activity.props.active = active + + @dbus.service.method(_ACTIVITY_INTERFACE) + def Invite(self, buddy_key): + self._activity.invite(buddy_key) + |