Commit Graph
6 Commits
Author SHA1 Message Date
JakubandClaude Sonnet 4.6 83124f8228 perf: increase render interval on static screens from 300ms to 2000ms
Static screens (SettingsScreen, BotScreen, FullscreenMsgView, message
list, contact picker) were re-rendering every 300ms with no visible
benefit. New messages still trigger immediate refresh via newMsg() →
_next_refresh=100, so responsiveness is unchanged. Reduces unnecessary
SPI transfers and CPU wakeups ~6x on idle static screens.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 23:06:04 +02:00
JakubandClaude Sonnet 4.6 2911efc92f fix: clear arrow background in FullscreenMsgView to prevent text overlap
Text lines fill the full display width, causing the last chars to bleed
into the scroll arrow area. Draw a DARK fillRect behind each arrow before
rendering it, so the arrow appears on a clean black background without
truncating the text width.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 23:06:04 +02:00
JakubandClaude Sonnet 4.6 db3f287c78 fix: transliterate message text in FullscreenMsgView before wrapping
Raw UTF-8 message body was passed directly to display.print(), rendering
Polish and other accented chars as garbage on the Adafruit font.
Transliterating before wrapLines also fixes byte-count wrapping for
multi-byte UTF-8 characters.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 23:05:24 +02:00
JakubandClaude Sonnet 4.6 24c8dcad72 feat: dynamic font-adaptive layout and Lemon font icon support for SH1106
- Add getCharWidth()/getLineHeight() virtual methods to DisplayDriver so
  all layout math adapts to whatever font is active
- Fix Lemon font baseline offset from +8 to +6 (cap height, not FONT_ASCENT)
- Add LemonIcons.h with Private Use Area glyph table; U+E03B mute icon
  rendered via drawLemonChar icon lookup
- FullscreenMsgView: compute wrap width and visible lines dynamically from
  display font metrics instead of hardcoded constants
- SettingsScreen and MessagesScreen: replace hardcoded ITEM_H/VISIBLE with
  members computed at render() time from getLineHeight()

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 13:27:34 +02:00
JakubandClaude Sonnet 4.6 c86e6c803e fix: reverse fullscreen message nav order and remove channel # prefix
- Swap left/right navigation in fullscreen view: left=newer, right=older
- Update arrow indicators to match new direction
- Remove # prefix from channel name in message and compose view titles

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 20:21:13 +02:00
JakubandClaude Sonnet 4.6 26d3d7ab00 refactor: extract fullscreen message view into reusable FullscreenMsgView module
Shared struct handles rendering and input for both DM and channel fullscreen
views, replacing ~80 lines of duplicated inline code. Fixes navigation arrow
indicators being swapped in channel fullscreen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 23:54:26 +02:00