in rx-central-ble/src/main/java/com/uber/rxcentralble/core/operations/ReadRssi.java [34:46]
public ReadRssi(int timeoutMs) {
resultSingle =
peripheralRelay
.filter(Optional::isPresent)
.map(Optional::get)
.firstOrError()
.doOnSuccess(g -> peripheralRelay.accept(Optional.empty()))
.flatMap(Peripheral::readRssi)
.toObservable()
.share()
.firstOrError()
.timeout(timeoutMs, TimeUnit.MILLISECONDS);
}