From f607bcb9948545c860b988e9d0405743b02b4266 Mon Sep 17 00:00:00 2001 From: uvok Date: Tue, 22 Jul 2025 17:01:04 +0200 Subject: Make widget prettier --- lib/device_scan_select.dart | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/device_scan_select.dart b/lib/device_scan_select.dart index a44bf4f..27b7492 100644 --- a/lib/device_scan_select.dart +++ b/lib/device_scan_select.dart @@ -24,22 +24,45 @@ class DeviceScanSelection extends NotifyingListWidget { } class _DeviceScanSelectionState extends State { + int selectedResult = -1; + @override Widget build(BuildContext context) { return Expanded( child: ListView.separated( - itemBuilder: (c, idx) { - final ScanResult item = widget.items[idx]; + itemCount: widget.items.length, + itemBuilder: (context, index) { + if (index >= widget.items.length) return null; + final ScanResult result = widget.items[index]; + final String name = firstGiven([ + result.device.advName, + result.device.platformName, + "", + ]); + return ListTile( - title: Text(item.toString()), + title: Text(name), + subtitle: Text(result.device.remoteId.str), + trailing: Text('RSSI: ${result.rssi}'), + selectedTileColor: Colors.amber, + selectedColor: Colors.black, onTap: () { - widget.onItemSelected(item); + setState(() { + selectedResult = index; + }); + widget.onItemSelected(result); }, + selected: selectedResult == index, ); }, - separatorBuilder: (c, i) => Divider(), - itemCount: widget.items.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, ), ); } } + +String firstGiven(List list) { + return list.firstWhere((s) => s.isNotEmpty, orElse: () => ""); +} -- cgit v1.2.3