From 8fc0e02f1d37dbb8b1dc96b952e53c2c62be6062 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 5 Jul 2025 21:06:53 +0200 Subject: [PATCH] Fix stored property in extension error by moving advertisingTimer to main class --- bitchat/Services/BluetoothMeshService.swift | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/bitchat/Services/BluetoothMeshService.swift b/bitchat/Services/BluetoothMeshService.swift index b38bef23..654a4ed2 100644 --- a/bitchat/Services/BluetoothMeshService.swift +++ b/bitchat/Services/BluetoothMeshService.swift @@ -97,6 +97,7 @@ class BluetoothMeshService: NSObject { private var coverTrafficTimer: Timer? private let coverTrafficPrefix = "☂DUMMY☂" // Prefix to identify dummy messages after decryption private var lastCoverTrafficTime = Date() + private var advertisingTimer: Timer? // Timer for interval-based advertising // Timing randomization for privacy private let minMessageDelay: TimeInterval = 0.05 // 50ms minimum @@ -1396,6 +1397,11 @@ class BluetoothMeshService: NSObject { isEncrypted: message.isEncrypted ) + // Track last message time from this peer + if let peerID = String(data: packet.senderID.trimmingNullBytes(), encoding: .utf8) { + self.lastMessageFromPeer[peerID] = Date() + } + DispatchQueue.main.async { self.delegate?.didReceiveMessage(messageWithPeerID) } @@ -1494,6 +1500,11 @@ class BluetoothMeshService: NSObject { room: message.room ) + // Track last message time from this peer + if let peerID = String(data: packet.senderID.trimmingNullBytes(), encoding: .utf8) { + self.lastMessageFromPeer[peerID] = Date() + } + DispatchQueue.main.async { self.delegate?.didReceiveMessage(messageWithPeerID) } @@ -2567,8 +2578,6 @@ extension BluetoothMeshService: CBPeripheralManagerDelegate { } } - private var advertisingTimer: Timer? - private func scheduleAdvertisingCycle(interval: TimeInterval) { advertisingTimer?.invalidate()