From a7727d7a0baab46d1fb013cfa1dbb7966689b9b9 Mon Sep 17 00:00:00 2001 From: Thomas Farstrike Date: Wed, 11 Mar 2026 18:44:06 +0100 Subject: [PATCH] task_handler each 1ms for higher framerate, start firstrun at startup, remove launcher icon (not needed) --- CHANGELOG.md | 1 + .../assets/firstrun.py | 18 +++++++++++++++++- .../assets/launcher.py | 2 +- .../res/mipmap-mdpi/icon_64x64.png | Bin 6351 -> 0 bytes internal_filesystem/lib/mpos/main.py | 11 ++++------- scripts/bundle_apps.sh | 6 +++--- scripts/install.sh | 10 +++++++--- 7 files changed, 33 insertions(+), 15 deletions(-) delete mode 100644 internal_filesystem/builtin/apps/com.micropythonos.launcher/res/mipmap-mdpi/icon_64x64.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 17e392a7..fbb99a84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ OS: - New board support: LilyGo T-Display-S3 - New board support: M5Stack Fire - New board support: ODroid Go +- Add FreeRTOS module for low-level ESP32 functions 0.8.0 ===== diff --git a/internal_filesystem/builtin/apps/com.micropythonos.firstrun/assets/firstrun.py b/internal_filesystem/builtin/apps/com.micropythonos.firstrun/assets/firstrun.py index 7f1c7323..f41db506 100644 --- a/internal_filesystem/builtin/apps/com.micropythonos.firstrun/assets/firstrun.py +++ b/internal_filesystem/builtin/apps/com.micropythonos.firstrun/assets/firstrun.py @@ -2,10 +2,12 @@ from mpos import Activity class FirstRun(Activity): + dontshow_checkbox = None + def onCreate(self): screen = lv.obj() + screen.set_flex_flow(lv.FLEX_FLOW.COLUMN) label = lv.label(screen) - label.align(lv.ALIGN.TOP_LEFT, 0, 0) label.set_width(lv.pct(100)) touchhelp = "swipe from the left edge to go back and from the top edge to open the menu." label.set_text(f''' @@ -20,4 +22,18 @@ If you've got 3 buttons, one is PREVIOUS, one is ENTER and one is NEXT. To go ba If you've got 2 buttons, one is PREVIOUS, the other is NEXT. To ENTER, press both at the same time. To go back, long-press PREVIOUS. ''') label.set_long_mode(lv.label.LONG_MODE.WRAP) + + self.dontshow_checkbox = lv.checkbox(screen) + self.dontshow_checkbox.set_text("Don't show again") + + closebutton = lv.button(screen) + closebutton.add_event_cb(lambda *args: self.finish(), lv.EVENT.CLICKED, None) + closelabel = lv.label(closebutton) + closelabel.set_text("Close") + self.setContentView(screen) + + def onPause(self, screen): + checked = self.dontshow_checkbox.get_state() & lv.STATE.CHECKED + if checked: + print("TODO: make sure this doesn't appear again") diff --git a/internal_filesystem/builtin/apps/com.micropythonos.launcher/assets/launcher.py b/internal_filesystem/builtin/apps/com.micropythonos.launcher/assets/launcher.py index ee63c437..440ee6b4 100644 --- a/internal_filesystem/builtin/apps/com.micropythonos.launcher/assets/launcher.py +++ b/internal_filesystem/builtin/apps/com.micropythonos.launcher/assets/launcher.py @@ -86,7 +86,7 @@ class Launcher(Activity): iconcont_height = icon_size + label_height for app in AppManager.get_app_list(): - if app.category == "launcher" or app.fullname == "com.micropythonos.firstrun": + if app.category == "launcher": continue app_name = app.name diff --git a/internal_filesystem/builtin/apps/com.micropythonos.launcher/res/mipmap-mdpi/icon_64x64.png b/internal_filesystem/builtin/apps/com.micropythonos.launcher/res/mipmap-mdpi/icon_64x64.png deleted file mode 100644 index 0cecee4c6b3ba67fd8b60e604345f3d8e1294e59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6351 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