import time
import signal
import sys
+import shutil
import tools.config
from tools import services
-def start(args):
+def start(args, unlocked_cb=None):
def signal_handler(sig, frame):
stop(args)
sys.exit(0)
cfg = tools.config.load_session()
waydroid_data = cfg["session"]["waydroid_data"]
+ #TODO: Drop me
+ old_user_waydroid = cfg["session"]["host_user"] + "/waydroid"
+ if os.path.isdir(old_user_waydroid):
+ if not os.path.isdir(waydroid_data):
+ shutil.move(old_user_waydroid, cfg["session"]["xdg_data_home"])
+ else:
+ shutil.rmtree(old_user_waydroid, ignore_errors=True)
if not os.path.isdir(waydroid_data):
os.makedirs(waydroid_data)
dpi = tools.helpers.props.host_get(args, "ro.sf.lcd_density")
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, unlocked_cb)
+ services.clipboard_manager.start(args)
+ if unlocked_cb:
+ unlocked_cb = None
+ 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)