@@ -14,6 +14,7 @@ import CombineExt
1414public protocol BLECentralManager : AnyObject {
1515 var centralManager : CBCentralManagerWrapper { get }
1616 var isScanning : Bool { get }
17+ var state : AnyPublisher < ManagerState , Never > { get }
1718
1819 func retrievePeripherals( withIdentifiers identifiers: [ UUID ] ) -> AnyPublisher < BLEPeripheral , BLEError >
1920 func retrieveConnectedPeripherals( withServices serviceUUIDs: [ CBUUID ] ) -> AnyPublisher < BLEPeripheral , BLEError >
@@ -31,7 +32,7 @@ final class StandardBLECentralManager: BLECentralManager {
3132 let centralManager : CBCentralManagerWrapper
3233 let peripheralProvider : BLEPeripheralProvider
3334
34- var state = CurrentValueSubject < ManagerState , Never > ( ManagerState . unknown)
35+ var stateSubject = CurrentValueSubject < ManagerState , Never > ( ManagerState . unknown)
3536 let delegate : BLECentralManagerDelegate
3637
3738 private var cancellables = [ AnyCancellable] ( )
@@ -40,6 +41,10 @@ final class StandardBLECentralManager: BLECentralManager {
4041 centralManager. isScanning
4142 }
4243
44+ var state : AnyPublisher < ManagerState , Never > {
45+ stateSubject. eraseToAnyPublisher ( )
46+ }
47+
4348 init (
4449 centralManager: CBCentralManagerWrapper ,
4550 managerDelegate: BLECentralManagerDelegate = BLECentralManagerDelegate ( ) ,
@@ -64,7 +69,7 @@ final class StandardBLECentralManager: BLECentralManager {
6469 func observeUpdateState( ) {
6570 delegate
6671 . didUpdateState
67- . sink { self . state . send ( $0) }
72+ . sink { self . stateSubject . send ( $0) }
6873 . store ( in: & cancellables)
6974 }
7075
0 commit comments