@@ -9,6 +9,7 @@ import CoreBluetooth
99import Mobileserver
1010
1111struct State {
12+ var bluetoothAvailable : Bool
1213 var discoveredPeripherals : [ UUID : PeripheralMetadata ]
1314 var connecting : Bool
1415}
@@ -30,7 +31,7 @@ var pairedDeviceIdentifiers: Set<String> {
3031}
3132
3233class BluetoothManager : NSObject , ObservableObject , CBCentralManagerDelegate , CBPeripheralDelegate {
33- private var state : State = State ( discoveredPeripherals: [ : ] , connecting: false )
34+ private var state : State = State ( bluetoothAvailable : false , discoveredPeripherals: [ : ] , connecting: false )
3435
3536 var centralManager : CBCentralManager !
3637 var connectedPeripheral : CBPeripheral ?
@@ -49,6 +50,8 @@ class BluetoothManager: NSObject, ObservableObject, CBCentralManagerDelegate, CB
4950 override init ( ) {
5051 super. init ( )
5152 centralManager = CBCentralManager ( delegate: self , queue: nil )
53+ state. bluetoothAvailable = centralManager. state == . poweredOn
54+ updateBackendState ( )
5255 }
5356
5457 func isConnected( ) -> Bool {
@@ -77,6 +80,9 @@ class BluetoothManager: NSObject, ObservableObject, CBCentralManagerDelegate, CB
7780 }
7881
7982 func centralManagerDidUpdateState( _ central: CBCentralManager ) {
83+ state. bluetoothAvailable = centralManager. state == . poweredOn
84+ updateBackendState ( )
85+
8086 switch central. state {
8187 case . poweredOn:
8288 print ( " BLE: on " )
@@ -285,6 +291,7 @@ class BluetoothManager: NSObject, ObservableObject, CBCentralManagerDelegate, CB
285291 }
286292
287293 struct StateJSON : Codable {
294+ let bluetoothAvailable : Bool
288295 let peripherals : [ PeripheralJSON ]
289296 let connecting : Bool
290297 }
@@ -298,7 +305,7 @@ class BluetoothManager: NSObject, ObservableObject, CBCentralManagerDelegate, CB
298305 )
299306 }
300307
301- let state = StateJSON ( peripherals: peripherals, connecting: state. connecting)
308+ let state = StateJSON ( bluetoothAvailable : state . bluetoothAvailable , peripherals: peripherals, connecting: state. connecting)
302309
303310 do {
304311 let encoder = JSONEncoder ( )
0 commit comments