self._get_preferred_plugin(), 0, id=actid, type=atype, name=name, color=self._owner.props.color, local=True, private=True, tags=tags) activity.connect("validity-changed", self._activity_validity_changed_cb) activity.connect("disappeared", self._activity_disappeared_cb) self._activities_by_id[actid] = activity def activity_shared(): tp, room = activity.room_details self._activities_by_handle[tp][room] = activity async_cb(activity.object_path()) activity.join(activity_shared, async_err_cb, sharing=True, private=private, sender=sender) # local activities are valid at creation by definition, but we can't # connect to the activity's validity-changed signal until its already # issued the signal, which happens in the activity's constructor # for local activities. self._activity_validity_changed_cb(activity, activity.props.valid) def _activity_validity_changed_cb(self, activity, valid): if valid: self.ActivityAppeared(activity.object_path()) _logger.debug("New Activity: %s (%s)", activity.props.name, activity.props.id) else: self.ActivityDisappeared(activity.object_path()) _logger.debug("Activity disappeared: %s (%s)",