Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordave <drykod@gmail.com>2009-12-09 06:26:23 (GMT)
committer dave <drykod@gmail.com>2009-12-09 06:26:23 (GMT)
commitb2234e5e260d4becbdf2e8f8372ca0e31fce16d0 (patch)
tree86a5deb4f827363a4fa4d6d41113a66526d4e737
parent435a2c9be678f86f31d52ed1a9fec6d0edc4bc58 (diff)
fix bug synchronization activity launch / set focus for mapped addonsHEADmaster
-rw-r--r--tutorius/TProbe.py66
1 files changed, 47 insertions, 19 deletions
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.