From b2234e5e260d4becbdf2e8f8372ca0e31fce16d0 Mon Sep 17 00:00:00 2001 From: dave Date: Wed, 09 Dec 2009 06:26:23 +0000 Subject: fix bug synchronization activity launch / set focus for mapped addons --- diff --git a/tutorius/TProbe.py b/tutorius/TProbe.py index d2af13f..a746b2e 100644 --- a/tutorius/TProbe.py +++ b/tutorius/TProbe.py @@ -762,10 +762,16 @@ class ProbeManager(object): self._probes = {} self._current_activity = None - self.is_activity_launching = False + self.list_pending_actions = [] + self.list_action_installed_cb = [] + self.list_error_cb = [] + + self.list_pending_transitions = [] + self.list_notification_cb = [] + self.list_event_subscribed_cb = [] + self.list_error_cb = [] - self.list_pending_actions = None - self.list_pending_transitions = None + self.is_activity_launching = False ProbeManager._LOGGER.debug("__init__()") @@ -822,10 +828,11 @@ class ProbeManager(object): if self.is_activity_launching == False: activityfactory.create(activity_bundle) self.is_activity_launching = True + if is_event: - self.list_pending_transitions = action_event + self.list_pending_transitions.append(action_event) else: - self.list_pending_actions = action_event + self.list_pending_actions.append(action_event) return True return False @@ -849,8 +856,8 @@ class ProbeManager(object): wait_install = self.prelaunch_activity(activity, action) if wait_install: - self.list_action_installed_cb = action_installed_cb - self.list_error_cb = error_cb + self.list_action_installed_cb.append(action_installed_cb) + self.list_error_cb.append(error_cb) return return self._first_proxy(activity).install( @@ -932,9 +939,9 @@ class ProbeManager(object): wait_install = self.prelaunch_activity(activity, event, True) if wait_install: - self.list_notification_cb = notification_cb - self.list_event_subscribed_cb = event_subscribed_cb - self.list_error_cb = error_cb + self.list_notification_cb.append(notification_cb) + self.list_event_subscribed_cb.append(event_subscribed_cb) + self.list_error_cb.append(error_cb) return return self._first_proxy(activity).subscribe(event, notification_cb,\ @@ -976,7 +983,7 @@ class ProbeManager(object): process_name = str(process_name) unique_id = str(unique_id) ProbeManager._LOGGER.debug("register_probe(%s,%s)", process_name, unique_id) - if process_name not in self._probes: + if process_name not in self._probes: self._probes[process_name] = [(unique_id,self._ProxyClass(process_name, unique_id))] else: self._probes[process_name].append((unique_id,self._ProxyClass(process_name, unique_id))) @@ -985,17 +992,38 @@ class ProbeManager(object): # to open up) self.currentActivity = process_name - if self.list_pending_actions: - self.install(self.list_pending_actions, self.list_action_installed_cb, self.list_error_cb) - self.list_pending_actions = None - - if self.list_pending_transitions: - self.subscribe(self.list_pending_transitions, self.list_notification_cb, self.list_event_subscribed_cb, self.list_error_cb) - self.list_pending_transitions = None + cnt_action = 0 + for pending_action in self.list_pending_actions: + self._first_proxy(self.currentActivity).install( + action=pending_action, + is_editing=False, + action_installed_cb=self.list_action_installed_cb[cnt_action], + error_cb=self.list_error_cb[cnt_action], + editing_cb=False + ) + cnt_action = cnt_action + 1 + + cnt_transition = 0 + for pending_transition in self.list_pending_transitions: + self._first_proxy(self.currentActivity).subscribe( + pending_transition, + self.list_notification_cb[cnt_transition], + self.list_event_subscribed_cb[cnt_transition], + self.list_error_cb[cnt_transition] + ) + cnt_transition = cnt_transition + 1 + + self.list_pending_actions = [] + self.list_action_installed_cb = [] + self.list_error_cb = [] + + self.list_pending_transitions = [] + self.list_notification_cb = [] + self.list_event_subscribed_cb = [] + self.list_error_cb = [] self.is_activity_launching = False - def unregister_probe(self, unique_id): """ Remove a probe from the known probes. -- cgit v0.9.1