fix: update logic for checking if short lang code TTS is available (#1946)

This commit is contained in:
ggurdin 2025-02-26 13:46:02 -05:00 committed by GitHub
parent 907ad15f79
commit 2a9f3a6e96
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 19 additions and 9 deletions

View file

@ -130,6 +130,11 @@ class SettingsLearningController extends State<SettingsLearning> {
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<SettingsLearning> {
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<SettingsLearning> {
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;

View file

@ -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));
}