diff options
-rw-r--r-- | services/presence/PresenceService.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/services/presence/PresenceService.py b/services/presence/PresenceService.py index 77c67ee..b43506e 100644 --- a/services/presence/PresenceService.py +++ b/services/presence/PresenceService.py @@ -451,6 +451,16 @@ class PresenceService(object): if activity: activity.add_service(service) + # Add the activity to its buddy + # FIXME: use something other than name to attribute to buddy + name = service.get_name() + buddy = None + try: + buddy = self._buddies[name] + buddy.add_activity(activity) + except KeyError: + pass + if not was_valid and activity.is_valid(): self._dbus_helper.ActivityAppeared(activity.object_path()) @@ -460,7 +470,19 @@ class PresenceService(object): return if not self._activities.has_key(actid): return + activity = self._activities[actid] + + # Remove the activity from its buddy + # FIXME: use something other than name to attribute to buddy + name = service.get_name() + buddy = None + try: + buddy = self._buddies[name] + buddy.remove_activity(activity) + except KeyError: + pass + activity.remove_service(service) if len(activity.get_services()) == 0: # Kill the activity |