in rx-central-ble/src/main/java/com/uber/rxcentralble/core/scanners/ThrottledLollipopScanner.java [243:287]
private ScanCallback getScanCallback() {
return new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult scanResult) {
if (RxCentralLogger.isDebug()) {
RxCentralLogger.debug("onScanResult - BD_ADDR: " + scanResult.getDevice().getAddress()
+ " | RSSI: " + scanResult.getRssi());
}
handleScanData(scanResult);
}
@Override
public void onScanFailed(int errorCode) {
if (RxCentralLogger.isError()) {
RxCentralLogger.error("onScanFailed - Error Code: " + errorCode);
}
getErrorSubject().onError(new ConnectionError(SCAN_FAILED));
}
@Override
public void onBatchScanResults(List<ScanResult> results) {
for (ScanResult scanResult : results) {
if (RxCentralLogger.isDebug()) {
RxCentralLogger.debug("onBatchScanResults - BD_ADDR: "
+ scanResult.getDevice().getAddress() + " | RSSI: " + scanResult.getRssi());
}
handleScanData(scanResult);
}
}
private void handleScanData(ScanResult scanResult) {
ParsedAdvertisement parsedAdvertisement = null;
if (scanResult.getScanRecord() != null) {
parsedAdvertisement = parsedAdDataFactory.produce(scanResult.getScanRecord().getBytes());
}
ScanData scanData = new LollipopScanData(scanResult, parsedAdvertisement);
scanDataRelay.accept(scanData);
}
};
}