createDetector method

  1. @override
BarcodeDetector createDetector({
  1. List<BarcodeFormat>? formats,
})
override

Implementation

@override
BarcodeDetector createDetector({
  List<BarcodeFormat>? formats,
}) {
  final executor =
      jni.Executors.newSingleThreadExecutor().castTo(jni.Executor.type);
  final builder = jni.BarcodeScannerOptions_Builder().setExecutor(executor);
  if (formats != null) {
    final values = formats
        .map((format) => format.cValue)
        .where((value) => value != jni.Barcode.FORMAT_UNKNOWN);
    if (values.isNotEmpty) {
      final value = values.first;
      final moreValues = values.skip(1).toJArray();
      builder.setBarcodeFormats(value, moreValues);
    }
  }
  final options = builder.build();
  final scanner = jni.BarcodeScanning.getClient1(options);
  return AndroidBarcodeDetector(scanner);
}