Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco 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)
commit0d4d74b94f6200175eb84b10182028b35bacebf2 (patch)
tree8dfbe2fcc9aa8958c836f62ab5e06df9a113bfd9 /shell
parente5db6eb97150640995eed09162a71386bbb709bb (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.py9
-rw-r--r--shell/view/ActivityHost.py13
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