in rx-central-ble/src/main/java/com/uber/rxcentralble/core/CorePeripheral.java [90:106]
public Observable<ConnectableState> connect() {
if (sharedConnectionState != null) {
return sharedConnectionState;
}
connectionStateSubject = BehaviorSubject.create();
sharedConnectionState =
connectionStateSubject
.doOnNext(state -> connectedRelay.accept(state == CONNECTED))
.doOnSubscribe(disposable -> processConnect())
.doFinally(() -> disconnect())
.replay(1)
.refCount(); // Don't do this on normal disconnect status 0 / 8
return sharedConnectionState;
}