feat(ui-lvgl): @nick mentions highlighted, colour emoji and flags

Mentions: "@[nick]" in message text becomes "@nick" in the accent colour
(a span group); a mention of us is underlined and its bubble outlined.
Chat previews and the message popup's quote show "@nick" as well.

Emoji: every single-codepoint Twemoji and every flag, 16 px RGB565A8 in
flash, as the fallback font of each text size (fonts/ui_emoji.c, data
generated by fonts/emoji.py). Joiners, selectors and skin tones take no
space; a regional-indicator pair is swapped for the flag's private
codepoint before text reaches a label. Twemoji credit in Settings > About.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-09-26 23:41:12 +02:00
co-authored by Claude Opus 5.5
parent 708fde7225
commit f5206f10b4
13 changed files with 54002 additions and 18 deletions
+9 -3
View File
@@ -247,12 +247,18 @@ User list, second batch (2026-09-26):
- [x] Map download popup runs off the screen; take the WiFi settings out
of it (one place: Settings > WiFi). Compact: a progress bar, one
line of counts, errors on one line, only the network's name.
- [ ] Mentions: highlight @[nick] in message text (a coloured chip in
place of the raw "@[...]" markup), our own name stronger.
- [x] Mentions: "@[nick]" shows as "@nick" in the accent colour (a span);
our own name underlined and its bubble outlined. Previews and the
message popup's quote show "@nick" too.
- [x] Splash: "MeshCore Solo" with the upstream version and ours, all in
the MeshCore title font (the wordmark's letters plus l, v, d, digits,
'.', '-' drawn to match; Noto for a line with anything else).
- [ ] Emoji, ideally the full range (glyphs could live on the SD card).
- [x] Emoji: every single-codepoint emoji plus all flags, colour Twemoji
at 16 px baked into flash (~1.2 MB; fonts/emoji.py -> ui_emoji_data.c),
the text fonts' fallback. Flags are swapped for one private codepoint
before text reaches a label. Other sequences (skin tones, ZWJ) draw as
their parts. Credit in Settings > About. Later: an emoji picker on the
keyboard.
- [x] Tap-to-wake toggle (Settings > Display & power > WAKE, NVS, on by
default; off: only the top button wakes it).
- [x] Favourites as their own screen in the menu rather than a tile: a