From 69e0259b8b3059822d40a1ed7ab349a646786bb8 Mon Sep 17 00:00:00 2001 From: uvok Date: Tue, 22 Jul 2025 16:56:25 +0200 Subject: Add device scan list --- lib/device_scan_select.dart | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 lib/device_scan_select.dart (limited to 'lib') diff --git a/lib/device_scan_select.dart b/lib/device_scan_select.dart new file mode 100644 index 0000000..a44bf4f --- /dev/null +++ b/lib/device_scan_select.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_blue_plus/flutter_blue_plus.dart'; + +abstract class NotifyingListWidget extends StatefulWidget { + final List items; + final ValueChanged onItemSelected; + + const NotifyingListWidget({ + super.key, + required this.items, + required this.onItemSelected, + }); +} + +class DeviceScanSelection extends NotifyingListWidget { + const DeviceScanSelection({ + super.key, + required super.items, + required super.onItemSelected, + }); + + @override + State createState() => _DeviceScanSelectionState(); +} + +class _DeviceScanSelectionState extends State { + @override + Widget build(BuildContext context) { + return Expanded( + child: ListView.separated( + itemBuilder: (c, idx) { + final ScanResult item = widget.items[idx]; + return ListTile( + title: Text(item.toString()), + onTap: () { + widget.onItemSelected(item); + }, + ); + }, + separatorBuilder: (c, i) => Divider(), + itemCount: widget.items.length, + ), + ); + } +} -- cgit v1.2.3