summaryrefslogtreecommitdiff
path: root/lib/device_details.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/device_details.dart')
-rw-r--r--lib/device_details.dart78
1 files changed, 10 insertions, 68 deletions
diff --git a/lib/device_details.dart b/lib/device_details.dart
index 11a5f39..f3754d3 100644
--- a/lib/device_details.dart
+++ b/lib/device_details.dart
@@ -16,13 +16,19 @@
import 'package:uvok_epaper_badge/model/device.dart';
import 'package:flutter/material.dart';
import 'package:logger/logger.dart';
+import 'package:uvok_epaper_badge/model/device_connection.dart';
var logger = Logger();
class DeviceDetailsScreen extends StatefulWidget {
final Device device;
+ final DeviceConnection deviceConnection;
- const DeviceDetailsScreen({super.key, required this.device});
+ const DeviceDetailsScreen({
+ super.key,
+ required this.device,
+ required this.deviceConnection,
+ });
@override
State<StatefulWidget> createState() {
@@ -32,16 +38,10 @@ class DeviceDetailsScreen extends StatefulWidget {
class DeviceDetailsState extends State<DeviceDetailsScreen> {
String connectStatus = "<Status>";
- // Just to have a resonable default subscription?
- // StreamSubscription<BluetoothConnectionState> subs =
- // Stream<BluetoothConnectionState>.empty().listen((e) => ());
/// Whether the back button should be active.
bool backActive = false;
- // BluetoothCharacteristic? current;
- // BluetoothCharacteristic? available;
-
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -74,51 +74,22 @@ class DeviceDetailsState extends State<DeviceDetailsScreen> {
Navigator.pop(context);
}
- void onConnStateChange(ConnectionStatus event) {
- setState(() {
- connectStatus = event.toString();
- });
- logger.i("New conn state: ${event.toString()}");
- }
-
@override
void deactivate() {
super.deactivate();
logger.i("Closing state");
- // subs.cancel().ignore();
// widget.device.disconnect().ignore();
}
void _doConnect() async {
final dev = widget.device;
- // subs.cancel().ignore();
- // subs = dev.connectionState.listen(onConnStateChange);
+
try {
logger.i("Try to connect...");
- // connect timeout doesn't work under Linux
- // await dev.connect().timeout(Duration(seconds: 2));
- // logger.i("Connected!");
-
- // connectStatus = "Connected";
-
- // // ???? WTF ????
- // List<BluetoothService> svcs = await dev.discoverServices();
- // dev.onServicesReset.listen((_) async {
- // logger.i("Services Reset");
- // try {
- // List<BluetoothService> svcs = await dev.discoverServices();
- // findCharac(svcs);
- // } catch (e) {
- // logger.e(e);
- // }
- // });
-
- // logger.i("services discovered");
-
- // findCharac(svcs);
+ await widget.deviceConnection.connect();
} catch (e) {
logger.e(e);
- // dev.disconnect().ignore();
+ await widget.deviceConnection.disconnect();
connectStatus = e.toString();
} finally {
backActive = true;
@@ -127,33 +98,4 @@ class DeviceDetailsState extends State<DeviceDetailsScreen> {
}
}
}
-
- // void findCharac(List<BluetoothService> svcs) {
- // if (svcs.isEmpty) {
- // connectStatus += ", No services found!";
- // return;
- // }
- // connectStatus += ", Services found!";
- // BluetoothService? badgeService = svcs.firstWhereOrNull(
- // (s) => s.serviceUuid.str == "ca260000-b4bb-46b2-bd06-b7b7a61ea990",
- // );
-
- // if (badgeService == null) {
- // } else {
- // logger.i("badge service found");
- // current = badgeService.characteristics.firstWhereOrNull(
- // (c) =>
- // c.characteristicUuid.str == "ca260001-b4bb-46b2-bd06-b7b7a61ea990",
- // );
- // available = badgeService.characteristics.firstWhereOrNull(
- // (c) =>
- // c.characteristicUuid.str == "ca260002-b4bb-46b2-bd06-b7b7a61ea990",
- // );
- // }
-
- // if (current == null || available == null) {
- // } else {
- // logger.i("characteristics found");
- // }
- // }
}