summaryrefslogtreecommitdiff
path: root/lib/model
diff options
context:
space:
mode:
Diffstat (limited to 'lib/model')
-rw-r--r--lib/model/flutter_blue_plus_device.dart30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/model/flutter_blue_plus_device.dart b/lib/model/flutter_blue_plus_device.dart
new file mode 100644
index 0000000..8a3619b
--- /dev/null
+++ b/lib/model/flutter_blue_plus_device.dart
@@ -0,0 +1,30 @@
+import 'package:badge/model/device.dart';
+import 'package:flutter_blue_plus/flutter_blue_plus.dart';
+
+class FlutterBluePlusDevice implements Device {
+ final ScanResult scanResult;
+
+ @override
+ String? get address => scanResult.device.remoteId.str;
+
+ @override
+ String? get name => firstGiven([
+ scanResult.device.advName,
+ scanResult.device.platformName,
+ "<Unknown>",
+ ]);
+
+ @override
+ int? get rssi => scanResult.rssi;
+
+ FlutterBluePlusDevice._(this.scanResult);
+
+ static FlutterBluePlusDevice fromScan(ScanResult scanResult) {
+ var bleDevice = FlutterBluePlusDevice._(scanResult);
+ return bleDevice;
+ }
+}
+
+String firstGiven(List<String> list) {
+ return list.firstWhere((s) => s.isNotEmpty, orElse: () => "");
+}