addResult method
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;
}