diff --git a/Firmware/cardboy-companion/cardboy-companion/cardboy-companion/TimeSyncManager.swift b/Firmware/cardboy-companion/cardboy-companion/cardboy-companion/TimeSyncManager.swift index 21adfa2..1e7140c 100644 --- a/Firmware/cardboy-companion/cardboy-companion/cardboy-companion/TimeSyncManager.swift +++ b/Firmware/cardboy-companion/cardboy-companion/cardboy-companion/TimeSyncManager.swift @@ -154,17 +154,19 @@ final class TimeSyncManager: NSObject, ObservableObject { func forceRescan() { statusMessage = "Restarting scan…" shouldKeepScanning = true + retryWorkItem?.cancel() + + let existingPeripheral = targetPeripheral stopScanning() + if let existingPeripheral { + central.cancelPeripheralConnection(existingPeripheral) + } + targetPeripheral = nil timeCharacteristic = nil fileCommandCharacteristic = nil fileResponseCharacteristic = nil - currentDirectory = "/" - directoryEntries = [] - isFileBusy = false - pendingListOperationID = nil - simpleOperationID = nil - clearOperation() + resetFileStateOnDisconnect() startScanning() }