Remove dead code and simplify codebase

- Remove unused BinaryEncodable protocol and BinaryMessageType enum
- Delete MockNoiseSession.swift (never used in tests)
- Remove all relay detection code (hardcoded to false)
  - Removed isRelayConnected property from BitchatPeer
  - Removed relayConnected case from ConnectionState enum
  - Cleaned up relay-related UI indicators in ContentView
  - Removed relay status checks from ChatViewModel
- Simplified peer connection logic by removing relay layer

Total: 169 lines removed across 5 files
This commit is contained in:
jack
2025-08-12 11:03:31 +02:00
parent 63f05b5d7e
commit f4b8168ef9
5 changed files with 11 additions and 169 deletions
+9 -39
View File
@@ -18,7 +18,6 @@ struct BitchatPeer: Identifiable, Equatable {
// Connection state
enum ConnectionState {
case bluetoothConnected
case relayConnected // Connected via mesh relay (another peer)
case nostrAvailable // Mutual favorite, reachable via Nostr
case offline // Not connected via any transport
}
@@ -26,8 +25,6 @@ struct BitchatPeer: Identifiable, Equatable {
var connectionState: ConnectionState {
if isConnected {
return .bluetoothConnected
} else if isRelayConnected {
return .relayConnected
} else if favoriteStatus?.isMutual == true {
// Mutual favorites can communicate via Nostr when offline
return .nostrAvailable
@@ -36,8 +33,6 @@ struct BitchatPeer: Identifiable, Equatable {
}
}
var isRelayConnected: Bool = false // Set by PeerManager based on session state
var isFavorite: Bool {
favoriteStatus?.isFavorite ?? false
}
@@ -59,8 +54,6 @@ struct BitchatPeer: Identifiable, Equatable {
switch connectionState {
case .bluetoothConnected:
return "📻" // Radio icon for mesh connection
case .relayConnected:
return "🔗" // Chain link for relay connection
case .nostrAvailable:
return "🌐" // Purple globe for Nostr
case .offline:
@@ -78,15 +71,13 @@ struct BitchatPeer: Identifiable, Equatable {
noisePublicKey: Data,
nickname: String,
lastSeen: Date = Date(),
isConnected: Bool = false,
isRelayConnected: Bool = false
isConnected: Bool = false
) {
self.id = id
self.noisePublicKey = noisePublicKey
self.nickname = nickname
self.lastSeen = lastSeen
self.isConnected = isConnected
self.isRelayConnected = isRelayConnected
// Load favorite status - will be set later by the manager
self.favoriteStatus = nil
@@ -156,28 +147,15 @@ class PeerManager: ObservableObject {
continue
}
// Check if this peer is actually connected (not just known via relay)
// Check if this peer is actually connected
let isConnected = meshService.isPeerConnected(peerID)
let isKnown = meshService.isPeerKnown(peerID)
// In a mesh network, a peer can only be relay-connected if:
// 1. We know about them (have received announce)
// 2. We're not directly connected
// 3. There are other peers that could relay (mesh peer count > 2)
// For now, disable relay detection until we have proper relay tracking
let isRelayConnected = false
// Debug logging for relay connection detection
if isKnown && !isConnected {
SecureLogger.log("Peer \(nickname) (\(peerID)): isConnected=\(isConnected), isKnown=\(isKnown), isRelayConnected=\(isRelayConnected)",
category: SecureLogger.session, level: .debug)
}
// Skip disconnected peers unless they're favorites (handled later)
if !isConnected && !isRelayConnected {
if !isConnected {
continue
}
if isConnected || isRelayConnected {
if isConnected {
connectedNicknames.insert(nickname)
}
@@ -188,8 +166,7 @@ class PeerManager: ObservableObject {
id: peerID,
noisePublicKey: noiseKey,
nickname: nickname,
isConnected: isConnected,
isRelayConnected: isRelayConnected
isConnected: isConnected
)
// Set favorite status - check both by current noise key and by nickname
if let favoriteStatus = favoritesService.getFavoriteStatus(for: noiseKey) {
@@ -211,14 +188,14 @@ class PeerManager: ObservableObject {
allPeers.append(peer)
}
// Add offline favorites (only those not currently connected/relay-connected AND that we actively favorite)
// Add offline favorites (only those not currently connected AND that we actively favorite)
for (favoriteKey, favorite) in favoritesService.favorites {
let favoriteID = favorite.peerNoisePublicKey.hexEncodedString()
// Skip if this peer is already connected or relay-connected (by nickname)
// Skip if this peer is already connected (by nickname)
if connectedNicknames.contains(favorite.peerNickname) {
SecureLogger.log(" - Skipping '\(favorite.peerNickname)' (key: \(favoriteKey.hexEncodedString())) - already connected/relay-connected",
SecureLogger.log(" - Skipping '\(favorite.peerNickname)' (key: \(favoriteKey.hexEncodedString())) - already connected",
category: SecureLogger.session, level: .debug)
continue
}
@@ -259,16 +236,12 @@ class PeerManager: ObservableObject {
!(peer.displayName == "Unknown" && peer.favoriteStatus == nil)
}
// Sort: Connected first (direct then relay), then favorites, then alphabetical
// Sort: Connected first, then favorites, then alphabetical
allPeers.sort { lhs, rhs in
// Direct connections first
if lhs.isConnected != rhs.isConnected {
return lhs.isConnected
}
// Then relay connections
if lhs.isRelayConnected != rhs.isRelayConnected {
return lhs.isRelayConnected
}
// Then favorites
if lhs.isFavorite != rhs.isFavorite {
return lhs.isFavorite
@@ -321,13 +294,10 @@ class PeerManager: ObservableObject {
// Log each peer's status
for peer in allPeers {
// Use the actual statusIcon from the peer which accounts for relay connections
let statusIcon: String
switch peer.connectionState {
case .bluetoothConnected:
statusIcon = "🟢"
case .relayConnected:
statusIcon = "🔗"
case .nostrAvailable:
statusIcon = "🌐"
case .offline: