feat(ui-lvgl): LVGL 9 skeleton frontend for Wio Tracker L2

New examples/companion_radio/ui-lvgl/ over the shared UI Core (env
Wio_Tracker_L2_companion_solo_lvgl, LVGL 9.2.2, pool in PSRAM):
status bar, home (clock, unread), conversation list (channels + recent
DMs with unread badges), contact picker, conversation view with bubbles,
delivery / relay markers and on-screen keyboard, toasts for Core events,
display auto-off with wake on touch / button. Board glue (LovyanGFX
flush + GT911 touch) isolated in LvglPort.h; design tokens in Theme.h.

UiCore gains the first frontend actions, sendDirectText() and
sendChannelText(), and drives DM auto-resend + unread reconcile from its
own loop (removed from ui-new's loop). MessageHistory exposes newest-first
DM ring iteration and a public contactByPrefix().

Verified on L2 hardware: navigation, send/receive, sleep/wake.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-09-24 23:49:42 +02:00
co-authored by Claude Opus 5.5
parent 74db0d69a5
commit cd926b7e45
12 changed files with 1094 additions and 10 deletions
+29
View File
@@ -35,3 +35,32 @@ build_src_filter = ${Wio_Tracker_L2.build_src_filter}
lib_deps =
${Wio_Tracker_L2.lib_deps}
densaugeo/base64 @ ~1.4.0
; ui-lvgl skeleton: the real L2 interface -- LVGL 9 frontend over the shared UI
; Core (docs/development/ui-core.md, step 5). Not *_solo_dual yet (no release).
[env:Wio_Tracker_L2_companion_solo_lvgl]
extends = Wio_Tracker_L2
build_flags =
${Wio_Tracker_L2.build_flags}
-I examples/companion_radio/ui-lvgl
-D DISPLAY_CLASS=WioTrackerL2Display
-D UI_ZOOM=1
-D LV_CONF_INCLUDE_SIMPLE
-D MAX_CONTACTS=350
-D MAX_GROUP_CHANNELS=40
-D BLE_PIN_CODE=123456
-D DUAL_SERIAL=1
-D OFFLINE_QUEUE_SIZE=256
-D FIRMWARE_SOLO_BUILD=1
-D MESHCORE_VERSION='"1.17.1"'
-D AUTO_OFF_MILLIS=60000
build_src_filter = ${Wio_Tracker_L2.build_src_filter}
+<helpers/esp32/*.cpp>
+<helpers/ui/LGFXDisplay.cpp>
+<helpers/ui/MomentaryButton.cpp>
+<../examples/companion_radio/*.cpp>
+<../examples/companion_radio/ui-lvgl/*.cpp>
lib_deps =
${Wio_Tracker_L2.lib_deps}
densaugeo/base64 @ ~1.4.0
lvgl/lvgl @ 9.2.2 ; pinned: bump deliberately, re-test on hardware