Fix critical room functionality issues

- Fix room field not being copied when creating messageWithPeerID in BluetoothMeshService
- This was causing all room messages to appear in main chat
- Fix room member tracking by ensuring senderPeerID is included
- Change room color from orange to blue to differentiate from private messages
- Clean up room members when peers disconnect to fix member count
- Add debug logging to track room field through message flow
This commit is contained in:
jack
2025-07-05 19:35:37 +02:00
parent 4051cda7e4
commit bf4a572299
3 changed files with 21 additions and 4 deletions
+8 -2
View File
@@ -527,6 +527,8 @@ class BluetoothMeshService: NSObject {
room: room
)
print("[DEBUG-SEND] Creating message with room: \(room ?? "nil")")
if let messageData = message.toBinaryPayload() {
// Sign the message payload (no encryption for broadcasts)
let signature: Data?
@@ -1198,6 +1200,7 @@ class BluetoothMeshService: NSObject {
// Parse broadcast message (not encrypted)
if let message = BitchatMessage.fromBinaryPayload(packet.payload) {
print("[DEBUG-RECV] Received message with room: \(message.room ?? "nil"), content: \(message.content)")
// Store nickname mapping
peerNicknamesLock.lock()
@@ -1213,7 +1216,8 @@ class BluetoothMeshService: NSObject {
isPrivate: false,
recipientNickname: nil,
senderPeerID: senderID,
mentions: message.mentions
mentions: message.mentions,
room: message.room
)
DispatchQueue.main.async {
@@ -1309,7 +1313,9 @@ class BluetoothMeshService: NSObject {
originalSender: message.originalSender,
isPrivate: message.isPrivate,
recipientNickname: message.recipientNickname,
senderPeerID: senderID
senderPeerID: senderID,
mentions: message.mentions,
room: message.room
)
DispatchQueue.main.async {