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
+11
View File
@@ -765,6 +765,17 @@ extension ChatViewModel: BitchatDelegate {
connectedPeers = peers
isConnected = !peers.isEmpty
// Clean up room members who disconnected
for (room, memberIDs) in roomMembers {
// Remove disconnected peers from room members
let activeMembers = memberIDs.filter { memberID in
memberID == meshService.myPeerID || peers.contains(memberID)
}
if activeMembers != memberIDs {
roomMembers[room] = activeMembers
}
}
// Force UI update
objectWillChange.send()