From af6136c01c8c4df631341097cf4e3bda47174468 Mon Sep 17 00:00:00 2001 From: Islam <2553451+qalandarov@users.noreply.github.com> Date: Mon, 20 Oct 2025 00:11:44 +0100 Subject: [PATCH] Minor cleanup (#842) --- bitchat/ViewModels/ChatViewModel.swift | 62 +++++++------------------- 1 file changed, 16 insertions(+), 46 deletions(-) diff --git a/bitchat/ViewModels/ChatViewModel.swift b/bitchat/ViewModels/ChatViewModel.swift index 91764a1f..f661943e 100644 --- a/bitchat/ViewModels/ChatViewModel.swift +++ b/bitchat/ViewModels/ChatViewModel.swift @@ -4256,13 +4256,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate { let noiseService = meshService.getNoiseService() if noiseService.hasEstablishedSession(with: peerID) { - // Check if fingerprint is verified using our persisted data - if let fingerprint = getFingerprint(for: peerID), - verifiedFingerprints.contains(fingerprint) { - peerEncryptionStatus[peerID] = .noiseVerified - } else { - peerEncryptionStatus[peerID] = .noiseSecured - } + peerEncryptionStatus[peerID] = encryptionStatus(for: peerID) } else if noiseService.hasSession(with: peerID) { // Session exists but not established - handshaking peerEncryptionStatus[peerID] = .noiseHandshaking @@ -4297,27 +4291,12 @@ final class ChatViewModel: ObservableObject, BitchatDelegate { // Determine status based on session state switch sessionState { case .established: - // We have encryption, now check if it's verified - if let fingerprint = getFingerprint(for: peerID) { - if verifiedFingerprints.contains(fingerprint) { - status = .noiseVerified - } else { - status = .noiseSecured - } - } else { - // We have a session but no fingerprint yet - still secured - status = .noiseSecured - } + status = encryptionStatus(for: peerID) case .handshaking, .handshakeQueued: // If we've ever established a session, show secured instead of handshaking if hasEverEstablishedSession { // Check if it was verified before - if let fingerprint = getFingerprint(for: peerID), - verifiedFingerprints.contains(fingerprint) { - status = .noiseVerified - } else { - status = .noiseSecured - } + status = encryptionStatus(for: peerID) } else { // First time establishing - show handshaking status = .noiseHandshaking @@ -4326,12 +4305,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate { // If we've ever established a session, show secured instead of no handshake if hasEverEstablishedSession { // Check if it was verified before - if let fingerprint = getFingerprint(for: peerID), - verifiedFingerprints.contains(fingerprint) { - status = .noiseVerified - } else { - status = .noiseSecured - } + status = encryptionStatus(for: peerID) } else { // Never established - show no handshake status = .noHandshake @@ -4340,12 +4314,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate { // If we've ever established a session, show secured instead of failed if hasEverEstablishedSession { // Check if it was verified before - if let fingerprint = getFingerprint(for: peerID), - verifiedFingerprints.contains(fingerprint) { - status = .noiseVerified - } else { - status = .noiseSecured - } + status = encryptionStatus(for: peerID) } else { // Never established - show failed status = .none @@ -4736,16 +4705,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate { let noiseService = meshService.getNoiseService() if noiseService.hasEstablishedSession(with: peerID) { - if let fingerprint = getFingerprint(for: peerID) { - if verifiedFingerprints.contains(fingerprint) { - peerEncryptionStatus[peerID] = .noiseVerified - } else { - peerEncryptionStatus[peerID] = .noiseSecured - } - } else { - // Session established but no fingerprint yet - peerEncryptionStatus[peerID] = .noiseSecured - } + peerEncryptionStatus[peerID] = encryptionStatus(for: peerID) } else if noiseService.hasSession(with: peerID) { peerEncryptionStatus[peerID] = .noiseHandshaking } else { @@ -4775,6 +4735,16 @@ final class ChatViewModel: ObservableObject, BitchatDelegate { return unifiedPeerService.getFingerprint(for: peerID) } + /// Check if fingerprint is verified using our persisted data + @MainActor + private func encryptionStatus(for peerID: PeerID) -> EncryptionStatus { + if let fp = getFingerprint(for: peerID), verifiedFingerprints.contains(fp) { + return .noiseVerified + } else { + return .noiseSecured + } + } + /// Helper to resolve nickname for a peer ID through various sources @MainActor private func resolveNickname(for peerID: PeerID) -> String {