From c70ed7220d1812b3ab057496ad060f73cb633a83 Mon Sep 17 00:00:00 2001 From: Thomas Farstrike Date: Thu, 30 Oct 2025 00:34:30 +0100 Subject: [PATCH] Simplify is_launcher --- internal_filesystem/lib/mpos/apps.py | 6 ++---- internal_filesystem/lib/mpos/package_manager.py | 7 +++---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/internal_filesystem/lib/mpos/apps.py b/internal_filesystem/lib/mpos/apps.py index 1fa3d06d..0c367016 100644 --- a/internal_filesystem/lib/mpos/apps.py +++ b/internal_filesystem/lib/mpos/apps.py @@ -122,7 +122,7 @@ def start_app(fullname): start_script_fullpath = f"{app.installed_path}/{app.main_launcher_activity.get('entrypoint')}" execute_script(start_script_fullpath, True, app.installed_path + "/assets/", app.main_launcher_activity.get("classname")) # Launchers have the bar, other apps don't have it - if PackageManager.is_launcher(fullname): + if PackageManager.is_valid_launcher(app): mpos.ui.topmenu.open_bar() else: mpos.ui.topmenu.close_bar() @@ -135,12 +135,10 @@ def restart_launcher(): mpos.ui.empty_screen_stack() # No need to stop the other launcher first, because it exits after building the screen for app in mpos.package_manager.PackageManager.get_app_list(): - #print(f"checking {app}") - if app.category == "launcher" and app.main_launcher_activity: # if it's a launcher and it has a main_launcher_activity + if PackageManager.is_valid_launcher(app): print(f"Found launcher, starting {app.fullname}") start_app(app.fullname) - class App: def __init__(self, name, publisher, short_description, long_description, icon_url, download_url, fullname, version, category, activities, installed_path=None): self.name = name diff --git a/internal_filesystem/lib/mpos/package_manager.py b/internal_filesystem/lib/mpos/package_manager.py index 57bb8da5..bdee6fbc 100644 --- a/internal_filesystem/lib/mpos/package_manager.py +++ b/internal_filesystem/lib/mpos/package_manager.py @@ -221,7 +221,6 @@ class PackageManager: return PackageManager.is_installed_by_path(f"apps/{app_fullname}") or PackageManager.is_installed_by_path(f"builtin/apps/{app_fullname}") @staticmethod - def is_launcher(app_name): - print(f"checking is_launcher for {app_name}") - # Simple check, could be more elaborate by checking the MANIFEST.JSON for the app... - return "launcher" in app_name or len(mpos.ui.screen_stack) < 2 # assumes the first one on the stack is the launcher + def is_valid_launcher(app_obj): + #print(f"checking is_valid_launcher for {app_obj}") + return app_obj.category == "launcher" and app_obj.main_launcher_activity