// Copyright (C) 2025, uvok cheetah // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . import 'dart:async'; import 'package:uvok_epaper_badge/control/scanner_controller.dart'; import 'package:uvok_epaper_badge/control/scanner_controller_impl.dart'; import 'package:uvok_epaper_badge/model/device/mock_device.dart'; class MockScannerController extends ScannerControllerImpl { static final List fakedDevices = [ MockDevice(0, "First"), MockDevice(1, "Second"), MockDevice(2, "Third"), MockDevice(3, "Fourth"), ]; bool _isScanning = false; MockScannerController() { super.setAvailability(ScanAvailability.available); } @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)); super.setDevices(fakedDevices.getRange(0, i + 1).toList(growable: false)); } _isScanning = false; setStatus(ScanStatus.finished); } @override Future stopScan() async { _isScanning = false; } }