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-07-16 12:17:16 (GMT)
committer Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-08-20 13:02:27 (GMT)
commit6422268efc87bca915e5c53c4e134d9c66236365 (patch)
tree3bcd9977729f8f94a9f0b0d94d9671839e26c7cf
parent84d312c974a48e25312708d4ec894ee51b1d4ddc (diff)
Retrieve activity properties once we know about it
-rw-r--r--src/jarabe/model/neighborhood.py12
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)