WioTrackerL1: redesign companion UI (channels, keyboard, msg preview)

- QuickMsg → Message screen: channel history, on-screen keyboard, custom message first
- Channel history: RAM ring buffer (32 entries, 80 chars), fullscreen view with word-wrap scroll
- After channel send: stay in history, own message shown as "Me: ..."
- MsgPreview: one message per screen with up/down nav, ENTER opens fullscreen scroll
- Monochromatic display: all color usage corrected to DARK/LIGHT only
- Top bar: battery icon, BT muted indicator, splash "Plus for Wio"
- KB_MAX_LEN: 64 → 100 chars; channel text buffer: 52 → 80 chars

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-05-13 21:09:47 +02:00
co-authored by Claude Sonnet 4.6
parent d5a2e1170a
commit 6779b3489b
4 changed files with 747 additions and 124 deletions
@@ -42,5 +42,6 @@ public:
virtual void msgRead(int msgcount) = 0; virtual void msgRead(int msgcount) = 0;
virtual void newMsg(uint8_t path_len, const char* from_name, const char* text, int msgcount) = 0; virtual void newMsg(uint8_t path_len, const char* from_name, const char* text, int msgcount) = 0;
virtual void notify(UIEventType t = UIEventType::none) = 0; virtual void notify(UIEventType t = UIEventType::none) = 0;
virtual void addChannelMsg(uint8_t channel_idx, const char* text) {}
virtual void loop() = 0; virtual void loop() = 0;
}; };
+1 -1
View File
@@ -567,7 +567,7 @@ void MyMesh::onChannelMessageRecv(const mesh::GroupChannel &channel, mesh::Packe
#endif #endif
} }
#ifdef DISPLAY_CLASS #ifdef DISPLAY_CLASS
// Get the channel name from the channel index if (_ui) _ui->addChannelMsg(channel_idx, text);
const char *channel_name = "Unknown"; const char *channel_name = "Unknown";
ChannelDetails channel_details; ChannelDetails channel_details;
if (getChannel(channel_idx, channel_details)) { if (getChannel(channel_idx, channel_details)) {
File diff suppressed because it is too large Load Diff
+1
View File
@@ -82,6 +82,7 @@ public:
void gotoSettingsScreen(); void gotoSettingsScreen();
void gotoQuickMsgScreen(); void gotoQuickMsgScreen();
void showAlert(const char* text, int duration_millis); void showAlert(const char* text, int duration_millis);
void addChannelMsg(uint8_t channel_idx, const char* text) override;
int getMsgCount() const { return _msgcount; } int getMsgCount() const { return _msgcount; }
bool hasDisplay() const { return _display != NULL; } bool hasDisplay() const { return _display != NULL; }
bool isButtonPressed() const; bool isButtonPressed() const;