From fc9ee156c61738c7ceb77ddf82e79a6bcefb8d38 Mon Sep 17 00:00:00 2001
From: uvok
Date: Thu, 31 Jul 2025 13:09:10 +0200
Subject: Add UB connection
---
lib/model/connection/device_connection.dart | 1 -
lib/model/connection/universal_ble_connection.dart | 28 ++++++++++++++++++++++
lib/model/device_connection_factory.dart | 4 ++++
3 files changed, 32 insertions(+), 1 deletion(-)
create mode 100644 lib/model/connection/universal_ble_connection.dart
(limited to 'lib')
diff --git a/lib/model/connection/device_connection.dart b/lib/model/connection/device_connection.dart
index 81bcbfd..5c810f0 100644
--- a/lib/model/connection/device_connection.dart
+++ b/lib/model/connection/device_connection.dart
@@ -13,7 +13,6 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-
enum ConnectionStatus { disconnected, connected, error }
abstract class DeviceConnection {
diff --git a/lib/model/connection/universal_ble_connection.dart b/lib/model/connection/universal_ble_connection.dart
new file mode 100644
index 0000000..6aa3c87
--- /dev/null
+++ b/lib/model/connection/universal_ble_connection.dart
@@ -0,0 +1,28 @@
+import 'package:universal_ble/universal_ble.dart';
+import 'package:uvok_epaper_badge/model/connection/device_connection.dart';
+import 'package:uvok_epaper_badge/model/device/universal_ble_device.dart';
+
+class UniversalBleConnection implements DeviceConnection {
+ final UniversalBleDevice _device;
+ ConnectionStatus _status = ConnectionStatus.disconnected;
+
+ UniversalBleConnection(this._device);
+
+ @override
+ Future connect() async {
+ await _device.device.connect();
+
+ _status = await _device.device.isConnected
+ ? ConnectionStatus.connected
+ : ConnectionStatus.disconnected;
+ }
+
+ @override
+ Future disconnect() async {
+ await _device.device.disconnect();
+ _status = ConnectionStatus.disconnected;
+ }
+
+ @override
+ ConnectionStatus get status => _status;
+}
diff --git a/lib/model/device_connection_factory.dart b/lib/model/device_connection_factory.dart
index 92b2348..49e1887 100644
--- a/lib/model/device_connection_factory.dart
+++ b/lib/model/device_connection_factory.dart
@@ -13,16 +13,20 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
+import 'package:uvok_epaper_badge/model/connection/universal_ble_connection.dart';
import 'package:uvok_epaper_badge/model/device/device.dart';
import 'package:uvok_epaper_badge/model/connection/device_connection.dart';
import 'package:uvok_epaper_badge/model/device/flutter_blue_plus_device.dart';
import 'package:uvok_epaper_badge/model/connection/flutter_blue_plus_device_connection.dart';
import 'package:uvok_epaper_badge/model/connection/mock_device_connection.dart';
+import 'package:uvok_epaper_badge/model/device/universal_ble_device.dart';
class DeviceConnectionFactory {
static DeviceConnection createConnection(Device device) {
if (device is FlutterBluePlusDevice) {
return FlutterBluePlusDeviceConnection(device: device);
+ } else if (device is UniversalBleDevice) {
+ return UniversalBleConnection(device);
}
// switch (device.type) {
--
cgit v1.2.3