summaryrefslogtreecommitdiff
path: root/lib/scan_page.dart
diff options
context:
space:
mode:
authoruvok2025-07-30 20:34:54 +0200
committeruvok2025-07-30 20:34:54 +0200
commite0fb75037ae575bb0c63703299c2039bf970ad65 (patch)
tree0d259415e2bf115106ff25ebc77ff1f54d7c2284 /lib/scan_page.dart
parent87e1dfffd2c17ef0e3d0711394122456e9d0c7c8 (diff)
Shuffle code around / reorder
Diffstat (limited to 'lib/scan_page.dart')
-rw-r--r--lib/scan_page.dart142
1 files changed, 0 insertions, 142 deletions
diff --git a/lib/scan_page.dart b/lib/scan_page.dart
deleted file mode 100644
index 6256728..0000000
--- a/lib/scan_page.dart
+++ /dev/null
@@ -1,142 +0,0 @@
-// 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 <https://www.gnu.org/licenses/>.
-
-import 'package:uvok_epaper_badge/control/scanner_controller.dart';
-import 'package:uvok_epaper_badge/device_details.dart';
-import 'package:uvok_epaper_badge/device_scan_select.dart';
-import 'package:uvok_epaper_badge/model/device.dart';
-import 'package:flutter/material.dart';
-import 'package:logger/logger.dart';
-import 'package:permission_handler/permission_handler.dart';
-import 'package:uvok_epaper_badge/model/device_connection.dart';
-import 'package:uvok_epaper_badge/model/device_connection_factory.dart';
-
-var logger = Logger();
-
-class ScanPage extends StatefulWidget {
- const ScanPage({super.key, required this.title, required this.deviceScanner});
-
- // Original doc: Fields in a Widget subclass are always marked "final".
-
- final String title;
- final ScannerController deviceScanner;
-
- @override
- State<ScanPage> createState() => _ScanPageState();
-}
-
-class _ScanPageState extends State<ScanPage> {
- Device? selectedDevice;
-
- void _doConnect() async {
- final Device? dev = selectedDevice;
- if (dev == null) return;
-
- final DeviceConnection connection =
- DeviceConnectionFactory.createConnection(dev);
- //???
- Navigator.push(
- context,
- MaterialPageRoute(
- builder: (context) =>
- DeviceDetailsScreen(device: dev, deviceConnection: connection),
- ),
- );
- }
-
- void _doScan() async {
- setState(() {
- selectedDevice = null;
- });
-
- // ...
- await widget.deviceScanner.startScan();
- }
-
- Future getPermissions() async {
- try {
- await Permission.bluetooth.request();
- } catch (e) {
- logger.e(e.toString());
- }
- }
-
- @override
- void initState() {
- super.initState();
- getPermissions();
- }
-
- @override
- Widget build(BuildContext context) {
- return StreamBuilder(
- stream: widget.deviceScanner.statusStream,
- initialData: ScanStatus.idle,
- builder: (context, asyncSnapshot) {
- bool isScanning = asyncSnapshot.data == ScanStatus.scanning;
- return Scaffold(
- appBar: AppBar(
- backgroundColor: Theme.of(context).colorScheme.inversePrimary,
- title: Text(widget.title),
- ),
- body: Center(
- child: Column(
- // TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint"
- // action in the IDE, or press "p" in the console), to see the
- // wireframe for each widget.
- mainAxisAlignment: MainAxisAlignment.center,
- spacing: 24,
- children: <Widget>[
- SizedBox(height: 15),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- spacing: 15.0,
- children: [
- ElevatedButton(
- onPressed: isScanning ? null : _doScan,
- child: isScanning
- ? Text("Scanning...")
- : Text("Start scan"),
- ),
- ElevatedButton(
- onPressed: (selectedDevice == null || isScanning)
- ? null
- : _doConnect,
- child: Text("Connect"),
- ),
- ],
- ),
- Expanded(
- child: StreamBuilder(
- stream: widget.deviceScanner.scanResultsStream,
- initialData: <Device>[],
- builder: (context, asyncSnapshot) {
- return DeviceScanSelection(
- items: asyncSnapshot.data ?? [],
- onItemSelected: (item) {
- setState(() => selectedDevice = item);
- },
- );
- },
- ),
- ),
- ],
- ),
- ),
- );
- },
- );
- }
-}