Initial
This commit is contained in:
64
lib/utils_from_FBPExample/scan_result_tile.dart
Normal file
64
lib/utils_from_FBPExample/scan_result_tile.dart
Normal file
@@ -0,0 +1,64 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
||||
|
||||
class ScanResultTile extends StatefulWidget {
|
||||
const ScanResultTile({super.key, required this.result, this.onTap});
|
||||
|
||||
final ScanResult result;
|
||||
final VoidCallback? onTap;
|
||||
|
||||
@override
|
||||
State<ScanResultTile> createState() => _ScanResultTileState();
|
||||
}
|
||||
|
||||
class _ScanResultTileState extends State<ScanResultTile> {
|
||||
BluetoothConnectionState _connectionState = BluetoothConnectionState.disconnected;
|
||||
|
||||
late StreamSubscription<BluetoothConnectionState> _connectionStateSubscription;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
_connectionStateSubscription = widget.result.device.connectionState.listen((state) {
|
||||
_connectionState = state;
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_connectionStateSubscription.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
bool get isConnected {
|
||||
return _connectionState == BluetoothConnectionState.connected;
|
||||
}
|
||||
|
||||
Widget _buildTitle(BuildContext context) {
|
||||
return Text(
|
||||
widget.result.advertisementData.advName,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Card(
|
||||
child: ListTile(
|
||||
title: _buildTitle(context),
|
||||
subtitle: Text(
|
||||
"Signal Strength (Less = farther): ${widget.result.rssi}",
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
trailing: Icon(Icons.arrow_forward_ios_rounded),
|
||||
onTap: widget.result.advertisementData.connectable ? widget.onTap : null,
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user