feat(eink): suppress clock seconds to prevent per-second panel refreshes

E-ink panels take ~2 s for a full refresh and visible flicker on every update.
Showing seconds caused the clock page to redraw every 1 s, triggering a real
panel refresh each time the CRC changed.

- Default clock_hide_seconds=1 for EINK_DISPLAY_MODEL builds so fresh
  installs don't flicker out of the box.
- Remove the Seconds setting from SettingsScreen on e-ink so users can't
  accidentally re-enable it.
- Clock page now returns 60 s refresh interval on e-ink (content changes at
  most once per minute); other home pages capped at 30 s (new messages still
  force immediate redraw via notify()).
- Lock screen refresh interval raised from 1 s to 60 s on e-ink; button
  presses already reset _next_refresh=0, so unlock feedback is instant.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-05-22 10:47:19 +02:00
parent 6a3b8e3135
commit 33ad70221e
3 changed files with 18 additions and 0 deletions

View File

@@ -952,6 +952,9 @@ MyMesh::MyMesh(mesh::Radio &radio, mesh::RNG &rng, mesh::RTCClock &rtc, SimpleMe
_prefs.dm_show_all = 1; // show all contacts by default
memset(_prefs.dm_notif, 0, sizeof(_prefs.dm_notif));
_prefs.auto_off_secs = 15; // 15 seconds auto-off by default
#ifdef EINK_DISPLAY_MODEL
_prefs.clock_hide_seconds = 1; // e-ink: seconds cause a panel refresh every second
#endif
_prefs.tz_offset_hours = 0; // UTC by default
_prefs.low_batt_mv = 3400; // auto-shutdown at 3.4V by default
_prefs.batt_display_mode = 0; // icon by default