startScan method

void startScan(
  1. Duration timeout
)

Implementation

void startScan(Duration timeout) async {
  _scanResults.add(<PrinterBluetooth>[]);

  _bluetoothManager.startScan(timeout: timeout);

  _scanResultsSubscription = _bluetoothManager.scanResults.listen((devices) {
    _scanResults.add(devices.map((d) => PrinterBluetooth(d)).toList());
  });

  _isScanningSubscription =
      _bluetoothManager.isScanning.listen((isScanningCurrent) async {
    // If isScanning value changed (scan just stopped)
    if (_isScanning.value! && !isScanningCurrent) {
      _scanResultsSubscription!.cancel();
      _isScanningSubscription!.cancel();
    }
    _isScanning.add(isScanningCurrent);
  });
}