private ScanCallback getScanCallback()

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);
      }
    };
  }