fix(ui): Emojis und Umlaute in Nachrichten (Issue #11) #12
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/issue-11-emoji-umlauts"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
In empfangenen Nachrichten werden zwei Kategorien von Zeichen nicht korrekt angezeigt:
1. Emojis → Platzhalterboxen
Die
kOpsEmoji-Tabelle inemoji_data.henthält nur 15 spezifische Codepoints. Alle anderen Emoji (z. B. 😀 😃 ✨ ⭐) fallen auf LVGLs Montserrat-Fallback zurück, der keine Emoji-Glyphen kennt →LV_USE_FONT_PLACEHOLDERzeigt hässliche Rechteckkästen.2. Umlaute → Platzhalterboxen
LVGLs eingebaute Montserrat-Fonts (lvgl@8.3.4) decken nur Basic Latin (U+0020–007E) ab. Die Behauptung in
TextUtils.h, Montserrat würde U+00A0–00FF enthalten, war falsch. Umlaute (ä ö ü Ä Ö Ü ß) liegen in U+00C0–00FF und haben keine Glyphen.Lösung
Emoji-Fix (sofort wirksam)
Emoji.cpp::_pathCb(): Für unbekannte Codepoints in den Emoji-Ranges (U+1F000–U+1FFFF, U+2600–U+27FF) wird ein transparentes 1×1-Pixel-Bild zurückgegeben stattfalseUmlaut-Fix (Custom Fonts über CI)
src/ui/OpsFont.h(neu): MakrosOPS_FONT_12/14/16— nutzen Custom-Fonts wennOPS_CUSTOM_FONTSdefiniert, sonst Fallback auf eingebaute Fontspre_build.py: Prüft obsrc/ui/fonts/ops_montserrat_14.cexistiert → setzt-DOPS_CUSTOM_FONTS=1scripts/gen_latin_fonts.sh: Erweitert um 12px-Größe und robustere Fehlerbehandlungrelease.yml,build-firmware.yml): Generiert die Font-Dateien automatisch vialv_font_convbevor die Firmware gebaut wird; commitet sie beim ersten LaufScreenHome.cpp,UIScreen.cpp: Nutzen jetztOPS_FONT_14/OPS_FONT_16für Nachrichten-Labels und Notification-PopupAblauf beim Merge
gen_latin_fonts.shgeneriert sie[skip ci])Closes #11