import 'dart:async'; import 'package:uvok_epaper_badge/control/scanner_controller.dart'; import 'package:meta/meta.dart'; import 'package:uvok_epaper_badge/model/device/device.dart'; /// Helper class which provides the setStatus method. abstract class ScannerControllerImpl extends ScannerController { final StreamController _scanStatusController = StreamController.broadcast(); final StreamController> _deviceContoller = StreamController>.broadcast(); @override Stream get statusStream => _scanStatusController.stream; @override Stream> get scanResultsStream => _deviceContoller.stream; @protected void setStatus(ScanStatus newStatus) { if (_scanStatusController.isClosed) return; _scanStatusController.add(newStatus); } @protected void setDevices(List devices) { if (_deviceContoller.isClosed) return; _deviceContoller.add(devices); } @override void dispose() { _scanStatusController.close(); _deviceContoller.close(); } }