processSample static method

ScanResult processSample(
  1. SampleItem sample
)

Implementation

static ScanResult processSample(SampleItem sample) {
  switch (sample.mode) {
    case ScanMode.qr:
      return ScanResult(
        mode: ScanMode.qr,
        rawValue: sample.payload,
        isValid: true,
        confidence: 1.0,
        fields: {
          'Format': 'QR Code (2D)',
          'Content Type': sample.payload.startsWith('WIFI:')
              ? 'WiFi Credentials'
              : (sample.payload.startsWith('BEGIN:VCARD')
                    ? 'vCard Contact'
                    : (sample.payload.startsWith('upi:')
                          ? 'UPI Payment'
                          : 'URL / Text')),
          'Payload': sample.payload,
        },
      );

    case ScanMode.barcode:
      return ScanResult(
        mode: ScanMode.barcode,
        rawValue: sample.payload,
        isValid: true,
        confidence: 1.0,
        fields: {
          'Format': sample.payload.length == 13 ? 'EAN-13' : 'Code-128',
          'Value': sample.payload,
        },
      );

    case ScanMode.pdf417:
      return ScanResult(
        mode: ScanMode.pdf417,
        rawValue: sample.payload,
        isValid: true,
        confidence: 0.99,
        fields: {
          'Format': 'PDF417 (2D Stacked Barcode)',
          'Raw Payload': sample.payload,
        },
      );

    case ScanMode.passport:
      return MrzPassportParser.parse(sample.payload);

    case ScanMode.aadhaar:
      return AadhaarParser.parse(sample.payload);

    case ScanMode.pan:
      return PanCardParser.parse(sample.payload);

    case ScanMode.drivingLicense:
      return DrivingLicenseParser.parse(sample.payload);

    case ScanMode.vin:
      return VinParser.parse(sample.payload);

    case ScanMode.invoice:
      return InvoiceParser.parse(sample.payload);

    case ScanMode.receipt:
      return ReceiptParser.parse(sample.payload);

    case ScanMode.businessCard:
      return BusinessCardParser.parse(sample.payload);

    case ScanMode.ocr:
      return ScanResult(
        mode: ScanMode.ocr,
        rawValue: sample.payload,
        isValid: true,
        confidence: 0.95,
        fields: {
          'Text Type': 'Document OCR',
          'Extracted Lines':
              '${sample.payload.split('\n').length} Lines Recognized',
          'Full Text': sample.payload,
        },
      );

    case ScanMode.document:
      return ScanResult(
        mode: ScanMode.document,
        rawValue: 'Scanned Document Page',
        isValid: true,
        confidence: 0.99,
        fields: {
          'Document Edge Bounds': 'Detected Quad Corner Box',
          'Perspective Matrix': 'Corrected 4-Corner Rect',
          'Filter State': 'Shadow Removal Whitened Paper',
        },
      );

    case ScanMode.multiCode:
      return ScanResult(
        mode: ScanMode.multiCode,
        rawValue: sample.payload,
        isValid: true,
        confidence: 0.99,
        fields: {
          'Multi-Code Detection': '3 Codes Found',
          'Code #1': '8901030748194',
          'Code #2': 'https://flutter.dev',
          'Code #3': 'WIFI:S:OfficeGuest;P:guest123;;',
        },
        metadata: {
          'multiCodes': [
            '8901030748194',
            'https://flutter.dev',
            'WIFI:S:OfficeGuest;P:guest123;;'
          ]
        },
      );

    case ScanMode.face:
      return ScanResult(
        mode: ScanMode.face,
        rawValue:
            'Face Detected (Bounding Box: [L: 120, T: 180, R: 360, B: 480])',
        isValid: true,
        confidence: 0.98,
        fields: {
          'Face Detected': '1 Face in Frame',
          'Liveness Check': 'Passed (Blink & Smile Detected) ✓',
          'Left Eye Open': '98.5%',
          'Right Eye Open': '97.2%',
          'Smiling Probability': '89.4%',
          'Head Pose Yaw': '1.2° (Centered)',
          'Head Pose Pitch': '-0.5° (Straight)',
          'Head Pose Roll': '0.1° (Level)',
        },
        metadata: {
          'leftEyeOpen': 0.985,
          'rightEyeOpen': 0.972,
          'smile': 0.894,
          'headYaw': 1.2,
          'headPitch': -0.5,
        },
      );
  }
}