simplify logic of message translation

pull/1384/head
William Jordan-Cooley 1 year ago
parent 1163c1d5cd
commit 4d34b390d5

@ -29,41 +29,26 @@ class MessageTranslationCardState extends State<MessageTranslationCard> {
PangeaRepresentation? repEvent;
String? selectionTranslation;
String? oldSelectedText;
String? l1Code;
String? l2Code;
bool _fetchingRepresentation = false;
String? translationLangCode() {
if (widget.immersionMode) return l1Code;
final String? originalSentCode =
widget.messageEvent.originalSent?.content.langCode;
return (l1Code == originalSentCode || originalSentCode == null)
? l2Code
: l1Code;
}
Future<void> fetchRepresentation(BuildContext context) async {
final String? langCode = translationLangCode();
if (langCode == null) return;
if (l1Code == null) return;
repEvent = widget.messageEvent
.representationByLanguage(
langCode,
l1Code!,
)
?.content;
if (repEvent == null && mounted) {
repEvent = await widget.messageEvent.representationByLanguageGlobal(
langCode: langCode,
langCode: l1Code!,
);
}
}
Future<void> translateSelection() async {
final String? targetLang = translationLangCode();
if (widget.selection.selectedText == null ||
targetLang == null ||
l1Code == null ||
l2Code == null) {
selectionTranslation = null;
@ -78,7 +63,7 @@ class MessageTranslationCardState extends State<MessageTranslationCard> {
accessToken: accessToken,
request: FullTextTranslationRequestModel(
text: widget.selection.messageText,
tgtLang: translationLangCode()!,
tgtLang: l1Code!,
userL1: l1Code!,
userL2: l2Code!,
srcLang: widget.messageEvent.messageDisplayLangCode,
@ -106,11 +91,14 @@ class MessageTranslationCardState extends State<MessageTranslationCard> {
}
}
String? get l1Code =>
MatrixState.pangeaController.languageController.activeL1Code();
String? get l2Code =>
MatrixState.pangeaController.languageController.activeL2Code();
@override
void initState() {
super.initState();
l1Code = MatrixState.pangeaController.languageController.activeL1Code();
l2Code = MatrixState.pangeaController.languageController.activeL2Code();
if (mounted) {
setState(() {});
}

Loading…
Cancel
Save