X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/ff4cf1c83f09e639504209dec68855cdf3c69bce..HEAD:/tools/actions/app_manager.py?ds=sidebyside diff --git a/tools/actions/app_manager.py b/tools/actions/app_manager.py index 47b2787..ae9cb25 100644 --- a/tools/actions/app_manager.py +++ b/tools/actions/app_manager.py @@ -15,6 +15,11 @@ def install(args): try: tools.helpers.ipc.DBusSessionService() + cm = tools.helpers.ipc.DBusContainerService() + session = cm.GetSession() + if session["state"] == "FROZEN": + cm.Unfreeze() + tmp_dir = tools.config.session_defaults["waydroid_data"] + "/waydroid_tmp" if not os.path.exists(tmp_dir): os.makedirs(tmp_dir) @@ -23,7 +28,12 @@ def install(args): platformService = IPlatform.get_service(args) if platformService: platformService.installApp("/data/waydroid_tmp/base.apk") + else: + logging.error("Failed to access IPlatform service") os.remove(tmp_dir + "/base.apk") + + if session["state"] == "FROZEN": + cm.Freeze() except (dbus.DBusException, KeyError): logging.error("WayDroid session is stopped") @@ -31,11 +41,21 @@ def remove(args): try: tools.helpers.ipc.DBusSessionService() + cm = tools.helpers.ipc.DBusContainerService() + session = cm.GetSession() + if session["state"] == "FROZEN": + cm.Unfreeze() + platformService = IPlatform.get_service(args) if platformService: ret = platformService.removeApp(args.PACKAGE) if ret != 0: logging.error("Failed to uninstall package: {}".format(args.PACKAGE)) + else: + logging.error("Failed to access IPlatform service") + + if session["state"] == "FROZEN": + cm.Freeze() except dbus.DBusException: logging.error("WayDroid session is stopped") @@ -49,7 +69,7 @@ def maybeLaunchLater(args, launchNow): launchNow() except dbus.DBusException: logging.error("Starting waydroid session") - tools.actions.session_manager.start(args, launchNow) + tools.actions.session_manager.start(args, launchNow, background=False) def launch(args): def justLaunch(): @@ -73,6 +93,11 @@ def list(args): try: tools.helpers.ipc.DBusSessionService() + cm = tools.helpers.ipc.DBusContainerService() + session = cm.GetSession() + if session["state"] == "FROZEN": + cm.Unfreeze() + platformService = IPlatform.get_service(args) if platformService: appsList = platformService.getAppsInfo() @@ -84,6 +109,9 @@ def list(args): print("\t" + cat) else: logging.error("Failed to access IPlatform service") + + if session["state"] == "FROZEN": + cm.Freeze() except dbus.DBusException: logging.error("WayDroid session is stopped") @@ -99,6 +127,8 @@ def showFullUI(args): statusBarService.expand() time.sleep(0.5) statusBarService.collapse() + else: + logging.error("Failed to access IPlatform service") maybeLaunchLater(args, justShow) def intent(args):