Add queue per device (#48)

* Add queue per device

* Improve API and documentation

* Update lib/src/universal_ble.dart

* Update lib/src/ble_command_queue.dart

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
Co-authored-by: Foti Dim <foti@navideck.com>
This commit is contained in:
Rohit Sangwan
2024-06-07 20:55:46 +05:30
committed by GitHub
parent 5847bbffc5
commit 2fe21962d2
11 changed files with 262 additions and 166 deletions
+13 -5
View File
@@ -22,7 +22,7 @@ class MyApp extends StatefulWidget {
class _MyAppState extends State<MyApp> {
final _scanResults = <BleScanResult>[];
bool _isScanning = false;
bool _isQueueEnabled = true;
QueueType _queueType = QueueType.global;
AvailabilityState? bleAvailabilityState;
final List<String> _services = [
@@ -45,7 +45,7 @@ class _MyAppState extends State<MyApp> {
}
/// Setup queue and timeout
UniversalBle.queuesCommands = _isQueueEnabled;
UniversalBle.queueType = _queueType;
UniversalBle.timeout = const Duration(seconds: 10);
UniversalBle.onAvailabilityChange = (state) {
@@ -68,6 +68,10 @@ class _MyAppState extends State<MyApp> {
}
setState(() {});
};
// UniversalBle.onQueueUpdate = (String id, int remainingItems) {
// debugPrint("Queue: $id RemainingItems: $remainingItems");
// };
}
Future<void> startScan() async {
@@ -184,11 +188,15 @@ class _MyAppState extends State<MyApp> {
},
),
PlatformButton(
text: _isQueueEnabled ? 'Disable Queue' : 'Enable Queue',
text: 'Queue: ${_queueType.name.toUpperCase()}',
onPressed: () {
setState(() {
_isQueueEnabled = !_isQueueEnabled;
UniversalBle.queuesCommands = _isQueueEnabled;
_queueType = switch (_queueType) {
QueueType.global => QueueType.perDevice,
QueueType.perDevice => QueueType.none,
QueueType.none => QueueType.global,
};
UniversalBle.queueType = _queueType;
});
},
),