fix(ui-new): one '#' on a hashtag channel's favourite tile and slot list

Hashtag channel names already start with '#'; the tiles added another
("##test"). chanctl::bareName() is now the one place that strips it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-10-08 23:41:40 +02:00
co-authored by Claude Opus 5.5
parent 9ef7d5d981
commit 92e379e05c
3 changed files with 7 additions and 3 deletions
@@ -721,7 +721,7 @@ class MessagesScreen : public UIScreen {
ChannelDetails ch;
if (the_mesh.getChannel(pfx[0], ch) && ch.name[0]) {
nm[0] = '#';
DisplayDriver::translateUTF8Static(nm + 1, ch.name, sizeof(nm) - 1);
DisplayDriver::translateUTF8Static(nm + 1, chanctl::bareName(ch.name), sizeof(nm) - 1);
}
} else {
for (int idx = 0; ; idx++) {
+2 -2
View File
@@ -463,7 +463,7 @@ class HomeScreen : public UIScreen {
ChannelDetails cd;
if (!the_mesh.getChannel(c[k].ch, cd) || !cd.name[0]) continue;
r.ch = c[k].ch;
snprintf(r.name, sizeof(r.name), "#%s", cd.name[0] == '#' ? cd.name + 1 : cd.name);
snprintf(r.name, sizeof(r.name), "#%s", chanctl::bareName(cd.name));
r.n = _task->getChannelUnread(r.ch);
r.overflow = r.n > 0 && _task->getChannelUnreadOverflow(r.ch);
} else {
@@ -1645,7 +1645,7 @@ public:
// '#' marks a channel apart from a contact tile — the two share the
// grid and Enter does something different on each.
name[0] = '#';
display.translateUTF8ToBlocks(name + 1, ch.name, sizeof(name) - 1);
display.translateUTF8ToBlocks(name + 1, chanctl::bareName(ch.name), sizeof(name) - 1);
unread = _task->getChannelUnread(ch_idx);
overflow = unread > 0 && _task->getChannelUnreadOverflow(ch_idx);
resolved = true;