From 2a9f3a6e966b0697086c138e0c2301210f766441 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Wed, 26 Feb 2025 13:46:02 -0500 Subject: [PATCH] fix: update logic for checking if short lang code TTS is available (#1946) --- .../pages/settings_learning.dart | 11 +++++++++-- .../toolbar/controllers/tts_controller.dart | 17 ++++++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/pangea/learning_settings/pages/settings_learning.dart b/lib/pangea/learning_settings/pages/settings_learning.dart index a93c681dc..3c26fd9e7 100644 --- a/lib/pangea/learning_settings/pages/settings_learning.dart +++ b/lib/pangea/learning_settings/pages/settings_learning.dart @@ -130,6 +130,11 @@ class SettingsLearningController extends State { if (mounted) setState(() {}); } + LanguageModel? get _targetLanguage => + _profile.userSettings.targetLanguage != null + ? PangeaLanguage.byLangCode(_profile.userSettings.targetLanguage!) + : null; + bool getToolSetting(ToolSetting toolSetting) { final toolSettings = _profile.toolSettings; switch (toolSetting) { @@ -145,7 +150,8 @@ class SettingsLearningController extends State { return toolSettings.autoIGC; case ToolSetting.enableTTS: return _profile.userSettings.targetLanguage != null && - tts.isLanguageSupported(_profile.userSettings.targetLanguage!) && + _targetLanguage != null && + tts.isLanguageSupported(_targetLanguage!) && toolSettings.enableTTS; case ToolSetting.enableAutocorrect: return toolSettings.enableAutocorrect; @@ -154,7 +160,8 @@ class SettingsLearningController extends State { bool get isTTSSupported => _profile.userSettings.targetLanguage != null && - tts.isLanguageSupported(_profile.userSettings.targetLanguage!); + _targetLanguage != null && + tts.isLanguageSupported(_targetLanguage!); LanguageModel? get selectedSourceLanguage { return userL1 ?? pangeaController.languageController.systemLanguage; diff --git a/lib/pangea/toolbar/controllers/tts_controller.dart b/lib/pangea/toolbar/controllers/tts_controller.dart index 476ba26a5..8d7bb5444 100644 --- a/lib/pangea/toolbar/controllers/tts_controller.dart +++ b/lib/pangea/toolbar/controllers/tts_controller.dart @@ -12,6 +12,7 @@ import 'package:text_to_speech/text_to_speech.dart'; import 'package:fluffychat/pangea/common/utils/error_handler.dart'; import 'package:fluffychat/pangea/instructions/instructions_enum.dart'; import 'package:fluffychat/pangea/instructions/instructions_show_popup.dart'; +import 'package:fluffychat/pangea/learning_settings/models/language_model.dart'; import 'package:fluffychat/pangea/toolbar/widgets/missing_voice_button.dart'; import 'package:fluffychat/pangea/user/controllers/user_controller.dart'; import 'package:fluffychat/utils/platform_infos.dart'; @@ -240,12 +241,14 @@ class TtsController { } } - bool get _isL2FullySupported => - _availableLangCodes.contains(l2LangCode) || - (l2LangCodeShort != null && - _availableLangCodes.any((lang) => lang.startsWith(l2LangCodeShort!))); + bool get _isL2FullySupported { + return _availableLangCodes.contains(l2LangCode) || + (l2LangCodeShort != null && + _availableLangCodes + .any((lang) => lang.startsWith(l2LangCodeShort!))); + } - bool isLanguageSupported(String langCode) => - _availableLangCodes.contains(langCode) || - _availableLangCodes.any((lang) => lang.startsWith(langCode)); + bool isLanguageSupported(LanguageModel lang) => + _availableLangCodes.contains(lang.langCode) || + _availableLangCodes.any((l) => l.startsWith(lang.langCodeShort)); }