X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/2c223d412e8dfcb89efaf715f1e1f657a8c7e509..d28d65fa09cf76015ebfd65ec9485c8bdd108b22:/tools/actions/session_manager.py diff --git a/tools/actions/session_manager.py b/tools/actions/session_manager.py index c1d4271..d2daf7a 100644 --- a/tools/actions/session_manager.py +++ b/tools/actions/session_manager.py @@ -24,13 +24,13 @@ class DbusSessionManager(dbus.service.Object): @dbus.service.method("id.waydro.SessionManager", in_signature='', out_signature='') def Stop(self): do_stop(self.args, self.looper) - stop_container() + stop_container(quit_session=False) def service(args, looper): dbus_obj = DbusSessionManager(looper, dbus.SessionBus(), '/SessionManager', args) looper.run() -def start(args, unlocked_cb=None): +def start(args, unlocked_cb=None, background=True): try: name = dbus.service.BusName("id.waydro.Session", dbus.SessionBus(), do_not_queue=True) except dbus.exceptions.NameExistsException: @@ -72,11 +72,13 @@ def start(args, unlocked_cb=None): dpi = "0" session["lcd_density"] = dpi + session["background_start"] = "true" if background else "false" + mainloop = GLib.MainLoop() def sigint_handler(data): do_stop(args, mainloop) - stop_container() + stop_container(quit_session=False) def sigusr_handler(data): do_stop(args, mainloop) @@ -87,6 +89,7 @@ def start(args, unlocked_cb=None): try: tools.helpers.ipc.DBusContainerService().Start(session) except dbus.DBusException as e: + logging.debug(e) if e.get_dbus_name().startswith("org.freedesktop.DBus.Python"): logging.error(e.get_dbus_message().splitlines()[-1]) else: @@ -106,10 +109,10 @@ def stop(args): try: tools.helpers.ipc.DBusSessionService().Stop() except dbus.DBusException: - stop_container() + stop_container(quit_session=True) -def stop_container(): +def stop_container(quit_session): try: - tools.helpers.ipc.DBusContainerService().Stop() + tools.helpers.ipc.DBusContainerService().Stop(quit_session) except dbus.DBusException: pass