diff --git a/lib/pangea/common/controllers/pangea_controller.dart b/lib/pangea/common/controllers/pangea_controller.dart index 7dc6e8e38..71ee7cb44 100644 --- a/lib/pangea/common/controllers/pangea_controller.dart +++ b/lib/pangea/common/controllers/pangea_controller.dart @@ -22,6 +22,7 @@ import 'package:fluffychat/pangea/spaces/controllers/space_controller.dart'; import 'package:fluffychat/pangea/subscription/controllers/subscription_controller.dart'; import 'package:fluffychat/pangea/toolbar/controllers/speech_to_text_controller.dart'; import 'package:fluffychat/pangea/toolbar/controllers/text_to_speech_controller.dart'; +import 'package:fluffychat/pangea/toolbar/controllers/tts_controller.dart'; import 'package:fluffychat/pangea/user/controllers/permissions_controller.dart'; import 'package:fluffychat/pangea/user/controllers/user_controller.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -76,6 +77,8 @@ class PangeaController { getAnalytics.initialize(); subscriptionController.initialize(); setPangeaPushRules(); + + TtsController.setAvailableLanguages(); } /// Initialize controllers diff --git a/lib/pangea/toolbar/controllers/tts_controller.dart b/lib/pangea/toolbar/controllers/tts_controller.dart index 82401e4fe..1550dc5bc 100644 --- a/lib/pangea/toolbar/controllers/tts_controller.dart +++ b/lib/pangea/toolbar/controllers/tts_controller.dart @@ -13,7 +13,6 @@ import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/events/audio_player.dart'; -import 'package:fluffychat/pangea/common/utils/error_handler.dart'; import 'package:fluffychat/pangea/events/models/pangea_token_text_model.dart'; import 'package:fluffychat/pangea/instructions/instructions_enum.dart'; import 'package:fluffychat/pangea/instructions/instructions_show_popup.dart'; @@ -21,14 +20,13 @@ import 'package:fluffychat/pangea/learning_settings/constants/language_constants import 'package:fluffychat/pangea/toolbar/controllers/text_to_speech_controller.dart'; import 'package:fluffychat/widgets/matrix.dart'; -class TtsController { - static void initialize() { - setAvailableLanguages(); - } +import 'package:fluffychat/pangea/common/utils/error_handler.dart' + as error_handler; +class TtsController { static List _availableLangCodes = []; - static final flutter_tts.FlutterTts _tts = flutter_tts.FlutterTts(); + static final _tts = flutter_tts.FlutterTts(); static final StreamController loadingChoreoStream = StreamController.broadcast(); @@ -36,7 +34,7 @@ class TtsController { static Future _onError(dynamic message) async { if (message != 'canceled' && message != 'interrupted') { - ErrorHandler.logError( + error_handler.ErrorHandler.logError( e: 'TTS error', data: { 'message': message, @@ -51,7 +49,7 @@ class TtsController { await _setAvailableBaseLanguages(); } catch (e, s) { debugger(when: kDebugMode); - ErrorHandler.logError( + error_handler.ErrorHandler.logError( e: e, s: s, data: {}, @@ -106,7 +104,7 @@ class TtsController { audioPlayer?.stop(); if (result != 1) { - ErrorHandler.logError( + error_handler.ErrorHandler.logError( m: 'Unexpected result from tts.stop', data: { 'result': result, @@ -115,7 +113,7 @@ class TtsController { } } catch (e, s) { debugger(when: kDebugMode); - ErrorHandler.logError( + error_handler.ErrorHandler.logError( e: e, s: s, data: {}, @@ -138,6 +136,10 @@ class TtsController { final prevOnStop = _onStop; _onStop = onStop; + if (_availableLangCodes.isEmpty) { + await setAvailableLanguages(); + } + _tts.setErrorHandler((message) { _onError(message); prevOnStop?.call(); @@ -240,7 +242,7 @@ class TtsController { // } } catch (e, s) { debugger(when: kDebugMode); - ErrorHandler.logError( + error_handler.ErrorHandler.logError( e: e, s: s, data: { @@ -275,7 +277,7 @@ class TtsController { ), ); } catch (e, s) { - ErrorHandler.logError( + error_handler.ErrorHandler.logError( e: e, s: s, data: { @@ -301,7 +303,7 @@ class TtsController { ); await audioPlayer!.play(); } catch (e, s) { - ErrorHandler.logError( + error_handler.ErrorHandler.logError( e: 'Error playing audio', s: s, data: { diff --git a/lib/widgets/matrix.dart b/lib/widgets/matrix.dart index 7dd9eed11..068fafef0 100644 --- a/lib/widgets/matrix.dart +++ b/lib/widgets/matrix.dart @@ -21,7 +21,6 @@ import 'package:url_launcher/url_launcher_string.dart'; import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pangea/common/controllers/pangea_controller.dart'; import 'package:fluffychat/pangea/common/utils/any_state_holder.dart'; -import 'package:fluffychat/pangea/toolbar/controllers/tts_controller.dart'; import 'package:fluffychat/utils/client_manager.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; import 'package:fluffychat/utils/platform_infos.dart'; @@ -260,7 +259,6 @@ class MatrixState extends State with WidgetsBindingObserver { ), ); pangeaController = PangeaController(matrix: widget, matrixState: this); - TtsController.initialize(); // Pangea# }