LedgerBleConnectionManager constructor

LedgerBleConnectionManager({
  1. required PermissionRequestCallback onPermissionRequest,
})

Implementation

LedgerBleConnectionManager({
  required this.onPermissionRequest,
}) {
  _connectionChangeListeners.add(_handleConnectionChange);
  UniversalBle.onConnectionChange = (deviceId, isConnected, err) {
    final state = isConnected ? BleConnectionState.connected : BleConnectionState.disconnected;

    _onConnectionChangeController.add(
      BleConnectionChangeEvent(
        deviceId: deviceId,
        newState: state,
      ),
    );

    // Copy the list because we get a ConcurrentModificationError otherwise
    final List<OnConnectionChange> connectionChangeListeners = [
      ..._connectionChangeListeners,
    ];

    for (final OnConnectionChange listener in connectionChangeListeners) {
      try {
        listener(deviceId, isConnected, err);
      } catch (e) {
        debugPrint("Error in connection change listener: $e");
      }
    }
  };
}