refactor(eink): Text size and Icon size as schema settings, on opt-in builds only

Review follow-up:

- The rows exist only where the build asks for them: Text size with
  EINK_FONT_SCALE, Icon size with STATUS_ICON_SCALE. The stock 2.13", the
  portrait builds and the L2 don't get them -- their screens are laid out
  for one cell size. The text override also applies in landscape only.
- Stored in NodePrefs (ui_text_scale, ui_icon_scale) instead of a
  /ui_scale file, as rows in the schema's Display section: the usual row,
  save path and factory reset, and console keys display.text.size /
  display.icon.size. The hand-written Settings rows and the load/save code
  are gone; UITask::applyUiScale() applies the prefs at boot and on change
  (applyDisplayPrefs). On opt-in builds ui_text_scale starts at the
  build's EINK_FONT_SCALE (DataStore sanitize), so the row shows the scale
  in use.
- EINK_FONT_SCALE, when set, now scales whichever landscape font the build
  picks (the 6x9, or the EINK_LARGE_FONT one); unset, it is stock as before.
- setUiScale() skips the re-layout and full redraw when nothing changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
pmow
2026-10-10 16:36:39 -10:00
co-authored by Claude Opus 5.5
parent c06b394144
commit 13531dd2ce
11 changed files with 74 additions and 114 deletions
+4 -5
View File
@@ -13,11 +13,10 @@
; OFFLINE_QUEUE_SIZE 32 (stock e-ink: 128) frees ~17 KB
; MAX_CONTACTS 250 (stock: 350) frees ~18 KB
; - EINK_FONT_SCALE 4: text at 4x the 6x9 font (24x36 cells, ~33 characters
; x 13 lines) -- twice the stock 2x. The default for Settings > Display >
; Text size (1x-5x), which overrides it once changed.
; - STATUS_ICON_SCALE 0: turns on scalable Home status/page icons; 0 = Auto
; (1.5x the text: 6x at 4x text). The default for Settings > Display >
; Icon size (Auto, 1x-8x).
; x 13 lines) -- twice the stock 2x. Also adds Settings > Display > Text
; size (1x-5x), which starts here.
; - STATUS_ICON_SCALE turns on scalable Home status/page icons and adds
; Settings > Display > Icon size (Auto = 1.5x the text: 6x at 4x text, 1x-8x).
;
; Build: pio run -e WioTrackerL1_GDEQ0426T82_companion_solo_dual
[env:WioTrackerL1_GDEQ0426T82_companion_solo_dual]