diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-06-11 16:53:10 (GMT) |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-06-11 16:53:10 (GMT) |
commit | 927ccef5ad6537afb38aff9ad79b10745a2b4628 (patch) | |
tree | 4ad66fe128cd17981d50851e1ad8a190e79169c1 | |
parent | 7c4201fc25846bd2405fc5f9098b16602fa7adfe (diff) |
presenceservice: Only bind to D-Bus signals if the relevant interface is supported
-rw-r--r-- | src/presenceservice.py | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/presenceservice.py b/src/presenceservice.py index c8f4cb2..bf24b5e 100644 --- a/src/presenceservice.py +++ b/src/presenceservice.py @@ -163,20 +163,21 @@ class PresenceService(ExportedGObject): self._conn_matches[conn] = [] - def activity_properties_changed(room, properties): - self._activity_properties_changed(tp, room, properties) - m = conn[CONN_INTERFACE_ACTIVITY_PROPERTIES].connect_to_signal( - 'ActivityPropertiesChanged', - activity_properties_changed) - self._conn_matches[conn].append(m) - - def buddy_activities_changed(contact, activities): - self._buddy_activities_changed(tp, contact, activities) - m = conn[CONN_INTERFACE_BUDDY_INFO].connect_to_signal( - 'ActivitiesChanged', buddy_activities_changed) - self._conn_matches[conn].append(m) + if CONN_INTERFACE_ACTIVITY_PROPERTIES in conn: + def activity_properties_changed(room, properties): + self._activity_properties_changed(tp, room, properties) + m = conn[CONN_INTERFACE_ACTIVITY_PROPERTIES].connect_to_signal( + 'ActivityPropertiesChanged', + activity_properties_changed) + self._conn_matches[conn].append(m) if CONN_INTERFACE_BUDDY_INFO in conn: + def buddy_activities_changed(contact, activities): + self._buddy_activities_changed(tp, contact, activities) + m = conn[CONN_INTERFACE_BUDDY_INFO].connect_to_signal( + 'ActivitiesChanged', buddy_activities_changed) + self._conn_matches[conn].append(m) + def buddy_properties_changed(contact, properties): self._buddy_properties_changed(tp, contact, properties) m = conn[CONN_INTERFACE_BUDDY_INFO].connect_to_signal( @@ -195,11 +196,12 @@ class PresenceService(ExportedGObject): 'CurrentActivityChanged', buddy_curact_changed) self._conn_matches[conn].append(m) - def avatar_updated(contact, avatar_token): - self._avatar_updated(tp, contact, avatar_token) - m = conn[CONN_INTERFACE_AVATARS].connect_to_signal('AvatarUpdated', - avatar_updated) - self._conn_matches[conn].append(m) + if CONN_INTERFACE_AVATARS in conn: + def avatar_updated(contact, avatar_token): + self._avatar_updated(tp, contact, avatar_token) + m = conn[CONN_INTERFACE_AVATARS].connect_to_signal('AvatarUpdated', + avatar_updated) + self._conn_matches[conn].append(m) if CONN_INTERFACE_ALIASING in conn: def aliases_changed(aliases): |