diff --git a/lib/connector/meshcore_connector.dart b/lib/connector/meshcore_connector.dart index 166c98fa..a929f19c 100644 --- a/lib/connector/meshcore_connector.dart +++ b/lib/connector/meshcore_connector.dart @@ -1996,12 +1996,21 @@ class MeshCoreConnector extends ChangeNotifier { final settings = _appSettingsService!.settings; if (settings.notificationsEnabled && settings.notifyOnNewMessage) { // Find the contact name - _notificationService.showMessageNotification( - contactName: contact?.name ?? 'Unknown', - message: message.text, - contactId: message.senderKeyHex, - badgeCount: getTotalUnreadCount(), - ); + if(contact?.type == advTypeChat) { + _notificationService.showMessageNotification( + contactName: contact?.name ?? 'Unknown', + message: message.text, + contactId: message.senderKeyHex, + badgeCount: getTotalUnreadCount(), + ); + }else if(contact?.type == advTypeRoom) { + _notificationService.showMessageNotification( + contactName: contact?.name ?? 'Unknown Room', + message: message.text.substring(4), + contactId: message.senderKeyHex, + badgeCount: getTotalUnreadCount(), + ); + } } } _handleQueuedMessageReceived(); @@ -2027,7 +2036,7 @@ class MeshCoreConnector extends ChangeNotifier { final baseTextOffset = timestampOffset + 4; if (frame.length <= baseTextOffset) return null; - + final fourBytePubMSG = frame.sublist(baseTextOffset, baseTextOffset + 4); final senderPrefix = frame.sublist(prefixOffset, prefixOffset + prefixLen); final flags = frame[txtTypeOffset]; final shiftedType = flags >> 2; @@ -2065,6 +2074,7 @@ class MeshCoreConnector extends ChangeNotifier { status: MessageStatus.delivered, pathLength: pathLenByte == 0xFF ? 0 : pathLenByte, pathBytes: Uint8List(0), + fourByteRoomContactKey: fourBytePubMSG ); }