docs: public boolean matches(@Nullable final ScanResult scanResult) {
  		if (scanResult == null) {
  			return false;
  		}
  		final BluetoothDevice device = scanResult.getDevice();
  		// Device match.
  		if (deviceAddress != null && !deviceAddress.equals(device.getAddress())) {
  			return false;
  		}
  
  		final ScanRecord scanRecord = scanResult.getScanRecord();
  
  		// Scan record is null but there exist filters on it.
  		if (scanRecord == null
  				&& (deviceName != null || serviceUuid != null || manufacturerData != null
  				|| serviceData != null)) {
  			return false;
  		}
  
  		// Local name match.
  		if (deviceName != null && !deviceName.equals(scanRecord.getDeviceName())) {
  			return false;
  		}
  
  		// UUID match.
  		if (serviceUuid != null && !matchesServiceUuids(serviceUuid, serviceUuidMask,
  				scanRecord.getServiceUuids())) {
  			return false;
  		}
  
  		// Service data match
  		if (serviceDataUuid != null && scanRecord != null) {
  			if (!matchesPartialData(serviceData, serviceDataMask,
  					scanRecord.getServiceData(serviceDataUuid))) {
  				return false;
  			}
  		}
  
  		// Manufacturer data match.
  		if (manufacturerId >= 0 && scanRecord != null) {
  			//noinspection RedundantIfStatement
  			if (!matchesPartialData(manufacturerData, manufacturerDataMask,
  					scanRecord.getManufacturerSpecificData(manufacturerId))) {
  				return false;
  			}
  		}
  		// All filters match.
  		return true;
  	}