addResult method

bool addResult(
  1. ScanResult result
)

Adds a scan result to the session.

Returns true if the result was added, false if it was filtered (duplicate or capacity).

Implementation

bool addResult(ScanResult result) {
  if (_state != SessionState.active) return false;
  if (isFull) return false;

  // Duplicate detection
  if (enableDuplicateFilter) {
    final normalizedValue = result.rawValue.trim().toLowerCase();
    if (_seenValues.contains(normalizedValue)) {
      _duplicatesFiltered++;
      notifyListeners();
      return false;
    }
    _seenValues.add(normalizedValue);
  }

  // Add session metadata to result
  final enrichedResult = result.copyWith(
    metadata: {
      ...result.metadata,
      'sessionId': sessionId,
      'sessionIndex': _results.length,
    },
  );

  _results.add(enrichedResult);
  _scanTimestamps.add(DateTime.now());

  if (!_resultStreamController.isClosed) {
    _resultStreamController.add(enrichedResult);
  }

  notifyListeners();
  return true;
}