From 77b8658f7272178da5d4722510a6737bdf48b607 Mon Sep 17 00:00:00 2001 From: Foti Dim Date: Fri, 10 May 2024 14:25:59 +0200 Subject: [PATCH] Remove dependency on collection (#43) * Remove dependency on collection * Update changelog --- CHANGELOG.md | 3 +++ .../universal_ble_linux/universal_ble_linux.dart | 14 ++++++++------ pubspec.yaml | 1 - 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e8941a..dc55220 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ * Fix Windows scan filter * Improve service discovery on Linux * Use asynchronous callbacks for SetNotifiable +* Remove dependency on `convert` +* Remove dependency on `collection` +* Update Android example app Gradle ## 0.9.9 * Improve service discovery on Apple diff --git a/lib/src/universal_ble_linux/universal_ble_linux.dart b/lib/src/universal_ble_linux/universal_ble_linux.dart index 90c1da6..6ef3af8 100644 --- a/lib/src/universal_ble_linux/universal_ble_linux.dart +++ b/lib/src/universal_ble_linux/universal_ble_linux.dart @@ -2,7 +2,6 @@ import 'dart:async'; import 'dart:typed_data'; import 'package:bluez/bluez.dart'; -import 'package:collection/collection.dart'; import 'package:flutter/services.dart'; import 'package:universal_ble/src/models/model_exports.dart'; import 'package:universal_ble/src/universal_ble_platform_interface.dart'; @@ -148,9 +147,11 @@ class UniversalBleLinux extends UniversalBlePlatform { String deviceId, String service, String characteristic) { final device = _findDeviceById(deviceId); final s = device.gattServices - .firstWhereOrNull((s) => s.uuid.toString() == service); - final c = s?.characteristics - .firstWhereOrNull((c) => c.uuid.toString() == characteristic); + .cast() + .firstWhere((s) => s?.uuid.toString() == service, orElse: () => null); + final c = s?.characteristics.cast().firstWhere( + (c) => c?.uuid.toString() == characteristic, + orElse: () => null); if (c == null) { throw Exception('Unknown characteristic:$characteristic'); @@ -306,8 +307,9 @@ class UniversalBleLinux extends UniversalBlePlatform { BlueZDevice _findDeviceById(String deviceId) { final device = _devices[deviceId] ?? - _client.devices - .firstWhereOrNull((device) => device.address == deviceId); + _client.devices.cast().firstWhere( + (device) => device?.address == deviceId, + orElse: () => null); if (device == null) { throw Exception('Unknown deviceId:$deviceId'); } diff --git a/pubspec.yaml b/pubspec.yaml index bbf3157..b3f6aec 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -23,7 +23,6 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.6 - collection: ^1.17.2 flutter_web_bluetooth: ^0.2.2 bluez: ^0.8.2