raise OSError("container failed to start")
tools.config.save_session(session_cfg)
- if not hasattr(args, 'hardwareLoop'):
- services.hardware_manager.start(args)
+ services.hardware_manager.start(args)
signal.signal(signal.SIGINT, signal_handler)
while os.path.exists(tools.config.session_defaults["config_path"]):
logging.warning("session manager stopped, stopping container and waiting...")
stop(args)
+ services.hardware_manager.stop(args)
start(args)
else:
logging.error("WayDroid container is {}".format(status))
cfg["session"]["lcd_density"] = dpi
tools.config.save_session(cfg)
- services.user_manager.start(args)
- services.clipboard_manager.start(args)
-
+ container_state = "IDLE"
signal.signal(signal.SIGINT, signal_handler)
while os.path.exists(tools.config.session_defaults["config_path"]):
+ session_cfg = tools.config.load_session()
+ if container_state != session_cfg["session"]["state"]:
+ if session_cfg["session"]["state"] == "RUNNING":
+ services.user_manager.start(args)
+ services.clipboard_manager.start(args)
+ elif session_cfg["session"]["state"] == "STOPPED":
+ services.user_manager.stop(args)
+ services.clipboard_manager.stop(args)
+ container_state = session_cfg["session"]["state"]
time.sleep(1)
services.user_manager.stop(args)
services.clipboard_manager.stop(args)
status = serviceManager.add_service_sync(SERVICE_NAME, response)
if status:
- logging.error("Failed to add service " + SERVICE_NAME)
+ logging.error("Failed to add service {}: {}".format(
+ SERVICE_NAME, status))
args.clipboardLoop.quit()
response = serviceManager.new_local_object(INTERFACE, response_handler)
status = serviceManager.add_presence_handler(binder_presence)
if status:
args.clipboardLoop.run()
+ serviceManager.remove_handler(status)
+ del serviceManager
else:
logging.error("Failed to add presence handler: {}".format(status))
status = serviceManager.add_service_sync(SERVICE_NAME, response)
if status:
- logging.error("Failed to add service " + SERVICE_NAME)
+ logging.error("Failed to add service {}: {}".format(
+ SERVICE_NAME, status))
args.hardwareLoop.quit()
response = serviceManager.new_local_object(INTERFACE, response_handler)
status = serviceManager.add_presence_handler(binder_presence)
if status:
args.hardwareLoop.run()
+ serviceManager.remove_handler(status)
+ del serviceManager
else:
logging.error("Failed to add presence handler: {}".format(status))
status = serviceManager.add_service_sync(SERVICE_NAME, response)
if status:
- logging.error("Failed to add service " + SERVICE_NAME)
+ logging.error("Failed to add service {}: {}".format(
+ SERVICE_NAME, status))
args.userMonitorLoop.quit()
response = serviceManager.new_local_object(INTERFACE, response_handler)
status = serviceManager.add_presence_handler(binder_presence)
if status:
args.userMonitorLoop.run()
+ serviceManager.remove_handler(status)
+ del serviceManager
else:
logging.error("Failed to add presence handler: {}".format(status))