From db9320d2aca3bb8c296df68f7fa9cb4fb600cfc8 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Wed, 11 Sep 2024 09:53:09 -0400 Subject: [PATCH] removed _repLocal function causing delays in initial translation, also made selection translation and repEvent fetching futures happen at the same time in message translation card --- .../pangea_message_event.dart | 26 ++----------------- .../chat/message_translation_card.dart | 12 ++++----- 2 files changed, 7 insertions(+), 31 deletions(-) diff --git a/lib/pangea/matrix_event_wrappers/pangea_message_event.dart b/lib/pangea/matrix_event_wrappers/pangea_message_event.dart index cd4ce5e76..06462cbea 100644 --- a/lib/pangea/matrix_event_wrappers/pangea_message_event.dart +++ b/lib/pangea/matrix_event_wrappers/pangea_message_event.dart @@ -477,28 +477,10 @@ class PangeaMessageEvent { return representationByLanguage(langCode)?.text ?? body; } - bool get isNew => - DateTime.now().difference(originServerTs.toLocal()).inSeconds < 8; - - Future _repLocal(String langCode) async { - int tries = 0; - - RepresentationEvent? rep = representationByLanguage(langCode); - - while ((isNew || eventId.contains("web")) && tries < 20) { - if (rep != null) return rep; - await Future.delayed(const Duration(milliseconds: 500)); - rep = representationByLanguage(langCode); - tries += 1; - } - return rep; - } - Future representationByLanguageGlobal({ required String langCode, }) async { - // try { - final RepresentationEvent? repLocal = await _repLocal(langCode); + final RepresentationEvent? repLocal = representationByLanguage(langCode); if (repLocal != null || langCode == LanguageKeys.unknownLanguage || @@ -519,11 +501,7 @@ class PangeaMessageEvent { target: langCode, room: _latestEdit.room, ); - - if (pangeaRep == null || - await _latestEdit.room.getEventById(_latestEdit.eventId) == null) { - return null; - } + if (pangeaRep == null) return null; MatrixState.pangeaController.messageData .sendRepresentationMatrixEvent( diff --git a/lib/pangea/widgets/chat/message_translation_card.dart b/lib/pangea/widgets/chat/message_translation_card.dart index 278c7d7ed..bcf837c0e 100644 --- a/lib/pangea/widgets/chat/message_translation_card.dart +++ b/lib/pangea/widgets/chat/message_translation_card.dart @@ -33,7 +33,7 @@ class MessageTranslationCardState extends State { String? oldSelectedText; bool _fetchingRepresentation = false; - Future fetchRepresentation(BuildContext context) async { + Future fetchRepresentation() async { if (l1Code == null) return; repEvent = widget.messageEvent @@ -102,15 +102,13 @@ class MessageTranslationCardState extends State { @override void initState() { super.initState(); - if (mounted) { - setState(() {}); - } - loadTranslation(() async { + final List futures = []; + futures.add(fetchRepresentation()); if (widget.selection.selectedText != null) { - await translateSelection(); + futures.add(translateSelection()); } - await fetchRepresentation(context); + await Future.wait(futures); }); }