import 'dart:async'; import 'package:badge/control/scanner_controller.dart'; import 'package:badge/control/scanner_controller_impl.dart'; import 'package:badge/model/device.dart'; import 'package:badge/model/mock_device.dart'; class MockScannerController extends ScannerControllerImpl { static final List fakedDevices = [ MockDevice(0, "First"), MockDevice(1, "Second"), MockDevice(2, "Third"), MockDevice(3, "Fourth"), ]; @override void dispose() {} @override Stream> get scanResultsStream => _deviceContoller.stream; final StreamController> _deviceContoller = StreamController>.broadcast(); bool _isScanning = false; @override Future startScan({ Duration timeout = const Duration(seconds: 2), }) async { if (_isScanning) return; _isScanning = true; setStatus(ScanStatus.scanning); for (int i = 0; i < fakedDevices.length && _isScanning; i++) { await Future.delayed(Duration(milliseconds: 300)); _deviceContoller.add( fakedDevices.getRange(0, i + 1).toList(growable: false), ); } _isScanning = false; setStatus(ScanStatus.finished); } @override Future stopScan() async { _isScanning = false; } }