X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/551229c6b012d29224a4459ad46bcd97bbaa11a5..e074cf4f8d4a1dabd6767306fbf51d25de90ebc4:/tools/actions/app_manager.py diff --git a/tools/actions/app_manager.py b/tools/actions/app_manager.py index 46d0818..f4a4b6a 100644 --- a/tools/actions/app_manager.py +++ b/tools/actions/app_manager.py @@ -21,7 +21,7 @@ def install(args): platformService = IPlatform.get_service(args) if platformService: platformService.installApp("/data/waydroid_tmp/base.apk") - shutil.rmtree(tmp_dir) + os.remove(tmp_dir + "/base.apk") else: logging.error("WayDroid container is {}".format( session_cfg["session"]["state"])) @@ -45,6 +45,25 @@ def remove(args): else: logging.error("WayDroid session is stopped") +def maybeLaunchLater(args, retry, launchNow): + if os.path.exists(tools.config.session_defaults["config_path"]): + session_cfg = tools.config.load_session() + + if session_cfg["session"]["state"] == "RUNNING": + launchNow() + 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() + launchNow() + else: + logging.error("WayDroid container is {}".format( + session_cfg["session"]["state"])) + else: + logging.error("Starting waydroid session") + tools.actions.session_manager.start(args, retry) + def launch(args): def justLaunch(): platformService = IPlatform.get_service(args) @@ -61,24 +80,7 @@ def launch(args): 2, "policy_control", "immersive.full=*") else: logging.error("Failed to access IPlatform service") - - if os.path.exists(tools.config.session_defaults["config_path"]): - session_cfg = tools.config.load_session() - - if session_cfg["session"]["state"] == "RUNNING": - justLaunch() - 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() - justLaunch() - else: - logging.error("WayDroid container is {}".format( - session_cfg["session"]["state"])) - else: - logging.error("Starting waydroid session") - tools.actions.session_manager.start(args, launch) + maybeLaunchLater(args, launch, justLaunch) def list(args): if os.path.exists(tools.config.session_defaults["config_path"]): @@ -113,21 +115,25 @@ def showFullUI(args): statusBarService.expand() time.sleep(0.5) statusBarService.collapse() + maybeLaunchLater(args, showFullUI, justShow) - 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() +def intent(args): + def justLaunch(): + platformService = IPlatform.get_service(args) + if platformService: + ret = platformService.launchIntent(args.ACTION, args.URI) + if ret == "": + return + pkg = ret if ret != "android" else "Waydroid" + platformService.setprop("waydroid.active_apps", pkg) + multiwin = platformService.getprop( + "persist.waydroid.multi_windows", "false") + if multiwin == "false": + platformService.settingsPutString( + 2, "policy_control", "immersive.status=*") + else: + platformService.settingsPutString( + 2, "policy_control", "immersive.full=*") else: - logging.error("WayDroid container is {}".format( - session_cfg["session"]["state"])) - else: - logging.error("Starting waydroid session") - tools.actions.session_manager.start(args, showFullUI) + logging.error("Failed to access IPlatform service") + maybeLaunchLater(args, intent, justLaunch)