diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-08-31 10:43:10 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-08-31 10:43:10 (GMT) |
commit | 0d4d74b94f6200175eb84b10182028b35bacebf2 (patch) | |
tree | 8dfbe2fcc9aa8958c836f62ab5e06df9a113bfd9 /shell | |
parent | e5db6eb97150640995eed09162a71386bbb709bb (diff) |
Hookup the new invites implementation. Need to fix
the frame view since that's bitrotten.
Diffstat (limited to 'shell')
-rw-r--r-- | shell/model/Owner.py | 9 | ||||
-rw-r--r-- | shell/view/ActivityHost.py | 13 |
2 files changed, 17 insertions, 5 deletions
diff --git a/shell/model/Owner.py b/shell/model/Owner.py index 299e74f..87e49ca 100644 --- a/shell/model/Owner.py +++ b/shell/model/Owner.py @@ -66,6 +66,8 @@ class ShellOwner(gobject.GObject): self._icon_hash = util.printable_hash(digest) self._pservice = presenceservice.get_instance() + self._pservice.connect('activity-invitation', + self._activity_invitation_cb) self._invites = Invites() @@ -75,7 +77,6 @@ class ShellOwner(gobject.GObject): def get_nick(self): return self._nick - def _handle_invite(self, issuer, bundle_id, activity_id): - """XMLRPC method, called when the owner is invited to an activity.""" - self._invites.add_invite(issuer, bundle_id, activity_id) - return '' + def _activity_invitation_cb(self, pservice, activity, buddy, message): + self._invites.add_invite(buddy, activity.props.type, + activity.props.id) diff --git a/shell/view/ActivityHost.py b/shell/view/ActivityHost.py index fa3aaf6..b22cd2b 100644 --- a/shell/view/ActivityHost.py +++ b/shell/view/ActivityHost.py @@ -16,6 +16,9 @@ import gtk import dbus +import logging + +from sugar.presence import presenceservice import OverlayWindow @@ -62,7 +65,15 @@ class ActivityHost: return self._model def invite(self, buddy): - pass + pservice = presenceservice.get_instance() + activity = pservice.get_activity(self.get_id()) + if activity is None: + logging.error('Invite failed, %s is unknown.' % self.get_id()) + activity.invite(buddy.get_buddy(), '', self._invite_response_cb) + + def _invite_response_cb(self, error): + if error: + logging.error('Invite failed: %s' % error) def present(self): # wnck.Window.activate() expects a timestamp, but we don't |