From ae2b247834000fe368bda008c203bac846331081 Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 26 Aug 2025 13:15:22 +0200 Subject: [PATCH] Peer list: real-time icon updates by publishing snapshots on connectivity checks; add unread message indicator (envelope) next to peers with unread DMs --- bitchat/Services/BLEService.swift | 2 ++ bitchat/Views/MeshPeerList.swift | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/bitchat/Services/BLEService.swift b/bitchat/Services/BLEService.swift index 6bec699f..6389d839 100644 --- a/bitchat/Services/BLEService.swift +++ b/bitchat/Services/BLEService.swift @@ -2041,6 +2041,8 @@ final class BLEService: NSObject { for peerID in disconnectedPeers { self.delegate?.didDisconnectFromPeer(peerID) } + // Publish snapshots so UnifiedPeerService updates connection/reachability icons + self.publishFullPeerData() self.delegate?.didUpdatePeerList(currentPeerIDs) } } diff --git a/bitchat/Views/MeshPeerList.swift b/bitchat/Views/MeshPeerList.swift index 88aa1686..df25f8af 100644 --- a/bitchat/Views/MeshPeerList.swift +++ b/bitchat/Views/MeshPeerList.swift @@ -115,6 +115,14 @@ struct MeshPeerList: View { Spacer() + // Unread message indicator for this peer + if !isMe, item.hasUnread { + Image(systemName: "envelope.fill") + .font(.system(size: 10)) + .foregroundColor(.yellow) + .help("New messages") + } + if !isMe { Button(action: { onToggleFavorite(peer.id) }) { Image(systemName: (peer.favoriteStatus?.isFavorite ?? false) ? "star.fill" : "star")