]> glassweightruler.freedombox.rocks Git - waydroid.git/commitdiff
session: Move waydroid user data to XDG_DATA_HOME
authorErfan Abdi <erfangplus@gmail.com>
Thu, 30 Sep 2021 04:09:16 +0000 (07:39 +0330)
committerErfan Abdi <erfangplus@gmail.com>
Thu, 30 Sep 2021 04:23:05 +0000 (07:53 +0330)
tools/actions/session_manager.py
tools/config/__init__.py
tools/services/user_manager.py

index 0262c1a9456d70390a4fdcf54e0dad052113e237..6b2f3ebd400f155e1b050335cc470561e48556b3 100644 (file)
@@ -5,6 +5,7 @@ import os
 import time
 import signal
 import sys
 import time
 import signal
 import sys
+import shutil
 import tools.config
 from tools import services
 
 import tools.config
 from tools import services
 
@@ -20,6 +21,13 @@ def start(args, unlocked_cb=None):
 
     cfg = tools.config.load_session()
     waydroid_data = cfg["session"]["waydroid_data"]
 
     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:
+            os.removedirs(old_user_waydroid)
     if not os.path.isdir(waydroid_data):
         os.makedirs(waydroid_data)
     dpi = tools.helpers.props.host_get(args, "ro.sf.lcd_density")
     if not os.path.isdir(waydroid_data):
         os.makedirs(waydroid_data)
     dpi = tools.helpers.props.host_get(args, "ro.sf.lcd_density")
index a4db7952c459d158dee1efc5e51e8efdb48edf53..ce1c6faef3e7d0df2d040f09be19c2652818d38f 100644 (file)
@@ -26,6 +26,7 @@ session_config_keys = ["user_name",
                        "user_id",
                        "group_id",
                        "host_user",
                        "user_id",
                        "group_id",
                        "host_user",
+                       "xdg_data_home",
                        "waydroid_data",
                        "xdg_runtime_dir",
                        "wayland_display",
                        "waydroid_data",
                        "xdg_runtime_dir",
                        "wayland_display",
@@ -55,6 +56,7 @@ session_defaults = {
     "user_id": str(os.getuid()),
     "group_id": str(os.getgid()),
     "host_user": os.path.expanduser("~"),
     "user_id": str(os.getuid()),
     "group_id": str(os.getgid()),
     "host_user": os.path.expanduser("~"),
+    "xdg_data_home": str(os.environ.get('XDG_DATA_HOME', os.path.expanduser("~") + "/.local/share")),
     "xdg_runtime_dir": str(os.environ.get('XDG_RUNTIME_DIR')),
     "wayland_display": str(os.environ.get('WAYLAND_DISPLAY')),
     "pulse_runtime_path": str(os.environ.get('PULSE_RUNTIME_PATH')),
     "xdg_runtime_dir": str(os.environ.get('XDG_RUNTIME_DIR')),
     "wayland_display": str(os.environ.get('WAYLAND_DISPLAY')),
     "pulse_runtime_path": str(os.environ.get('PULSE_RUNTIME_PATH')),
@@ -62,7 +64,7 @@ session_defaults = {
     "lcd_density": "0"
 }
 session_defaults["config_path"] = defaults["work"] + "/session.cfg"
     "lcd_density": "0"
 }
 session_defaults["config_path"] = defaults["work"] + "/session.cfg"
-session_defaults["waydroid_data"] = session_defaults["host_user"] + \
+session_defaults["waydroid_data"] = session_defaults["xdg_data_home"] + \
     "/waydroid/data"
 if session_defaults["pulse_runtime_path"] == "None":
     session_defaults["pulse_runtime_path"] = session_defaults["xdg_runtime_dir"] + "/pulse"
     "/waydroid/data"
 if session_defaults["pulse_runtime_path"] == "None":
     session_defaults["pulse_runtime_path"] = session_defaults["xdg_runtime_dir"] + "/pulse"
index fc6552b7a986fe29f76c7a66b12f04c6a679fcde..09b6bab0a240a0a96952275699c1ea13c593c526 100644 (file)
@@ -21,6 +21,16 @@ def start(args, unlocked_cb=None):
         packageName = appInfo["packageName"]
 
         desktop_file_path = args.apps_dir + "/waydroid." + packageName + ".desktop"
         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"])
         if not os.path.exists(desktop_file_path):
             lines = ["[Desktop Entry]", "Type=Application"]
             lines.append("Name=" + appInfo["name"])
@@ -53,8 +63,11 @@ 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"]
         logging.info("Android with user {} is ready".format(uid))
         session_cfg = tools.config.load_session()
         args.waydroid_data = session_cfg["session"]["waydroid_data"]
-        args.host_user = session_cfg["session"]["host_user"]
-        args.apps_dir = args.host_user + "/.local/share/applications/"
+        #TODO: Drop me
+        args.old_waydroid_data = session_cfg["session"]["host_user"] + \
+            "/waydroid/data"
+        args.apps_dir = session_cfg["session"]["xdg_data_home"] + \
+            "/applications/"
 
         platformService = IPlatform.get_service(args)
         if platformService:
 
         platformService = IPlatform.get_service(args)
         if platformService: