From 3759731d4813a0e9d07f5ed8e1068e99d784fdea Mon Sep 17 00:00:00 2001 From: ggurdin Date: Fri, 12 Jul 2024 14:06:21 -0400 Subject: [PATCH] code cleanup --- .../controllers/alternative_translator.dart | 14 ++------ .../widgets/it_feedback_card.dart | 4 +-- .../contextual_definition_controller.dart | 3 +- .../controllers/it_feedback_controller.dart | 4 +-- .../language_detection_controller.dart | 8 ++--- .../controllers/message_data_controller.dart | 6 ++-- .../controllers/my_analytics_controller.dart | 36 +++++++++---------- .../speech_to_text_controller.dart | 7 ++-- .../text_to_speech_controller.dart | 6 ++-- .../controllers/word_net_controller.dart | 6 ++-- .../pangea_message_event.dart | 19 +++------- lib/pangea/repo/span_data_repo.dart | 4 +-- lib/pangea/repo/topic_data_repo.dart | 2 +- .../widgets/chat/message_audio_card.dart | 1 + 14 files changed, 42 insertions(+), 78 deletions(-) diff --git a/lib/pangea/choreographer/controllers/alternative_translator.dart b/lib/pangea/choreographer/controllers/alternative_translator.dart index ccba733e2..5771d7f90 100644 --- a/lib/pangea/choreographer/controllers/alternative_translator.dart +++ b/lib/pangea/choreographer/controllers/alternative_translator.dart @@ -89,19 +89,9 @@ class AlternativeTranslator { final String? goldRouteTranslation = choreographer.itController.goldRouteTracker.fullTranslation; - final accessToken = await choreographer.accessToken; - if (accessToken == null) { - ErrorHandler.logError( - m: "accessToken null in setTranslationFeedback", - s: StackTrace.current, - ); - translationFeedbackKey = FeedbackKey.loadingPleaseWait; - return; - } - final FullTextTranslationResponseModel results = await FullTextTranslationRepo.translate( - accessToken: accessToken, + accessToken: await choreographer.accessToken, request: FullTextTranslationRequestModel( text: choreographer.itController.sourceText!, tgtLang: choreographer.l2LangCode!, @@ -127,7 +117,7 @@ class AlternativeTranslator { } similarityResponse = await SimilarityRepo.get( - accessToken: accessToken, + accessToken: await choreographer.accessToken, request: SimilarityRequestModel( benchmark: results.bestTranslation, toCompare: [userTranslation!], diff --git a/lib/pangea/choreographer/widgets/it_feedback_card.dart b/lib/pangea/choreographer/widgets/it_feedback_card.dart index 4285f4dca..9cada0548 100644 --- a/lib/pangea/choreographer/widgets/it_feedback_card.dart +++ b/lib/pangea/choreographer/widgets/it_feedback_card.dart @@ -72,10 +72,8 @@ class ITFeedbackCardController extends State { setState(() { isTranslating = true; }); - - final String accessToken = await controller.userController.accessToken; FullTextTranslationRepo.translate( - accessToken: accessToken, + accessToken: await controller.userController.accessToken, request: FullTextTranslationRequestModel( text: res!.text, tgtLang: controller.languageController.userL1?.langCode ?? diff --git a/lib/pangea/controllers/contextual_definition_controller.dart b/lib/pangea/controllers/contextual_definition_controller.dart index 68e075d97..d423c9b38 100644 --- a/lib/pangea/controllers/contextual_definition_controller.dart +++ b/lib/pangea/controllers/contextual_definition_controller.dart @@ -49,10 +49,9 @@ class ContextualDefinitionController { ContextualDefinitionRequestModel request, ) async { try { - final accessToken = await _pangeaController.userController.accessToken; final ContextualDefinitionResponseModel res = await _ContextualDefinitionRepo.define( - accessToken, + await _pangeaController.userController.accessToken, request, ); return res; diff --git a/lib/pangea/controllers/it_feedback_controller.dart b/lib/pangea/controllers/it_feedback_controller.dart index 74aee21de..ffef9123f 100644 --- a/lib/pangea/controllers/it_feedback_controller.dart +++ b/lib/pangea/controllers/it_feedback_controller.dart @@ -51,10 +51,8 @@ class ITFeedbackController { ITFeedbackRequestModel request, ) async { try { - final String accessToken = - await _pangeaController.userController.accessToken; final ITFeedbackResponseModel res = await _ITFeedbackRepo.get( - accessToken, + await _pangeaController.userController.accessToken, request, ); return res; diff --git a/lib/pangea/controllers/language_detection_controller.dart b/lib/pangea/controllers/language_detection_controller.dart index ecbdea47d..a3e07b0a3 100644 --- a/lib/pangea/controllers/language_detection_controller.dart +++ b/lib/pangea/controllers/language_detection_controller.dart @@ -125,7 +125,7 @@ class LanguageDetectionController { _cacheClearTimer?.cancel(); } - Future detectLanguage( + Future detectLanguage( String fullText, String? userL2, String? userL1, @@ -138,16 +138,14 @@ class LanguageDetectionController { return get(params); } - Future get( + Future get( LanguageDetectionRequest params, ) async { if (_cache.containsKey(params)) { return _cache[params]!.data; } else { - final String accessToken = - await _pangeaController.userController.accessToken; final Future response = _fetchResponse( - accessToken, + await _pangeaController.userController.accessToken, params, ); _cache[params] = _LanguageDetectionCacheItem(data: response); diff --git a/lib/pangea/controllers/message_data_controller.dart b/lib/pangea/controllers/message_data_controller.dart index aa0c77b9d..7b3a3e6d2 100644 --- a/lib/pangea/controllers/message_data_controller.dart +++ b/lib/pangea/controllers/message_data_controller.dart @@ -43,6 +43,7 @@ class MessageDataController extends BaseController { TokensRequestModel req, ) async { final accessToken = await _pangeaController.userController.accessToken; + final TokensResponseModel igcTextData = await TokensRepo.tokenize(accessToken, req); @@ -192,12 +193,9 @@ class MessageDataController extends BaseController { ); try { - final String accessToken = - await _pangeaController.userController.accessToken; - final FullTextTranslationResponseModel res = await FullTextTranslationRepo.translate( - accessToken: accessToken, + accessToken: await _pangeaController.userController.accessToken, request: req, ); diff --git a/lib/pangea/controllers/my_analytics_controller.dart b/lib/pangea/controllers/my_analytics_controller.dart index 8fa8989b1..058bad359 100644 --- a/lib/pangea/controllers/my_analytics_controller.dart +++ b/lib/pangea/controllers/my_analytics_controller.dart @@ -204,24 +204,24 @@ class MyAnalyticsController { Completer? _updateCompleter; Future updateAnalytics() async { - // if (!(_updateCompleter?.isCompleted ?? true)) { - // await _updateCompleter!.future; - // return; - // } - // _updateCompleter = Completer(); - // try { - // await _updateAnalytics(); - // clearMessagesSinceUpdate(); - // } catch (err, s) { - // ErrorHandler.logError( - // e: err, - // m: "Failed to update analytics", - // s: s, - // ); - // } finally { - // _updateCompleter?.complete(); - // _updateCompleter = null; - // } + if (!(_updateCompleter?.isCompleted ?? true)) { + await _updateCompleter!.future; + return; + } + _updateCompleter = Completer(); + try { + await _updateAnalytics(); + clearMessagesSinceUpdate(); + } catch (err, s) { + ErrorHandler.logError( + e: err, + m: "Failed to update analytics", + s: s, + ); + } finally { + _updateCompleter?.complete(); + _updateCompleter = null; + } } String? get userL2 => _pangeaController.languageController.activeL2Code(); diff --git a/lib/pangea/controllers/speech_to_text_controller.dart b/lib/pangea/controllers/speech_to_text_controller.dart index 1b151aca0..67462bcef 100644 --- a/lib/pangea/controllers/speech_to_text_controller.dart +++ b/lib/pangea/controllers/speech_to_text_controller.dart @@ -44,7 +44,7 @@ class SpeechToTextController { _cacheClearTimer?.cancel(); } - Future get( + Future get( SpeechToTextRequestModel requestModel, ) async { final int cacheKey = requestModel.hashCode; @@ -52,11 +52,8 @@ class SpeechToTextController { if (_cache.containsKey(cacheKey)) { return _cache[cacheKey]!.data; } else { - final String accessToken = - await _pangeaController.userController.accessToken; - final Future response = _fetchResponse( - accessToken: accessToken, + accessToken: await _pangeaController.userController.accessToken, requestModel: requestModel, ); _cache[cacheKey] = _SpeechToTextCacheItem(data: response); diff --git a/lib/pangea/controllers/text_to_speech_controller.dart b/lib/pangea/controllers/text_to_speech_controller.dart index 25b888e05..b34092618 100644 --- a/lib/pangea/controllers/text_to_speech_controller.dart +++ b/lib/pangea/controllers/text_to_speech_controller.dart @@ -93,16 +93,14 @@ class TextToSpeechController { _cacheClearTimer?.cancel(); } - Future get( + Future get( TextToSpeechRequest params, ) async { if (_cache.containsKey(params)) { return _cache[params]!.data; } else { - final String accessToken = - await _pangeaController.userController.accessToken; final Future response = _fetchResponse( - accessToken, + await _pangeaController.userController.accessToken, params, ); _cache[params] = _TextToSpeechCacheItem(data: response); diff --git a/lib/pangea/controllers/word_net_controller.dart b/lib/pangea/controllers/word_net_controller.dart index 18c3290a9..b7a8d287e 100644 --- a/lib/pangea/controllers/word_net_controller.dart +++ b/lib/pangea/controllers/word_net_controller.dart @@ -31,7 +31,7 @@ class WordController extends BaseController { ), ); - Future getWordDataGlobal({ + Future getWordDataGlobal({ required String word, required String fullText, required String? userL1, @@ -53,10 +53,8 @@ class WordController extends BaseController { if (local != null) return local; - final String accessToken = - await _pangeaController.userController.accessToken; final WordData remote = await WordRepo.getWordNetData( - accessToken: accessToken, + accessToken: await _pangeaController.userController.accessToken, fullText: fullText, word: word, userL1: userL1, diff --git a/lib/pangea/matrix_event_wrappers/pangea_message_event.dart b/lib/pangea/matrix_event_wrappers/pangea_message_event.dart index 06f34cf1f..334c0fa78 100644 --- a/lib/pangea/matrix_event_wrappers/pangea_message_event.dart +++ b/lib/pangea/matrix_event_wrappers/pangea_message_event.dart @@ -88,7 +88,7 @@ class PangeaMessageEvent { return _latestEdit; } - Future getMatrixAudioFile( + Future getMatrixAudioFile( String langCode, BuildContext context, ) async { @@ -102,15 +102,11 @@ class PangeaMessageEvent { langCode: langCode, ); - final TextToSpeechResponse? response = + final TextToSpeechResponse response = await MatrixState.pangeaController.textToSpeech.get( params, ); - if (response == null) { - return null; - } - final audioBytes = base64.decode(response.audioContent); final eventIdParam = _event.eventId; final fileName = @@ -181,13 +177,10 @@ class PangeaMessageEvent { langCode: langCode, ); - final TextToSpeechResponse? response = + final TextToSpeechResponse response = await MatrixState.pangeaController.textToSpeech.get( params, ); - if (response == null) { - return null; - } final audioBytes = base64.decode(response.audioContent); @@ -330,7 +323,7 @@ class PangeaMessageEvent { debugPrint("mimeType ${matrixFile.mimeType}"); debugPrint("encoding ${mimeTypeToAudioEncoding(matrixFile.mimeType)}"); - final SpeechToTextModel? response = + final SpeechToTextModel response = await MatrixState.pangeaController.speechToText.get( SpeechToTextRequestModel( audioContent: matrixFile.bytes, @@ -346,10 +339,6 @@ class PangeaMessageEvent { ), ); - if (response == null) { - return null; - } - _representations?.add( RepresentationEvent( timeline: timeline, diff --git a/lib/pangea/repo/span_data_repo.dart b/lib/pangea/repo/span_data_repo.dart index cc5c0640a..7073581a1 100644 --- a/lib/pangea/repo/span_data_repo.dart +++ b/lib/pangea/repo/span_data_repo.dart @@ -13,7 +13,7 @@ import '../network/urls.dart'; class SpanDataRepo { static Future getSpanDetails( - String accessToken, { + String? accessToken, { required SpanDetailsRepoReqAndRes request, }) async { final Requests req = Requests( @@ -150,4 +150,4 @@ SpanDetailsRepoReqAndRes get mockReponseWithChoices { // res.span.choices![1].selected = true; // res.span.message = "Conjugation error"; // return res; -// } +// } \ No newline at end of file diff --git a/lib/pangea/repo/topic_data_repo.dart b/lib/pangea/repo/topic_data_repo.dart index 7a4ce049f..06abf6929 100644 --- a/lib/pangea/repo/topic_data_repo.dart +++ b/lib/pangea/repo/topic_data_repo.dart @@ -11,7 +11,7 @@ import '../network/urls.dart'; /// accepts ChatTopic and calls an API for a list of Lemma class TopicDataRepo { static Future generate( - String accessToken, { + String? accessToken, { required TopicDataRequest request, }) async { final Requests req = Requests( diff --git a/lib/pangea/widgets/chat/message_audio_card.dart b/lib/pangea/widgets/chat/message_audio_card.dart index cfae4282a..5c1f8e67b 100644 --- a/lib/pangea/widgets/chat/message_audio_card.dart +++ b/lib/pangea/widgets/chat/message_audio_card.dart @@ -46,6 +46,7 @@ class MessageAudioCardState extends State { await widget.messageEvent.getMatrixAudioFile(langCode, context); if (mounted) setState(() => _isLoading = false); } catch (e, _) { + debugPrint(StackTrace.current.toString()); if (!mounted) return; setState(() => _isLoading = false); ScaffoldMessenger.of(context).showSnackBar(