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-08 02:29:41 (GMT)
committer dave <drykod@gmail.com>2009-12-08 02:29:41 (GMT)
commite17f3bc29fa3bd196249125a9295ff8ce913303b (patch)
tree50acb0a95807ca2e87314a2bdeafa74cf0c9acbb
parent8b536884fb1f24cf7499b54793c349c37271e990 (diff)
Add few fixes (launch activity / set focus / home view support)
-rw-r--r--tutorius/TProbe.py35
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.