in rx-central-ble/src/main/java/com/uber/rxcentralble/core/CoreConnectionManager.java [141:153]
private ObservableTransformer<Boolean, ScanData> scan(Scanner scanner, ScanMatcher scanMatcher) {
return bluetoothEnabled ->
bluetoothEnabled
.doOnNext(enabled -> stateRelay.accept(State.SCANNING))
.switchMap(enabled -> scanner.scan())
.compose(scanMatcher.match())
.firstOrError()
.timeout(
scanTimeoutMs,
TimeUnit.MILLISECONDS,
Single.error(new ConnectionError(SCAN_TIMEOUT)))
.toObservable();
}