from tools.interfaces import IPlatform
-def start(args):
+def start(args, unlocked_cb=None):
+
def makeDesktopFile(appInfo):
showApp = False
for cat in appInfo["categories"]:
packageName = appInfo["packageName"]
- desktop_file_path = args.host_user + \
- "/.local/share/applications/" + packageName + ".desktop"
+ desktop_file_path = args.apps_dir + "/waydroid." + packageName + ".desktop"
if not os.path.exists(desktop_file_path):
lines = ["[Desktop Entry]", "Type=Application"]
lines.append("Name=" + appInfo["name"])
os.chmod(desktop_file_path, 0o755)
return 0
- def makeWaydroidDesktopFile():
- desktop_file_path = args.host_user + \
- "/.local/share/applications/Waydroid.desktop"
- if not os.path.exists(desktop_file_path):
- lines = ["[Desktop Entry]", "Type=Application"]
- lines.append("Name=Waydroid")
- lines.append("Exec=waydroid show-full-ui")
- lines.append("Icon=" + tools.config.tools_src + "/data/AppIcon.png")
- desktop_file = open(desktop_file_path, "w")
- for line in lines:
- desktop_file.write(line + "\n")
- desktop_file.close()
- os.chmod(desktop_file_path, 0o755)
+ def makeWaydroidDesktopFile(hide):
+ desktop_file_path = args.apps_dir + "/Waydroid.desktop"
+ if os.path.isfile(desktop_file_path):
+ os.remove(desktop_file_path)
+ lines = ["[Desktop Entry]", "Type=Application"]
+ lines.append("Name=Waydroid")
+ lines.append("Exec=waydroid show-full-ui")
+ if hide:
+ lines.append("NoDisplay=true")
+ lines.append("Icon=" + tools.config.tools_src + "/data/AppIcon.png")
+ desktop_file = open(desktop_file_path, "w")
+ for line in lines:
+ desktop_file.write(line + "\n")
+ desktop_file.close()
+ os.chmod(desktop_file_path, 0o755)
def userUnlocked(uid):
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 = session_cfg["session"]["xdg_data_home"] + \
+ "/applications/"
platformService = IPlatform.get_service(args)
if platformService:
+ if not os.path.exists(args.apps_dir):
+ os.mkdir(args.apps_dir)
+ os.chmod(args.apps_dir, 0o700)
appsList = platformService.getAppsInfo()
for app in appsList:
makeDesktopFile(app)
multiwin = platformService.getprop("persist.waydroid.multi_windows", "false")
if multiwin == "false":
- makeWaydroidDesktopFile()
+ makeWaydroidDesktopFile(False)
else:
- desktop_file_path = args.host_user + \
- "/.local/share/applications/Waydroid.desktop"
- if os.path.isfile(desktop_file_path):
- os.remove(desktop_file_path)
+ makeWaydroidDesktopFile(True)
+ if unlocked_cb:
+ unlocked_cb(args)
def packageStateChanged(mode, packageName, uid):
platformService = IPlatform.get_service(args)
if platformService:
appInfo = platformService.getAppInfo(packageName)
- desktop_file_path = args.host_user + \
- "/.local/share/applications/" + packageName + ".desktop"
+ desktop_file_path = args.apps_dir + "/" + packageName + ".desktop"
if mode == 0:
# Package added
makeDesktopFile(appInfo)