diff options
Diffstat (limited to 'lib/control/scanner_controller_impl.dart')
-rw-r--r-- | lib/control/scanner_controller_impl.dart | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/control/scanner_controller_impl.dart b/lib/control/scanner_controller_impl.dart index b0a7f79..7033542 100644 --- a/lib/control/scanner_controller_impl.dart +++ b/lib/control/scanner_controller_impl.dart @@ -1,17 +1,38 @@ import 'dart:async'; import 'package:uvok_epaper_badge/control/scanner_controller.dart'; import 'package:meta/meta.dart'; +import 'package:uvok_epaper_badge/model/device.dart'; /// Helper class which provides the setStatus method. abstract class ScannerControllerImpl extends ScannerController { final StreamController<ScanStatus> _scanStatusController = StreamController<ScanStatus>.broadcast(); + final StreamController<List<Device>> _deviceContoller = + StreamController<List<Device>>.broadcast(); @override Stream<ScanStatus> get statusStream => _scanStatusController.stream; + @override + Stream<List<Device>> get scanResultsStream => _deviceContoller.stream; + @protected void setStatus(ScanStatus newStatus) { + if (_scanStatusController.isClosed) return; + _scanStatusController.add(newStatus); } + + @protected + void setDevices(List<Device> devices) { + if (_deviceContoller.isClosed) return; + + _deviceContoller.add(devices); + } + + @override + void dispose() { + _scanStatusController.close(); + _deviceContoller.close(); + } } |