]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/services/user_manager.py
Add first-launch command [v2]
[waydroid.git] / tools / services / user_manager.py
index 09b6bab0a240a0a96952275699c1ea13c593c526..1171e85981b3e3eb54b0d4cbe2db0320d5ecee22 100644 (file)
@@ -7,6 +7,7 @@ import tools.config
 from tools.interfaces import IUserMonitor
 from tools.interfaces import IPlatform
 
+stopping = False
 
 def start(args, unlocked_cb=None):
 
@@ -21,16 +22,6 @@ def start(args, unlocked_cb=None):
         packageName = appInfo["packageName"]
 
         desktop_file_path = args.apps_dir + "/waydroid." + packageName + ".desktop"
-        #TODO: Drop me
-        if os.path.exists(desktop_file_path):
-            with open(desktop_file_path) as file:
-                filedata = file.read()
-            filedata = filedata.replace(
-                "Icon=" + args.old_waydroid_data, "Icon=" + args.waydroid_data)
-            with open(desktop_file_path, 'w') as file:
-                file.write(filedata)
-            os.chmod(desktop_file_path, 0o755)
-
         if not os.path.exists(desktop_file_path):
             lines = ["[Desktop Entry]", "Type=Application"]
             lines.append("Name=" + appInfo["name"])
@@ -63,9 +54,6 @@ def start(args, unlocked_cb=None):
         logging.info("Android with user {} is ready".format(uid))
         session_cfg = tools.config.load_session()
         args.waydroid_data = session_cfg["session"]["waydroid_data"]
-        #TODO: Drop me
-        args.old_waydroid_data = session_cfg["session"]["host_user"] + \
-            "/waydroid/data"
         args.apps_dir = session_cfg["session"]["xdg_data_home"] + \
             "/applications/"
 
@@ -102,12 +90,17 @@ def start(args, unlocked_cb=None):
                         os.remove(desktop_file_path)
 
     def service_thread():
-        IUserMonitor.add_service(args, userUnlocked, packageStateChanged)
+        while not stopping:
+            IUserMonitor.add_service(args, userUnlocked, packageStateChanged)
 
+    global stopping
+    stopping = False
     args.user_manager = threading.Thread(target=service_thread)
     args.user_manager.start()
 
 def stop(args):
+    global stopping
+    stopping = True
     try:
         if args.userMonitorLoop:
             args.userMonitorLoop.quit()