import 'utils.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; final Map> _cglobal = {}; final Map> _dglobal = {}; /// connect & disconnect + update stream extension Extra on BluetoothDevice { // convenience StreamControllerReemit get _cstream { _cglobal[remoteId] ??= StreamControllerReemit(initialValue: false); return _cglobal[remoteId]!; } // convenience StreamControllerReemit get _dstream { _dglobal[remoteId] ??= StreamControllerReemit(initialValue: false); return _dglobal[remoteId]!; } // get stream Stream get isConnecting { return _cstream.stream; } // get stream Stream get isDisconnecting { return _dstream.stream; } // connect & update stream Future connectAndUpdateStream() async { _cstream.add(true); try { await connect(mtu: null); } finally { _cstream.add(false); } } // disconnect & update stream Future disconnectAndUpdateStream({bool queue = true}) async { _dstream.add(true); try { await disconnect(queue: queue); } finally { _dstream.add(false); } } }