start static method

Future<PreviewDetails> start({
  1. required int? height,
  2. required int? width,
  3. required QRCodeHandler? qrCodeHandler,
  4. List<BarcodeFormats>? formats = _defaultBarcodeFormats,
})

Implementation

static Future<PreviewDetails> start({
  required int? height,
  required int? width,
  required QRCodeHandler? qrCodeHandler,
  List<BarcodeFormats>? formats = _defaultBarcodeFormats,
}) async {
  final List<BarcodeFormats> _formats = formats ?? _defaultBarcodeFormats;
  assert(_formats.isNotEmpty);

  final List<String> formatStrings =
      _formats.map((BarcodeFormats format) => format.toString().split('.')[1]).toList(growable: false);

  channelReader.setQrCodeHandler(qrCodeHandler!);
  // ignore: always_specify_types
  final Map<dynamic, dynamic>? details = await _channel.invokeMethod(
      'start', {'targetHeight': height, 'targetWidth': width, 'heartbeatTimeout': 0, 'formats': formatStrings});

  // invokeMethod returns Map<dynamic,...> in dart 2.0
  assert(details is Map<dynamic, dynamic>);

  final int textureId = details!['textureId'] as int;
  final num orientation = details['surfaceOrientation'] as num;
  final num surfaceHeight = details['surfaceHeight'] as num;
  final num surfaceWidth = details['surfaceWidth'] as num;

  return PreviewDetails(surfaceHeight, surfaceWidth, orientation, textureId);
}