addPrivateMessage method
Implementation
void addPrivateMessage(RemoteActivityData message) {
if (message.identity != null) {
final identity = message.identity?.identity ?? "";
final name = message.identity?.name ?? "Unknown";
checkAndCreatePrivateChat(identity, name);
_privateChat[identity]?.chats.add(message);
final chatModel = _privateChat[identity];
if (chatModel == null) return;
// ✅ FIXED LOGIC
// Increase unread if:
// - Chat page is closed (normal case)
// - OR Chat page is open but this particular chat is not selected
if ((chatModel.identity != _privateChatIdentity) || !isPrivateChatOpen) {
chatModel.unreadCount++;
increaseUnreadPrivateChatCount();
}
} else {
final identity = message.userIdentity ?? "Unknown";
final name = message.userName ?? "Unknown";
_privateChat.putIfAbsent(
identity,
() => PrivateChatModel(identity: identity, name: name, chats: []),
);
_privateChat[identity]?.chats.add(message);
}
notifyListeners();
sendPrivateChatEvent(UpdateView());
}