handleCaptionFromRaw method
void
handleCaptionFromRaw(
- String text,
- bool isFinal,
- String participantIdentity
)
Implementation
void handleCaptionFromRaw(
String text,
bool isFinal,
String participantIdentity,
) {
final name = getParticipantNameByIdentity(participantIdentity);
final sourceLang =
transcriptionLanguageData?.sourceLang ?? ""; // fallback if needed
final targetLang = translationLanguage?.code ??
transcriptionLanguageData?.sourceLang ??
sourceLang;
// -------------------- FINAL ---------------------
if (isFinal) {
if (particalTranscription != null) {
// Finalize existing partial
particalTranscription = particalTranscription!.copyWith(
name: name,
transcription: text,
isFinal: true,
sourceLang: sourceLang,
targetLang: targetLang,
);
_updateTranscriptionInList(particalTranscription!);
if (_isTranslationActive && sourceLang != targetLang) {
translateText(particalTranscription!);
}
} else {
// No partial → create fresh final
final newTranscription = TranscriptionModel(
id: const Uuid().v4(),
name: name,
transcription: text,
timestamp: Utils.formatTimestampToTime(
DateTime.now().millisecondsSinceEpoch,
),
isFinal: true,
sourceLang: sourceLang,
targetLang: targetLang,
);
addTranscription(newTranscription);
if (_isTranslationActive && sourceLang != targetLang) {
translateText(newTranscription);
}
}
// Clear partial after final
particalTranscription = null;
}
// -------------------- PARTIAL ---------------------
else {
if (particalTranscription != null) {
// Update existing partial (live typing effect)
particalTranscription = particalTranscription!.copyWith(
name: name,
transcription: text,
isFinal: false,
sourceLang: sourceLang,
targetLang: targetLang,
);
_updateTranscriptionInList(particalTranscription!);
} else {
// Create new partial
particalTranscription = TranscriptionModel(
id: const Uuid().v4(),
name: name,
transcription: text,
timestamp: Utils.formatTimestampToTime(
DateTime.now().millisecondsSinceEpoch,
),
isFinal: false,
sourceLang: sourceLang,
targetLang: targetLang,
);
addTranscription(particalTranscription!);
}
}
}