diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-07-16 12:17:16 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-08-20 13:02:27 (GMT) |
commit | 6422268efc87bca915e5c53c4e134d9c66236365 (patch) | |
tree | 3bcd9977729f8f94a9f0b0d94d9671839e26c7cf | |
parent | 84d312c974a48e25312708d4ec894ee51b1d4ddc (diff) |
Retrieve activity properties once we know about it
-rw-r--r-- | src/jarabe/model/neighborhood.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/jarabe/model/neighborhood.py b/src/jarabe/model/neighborhood.py index 8031fdd..56d8696 100644 --- a/src/jarabe/model/neighborhood.py +++ b/src/jarabe/model/neighborhood.py @@ -234,6 +234,11 @@ class _Account(gobject.GObject): self._activity_handles[room_handle] = activity_id self.emit('activity-added', room_handle, activity_id) + connection = self._connection[CONNECTION_INTERFACE_ACTIVITY_PROPERTIES] + connection.GetProperties(room_handle, + reply_handler=partial(self.__get_properties_cb, room_handle), + error_handler=self.__error_handler_cb) + if not activity_id in self._buddies_per_activity: self._buddies_per_activity[activity_id] = set() self._buddies_per_activity[activity_id].add(buddy_handle) @@ -244,6 +249,10 @@ class _Account(gobject.GObject): if not activity_id in current_activity_ids: self._remove_activity(buddy_handle, activity_id) + def __get_properties_cb(self, room_handle, properties): + logging.debug('__get_properties_cb %r %r', room_handle, properties) + self._update_activity(room_handle, properties) + def _remove_activity(self, buddy_handle, activity_id): if buddy_handle in self._buddies_per_activity[activity_id]: self._buddies_per_activity[activity_id].remove(buddy_handle) @@ -261,6 +270,9 @@ class _Account(gobject.GObject): def __activity_properties_changed_cb(self, room_handle, properties): logging.debug('__activity_properties_changed_cb %r %r', room_handle, properties) + self._update_activity(room_handle, properties) + + def _update_activity(self, room_handle, properties): if room_handle in self._activity_handles: self.emit('activity-updated', self._activity_handles[room_handle], properties) |