]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/services/user_manager.py
clipboard: Return empty string if error
[waydroid.git] / tools / services / user_manager.py
index 137c5de7287e1fd39f1f9f2a7e95dccf3f71033d..c33f18952f9a73e6cd281b3a0f8ef7e9b005fc7c 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):
 
@@ -26,6 +27,7 @@ def start(args, unlocked_cb=None):
             lines.append("Name=" + appInfo["name"])
             lines.append("Exec=waydroid app launch " + packageName)
             lines.append("Icon=" + args.waydroid_data + "/icons/" + packageName + ".png")
+            lines.append("X-Purism-FormFactor=Workstation;Mobile;")
             desktop_file = open(desktop_file_path, "w")
             for line in lines:
                 desktop_file.write(line + "\n")
@@ -40,6 +42,7 @@ def start(args, unlocked_cb=None):
         lines = ["[Desktop Entry]", "Type=Application"]
         lines.append("Name=Waydroid")
         lines.append("Exec=waydroid show-full-ui")
+        lines.append("X-Purism-FormFactor=Workstation;Mobile;")
         if hide:
             lines.append("NoDisplay=true")
         lines.append("Icon=" + tools.config.tools_src + "/data/AppIcon.png")
@@ -89,12 +92,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()