From fc690fc0ac47af137c4b2ec1e058232fd29957f2 Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 26 Aug 2025 02:39:16 +0200 Subject: [PATCH] UI: use 'point.3.connected.trianglepath.dotted' for mesh-reachable; change people count to include connected+reachable (exclude Nostr-only) --- bitchat/Views/ContentView.swift | 9 ++++----- bitchat/Views/MeshPeerList.swift | 5 +++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bitchat/Views/ContentView.swift b/bitchat/Views/ContentView.swift index 1ee02f94..4431626e 100644 --- a/bitchat/Views/ContentView.swift +++ b/bitchat/Views/ContentView.swift @@ -1036,9 +1036,8 @@ struct ContentView: View { case .mesh: let counts = viewModel.allPeers.reduce(into: (others: 0, mesh: 0)) { counts, peer in guard peer.id != viewModel.meshService.myPeerID else { return } - let isMeshConnected = peer.isConnected - if isMeshConnected { counts.mesh += 1; counts.others += 1 } - else if peer.isMutualFavorite { counts.others += 1 } + if peer.isConnected { counts.mesh += 1; counts.others += 1 } + else if peer.isReachable { counts.others += 1 } } let meshBlue = Color(hue: 0.60, saturation: 0.85, brightness: 0.82) let color: Color = counts.mesh > 0 ? meshBlue : Color.secondary @@ -1248,8 +1247,8 @@ struct ContentView: View { .foregroundColor(textColor) .accessibilityLabel("Connected via mesh") case .meshReachable: - // Antenna icon for reachable via mesh (not directly connected) - Image(systemName: "antenna.radiowaves.left.and.right") + // point.3 icon for reachable via mesh (not directly connected) + Image(systemName: "point.3.connected.trianglepath.dotted") .font(.system(size: 14)) .foregroundColor(textColor) .accessibilityLabel("Reachable via mesh") diff --git a/bitchat/Views/MeshPeerList.swift b/bitchat/Views/MeshPeerList.swift index 4b0c8dc1..0e08c7c0 100644 --- a/bitchat/Views/MeshPeerList.swift +++ b/bitchat/Views/MeshPeerList.swift @@ -52,6 +52,11 @@ struct MeshPeerList: View { Image(systemName: "antenna.radiowaves.left.and.right") .font(.system(size: 10)) .foregroundColor(baseColor) + } else if peer.isReachable { + // Mesh-reachable (relayed): point.3 icon + Image(systemName: "point.3.connected.trianglepath.dotted") + .font(.system(size: 10)) + .foregroundColor(baseColor) } else if peer.isMutualFavorite { // Mutual favorite reachable via Nostr: globe icon (purple) Image(systemName: "globe")