diff options
author | dave <drykod@gmail.com> | 2009-12-08 02:29:41 (GMT) |
---|---|---|
committer | dave <drykod@gmail.com> | 2009-12-08 02:29:41 (GMT) |
commit | e17f3bc29fa3bd196249125a9295ff8ce913303b (patch) | |
tree | 50acb0a95807ca2e87314a2bdeafa74cf0c9acbb | |
parent | 8b536884fb1f24cf7499b54793c349c37271e990 (diff) |
Add few fixes (launch activity / set focus / home view support)
-rw-r--r-- | tutorius/TProbe.py | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/tutorius/TProbe.py b/tutorius/TProbe.py index 2c976ec..b411968 100644 --- a/tutorius/TProbe.py +++ b/tutorius/TProbe.py @@ -670,6 +670,7 @@ class ProbeManager(object): self._current_activity = None self.list_pending_actions = None + self.list_pending_transitions = None ProbeManager._LOGGER.debug("__init__()") @@ -695,7 +696,7 @@ class ProbeManager(object): else: return None - def prelaunch_activity(self, activity, action): + def prelaunch_activity(self, activity, action_event, is_event=False): if activity == "org.laptop.Mesh": get_model()._set_zoom_level(get_model().ZOOM_MESH) return False @@ -729,7 +730,12 @@ class ProbeManager(object): #logging.debug("LAUNCHING ACTIVITY") activity_bundle = ActivityBundle(path) activityfactory.create(activity_bundle) - self.list_pending_actions = action + if is_event: + #logging.debug("**** ADD EVENT TO LIST") + self.list_pending_transitions = action_event + else: + #logging.debug("**** ADD ACTION TO LIST") + self.list_pending_actions = action_event return True return False @@ -757,6 +763,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 return return self._first_proxy(activity).install( @@ -836,6 +844,16 @@ class ProbeManager(object): activity = self.get_source_activity(event) if activity: + #logging.debug("**** ACTIVITY SOURCE : %s" % activity) + + 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 + return + return self._first_proxy(activity).subscribe(event, notification_cb,\ event_subscribed_cb, error_cb) else: @@ -879,9 +897,16 @@ class ProbeManager(object): self._probes[process_name].append((unique_id,self._ProxyClass(process_name, unique_id))) if self.list_pending_actions: - logging.debug("EXECUTING PENDING ACTION : %s" % self.list_pending_actions) - self.install(self.list_pending_actions, None, None) - logging.debug("INSTALLED") + #logging.debug("EXECUTING PENDING ACTION : %s" % self.list_pending_actions) + self.install(self.list_pending_actions, self.list_action_installed_cb, self.list_error_cb) + #logging.debug("INSTALLED") + self.list_pending_actions = None + + if self.list_pending_transitions: + #logging.debug("EXECUTING PENDING TRANSITIONS : %s" % self.list_pending_transitions) + self.subscribe(self.list_pending_transitions, self.list_notification_cb, self.list_event_subscribed_cb, self.list_error_cb) + #logging.debug("SUBSCRIBED") + self.list_pending_transitions = None def unregister_probe(self, unique_id): """ Remove a probe from the known probes. |