]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/actions/app_manager.py
drivers: Improve binderfs loading
[waydroid.git] / tools / actions / app_manager.py
index 7bb19a2f18962bc4dca8c69d3b6c5a87b0a89dfc..46d0818e094d936344f1a8237f64bf1e860c760c 100644 (file)
@@ -77,7 +77,8 @@ def launch(args):
             logging.error("WayDroid container is {}".format(
                 session_cfg["session"]["state"]))
     else:
-        logging.error("WayDroid session is stopped")
+        logging.error("Starting waydroid session")
+        tools.actions.session_manager.start(args, launch)
 
 def list(args):
     if os.path.exists(tools.config.session_defaults["config_path"]):
@@ -101,13 +102,32 @@ def list(args):
         logging.error("WayDroid session is stopped")
 
 def showFullUI(args):
-    platformService = IPlatform.get_service(args)
-    if platformService:
-        platformService.setprop("waydroid.active_apps", "Waydroid")
-        platformService.settingsPutString(2, "policy_control", "null*")
-        #HACK: Refresh display contents
-        statusBarService = IStatusBarService.get_service(args)
-        if statusBarService:
-            statusBarService.expand()
-            time.sleep(0.5)
-            statusBarService.collapse()
+    def justShow():
+        platformService = IPlatform.get_service(args)
+        if platformService:
+            platformService.setprop("waydroid.active_apps", "Waydroid")
+            platformService.settingsPutString(2, "policy_control", "null*")
+            # HACK: Refresh display contents
+            statusBarService = IStatusBarService.get_service(args)
+            if statusBarService:
+                statusBarService.expand()
+                time.sleep(0.5)
+                statusBarService.collapse()
+
+    if os.path.exists(tools.config.session_defaults["config_path"]):
+        session_cfg = tools.config.load_session()
+
+        if session_cfg["session"]["state"] == "RUNNING":
+            justShow()
+        elif session_cfg["session"]["state"] == "FROZEN" or session_cfg["session"]["state"] == "UNFREEZE":
+            session_cfg["session"]["state"] = "UNFREEZE"
+            tools.config.save_session(session_cfg)
+            while session_cfg["session"]["state"] != "RUNNING":
+                session_cfg = tools.config.load_session()
+            justShow()
+        else:
+            logging.error("WayDroid container is {}".format(
+                session_cfg["session"]["state"]))
+    else:
+        logging.error("Starting waydroid session")
+        tools.actions.session_manager.start(args, showFullUI)