BluetoothPrinter constructor

BluetoothPrinter()

Implementation

BluetoothPrinter() {
  _channel.setMethodCallHandler((call) async {
    switch (call.method) {
      case 'onDiscovered':
        final dev = call.arguments;
        final device = BluetoothDevice._internal(
          name: dev['name'],
          address: dev['address'],
          type: dev['type'],
          isConnected: dev['is_connected'],
          printer: this,
        );

        if (!_devices.any((element) => element.address == device.address)) {
          _devices.add(device);
          _discoverController.sink.add(_devices);
        }
        break;

      case 'onStateChanged':
        int id = call.arguments['id'];
        _stateController.sink.add(id);
        break;

      case 'onPrintingProgress':
        int total = call.arguments['total'];
        int progress = call.arguments['progress'];
        _printingProgress.sink.add({
          'total': total,
          'progress': progress,
        });
        break;
      default:
    }

    return true;
  });
}