feat(chat): add "Mark as Unread" action and unread messages divider

- Add "Mark as Unread" option to message context menu in both
  contact and channel chats
- Show "New messages" divider line between read and unread messages
- Add setContactUnreadCount/setChannelUnreadCount methods to connector

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dmitry Polshakov
2026-04-25 09:05:28 +03:00
parent 3ea2e4763e
commit 00e4f52d75
6 changed files with 165 additions and 8 deletions
+21
View File
@@ -658,6 +658,27 @@ class MeshCoreConnector extends ChangeNotifier {
}
}
void setContactUnreadCount(String contactKeyHex, int count) {
_contactUnreadCount[contactKeyHex] = count;
_unreadStore.saveContactUnreadCount(
Map<String, int>.from(_contactUnreadCount),
);
notifyListeners();
}
void setChannelUnreadCount(int channelIndex, int count) {
final channel = _findChannelByIndex(channelIndex);
if (channel != null) {
channel.unreadCount = count;
unawaited(
_channelStore.saveChannels(
_channels.isNotEmpty ? _channels : _cachedChannels,
),
);
notifyListeners();
}
}
void markChannelRead(int channelIndex) {
final channel = _findChannelByIndex(channelIndex);
if (channel != null && channel.unreadCount > 0) {