Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-08-10 12:15:20 (GMT)
committer Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-08-20 13:02:28 (GMT)
commitc2dbb8d7aa8f5753f9f12d11bf6ed551ac9ff5cb (patch)
tree2f555330cde7605371c6268797403d8bd7f8fa9a
parent628c07688d1dc86a6c494e07b37301cad8f5907c (diff)
Call the old Activity.Invite(key) method if Activity.InviteContact is not implemented by this activity
-rw-r--r--src/jarabe/view/buddymenu.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py
index 9305ca1..9d74aa0 100644
--- a/src/jarabe/view/buddymenu.py
+++ b/src/jarabe/view/buddymenu.py
@@ -19,6 +19,7 @@ from gettext import gettext as _
import gtk
import gconf
+import dbus
from sugar.graphics.palette import Palette
from sugar.graphics.menuitem import MenuItem
@@ -150,7 +151,16 @@ class BuddyMenu(Palette):
activity = shell.get_model().get_active_activity()
service = activity.get_service()
if service:
- service.Invite(self._buddy.props.account,
- self._buddy.props.contact_id)
+ try:
+ service.InviteContact(self._buddy.props.account,
+ self._buddy.props.contact_id)
+ except dbus.DBusException, e:
+ expected_exceptions = ['org.freedesktop.DBus.Error.UnknownMethod',
+ 'org.freedesktop.DBus.Python.NotImplementedError']
+ if e.get_dbus_name() in expected_exceptions:
+ logging.warning('Trying deprecated Activity.Invite')
+ service.Invite(self._buddy.props.key)
+ else:
+ raise
else:
logging.error('Invite failed, activity service not ')