mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-06-23 02:44:30 +10:00
Improve sender name resolution for room server messages by handling missing room-contact keys
This commit is contained in:
committed by
just-stuff-tm
parent
4c7ee3b3b0
commit
f5154b0033
@@ -3506,14 +3506,17 @@ class MeshCoreConnector extends ChangeNotifier {
|
||||
// For 1:1 chats, sender is implicit (null)
|
||||
String? senderName;
|
||||
if (isRoomServer && !msg.isOutgoing) {
|
||||
// Resolve sender from the message's fourByteRoomContactKey
|
||||
final senderContact = _contacts.cast<Contact?>().firstWhere(
|
||||
(c) =>
|
||||
c != null &&
|
||||
_matchesPrefix(c.publicKey, msg.fourByteRoomContactKey),
|
||||
orElse: () => null,
|
||||
);
|
||||
senderName = senderContact?.name;
|
||||
// Treat a missing room-contact key as unknown instead of matching every
|
||||
// contact via an empty prefix.
|
||||
if (msg.fourByteRoomContactKey.length == 4) {
|
||||
final senderContact = _contacts.cast<Contact?>().firstWhere(
|
||||
(c) =>
|
||||
c != null &&
|
||||
_matchesPrefix(c.publicKey, msg.fourByteRoomContactKey),
|
||||
orElse: () => null,
|
||||
);
|
||||
senderName = senderContact?.name;
|
||||
}
|
||||
} else if (isRoomServer && msg.isOutgoing) {
|
||||
senderName = selfName;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user