From 7756f2fe9fa4f53324471d1a7107746b8b617fda Mon Sep 17 00:00:00 2001 From: ggurdin Date: Mon, 16 Jun 2025 16:32:13 -0400 Subject: [PATCH] chore: clean up vocab analytics details popup --- lib/main.dart | 17 +-- .../vocab_analytics_details_view.dart | 30 +++-- .../models/language_model.dart | 3 +- .../phonetic_transcription_widget.dart | 108 +----------------- 4 files changed, 28 insertions(+), 130 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index b7df5a61c..d33e62b41 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:get_storage/get_storage.dart'; +import 'package:matrix/matrix.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pangea/common/config/environment.dart'; import 'package:fluffychat/pangea/common/utils/error_handler.dart'; @@ -6,14 +15,6 @@ import 'package:fluffychat/pangea/common/utils/firebase_analytics.dart'; import 'package:fluffychat/pangea/learning_settings/utils/p_language_store.dart'; import 'package:fluffychat/utils/client_manager.dart'; import 'package:fluffychat/utils/platform_infos.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_dotenv/flutter_dotenv.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:get_storage/get_storage.dart'; -import 'package:matrix/matrix.dart'; -import 'package:shared_preferences/shared_preferences.dart'; - import 'config/setting_keys.dart'; import 'utils/background_push.dart'; import 'widgets/fluffy_chat_app.dart'; diff --git a/lib/pangea/analytics_details_popup/vocab_analytics_details_view.dart b/lib/pangea/analytics_details_popup/vocab_analytics_details_view.dart index c00fb1176..d472a64b1 100644 --- a/lib/pangea/analytics_details_popup/vocab_analytics_details_view.dart +++ b/lib/pangea/analytics_details_popup/vocab_analytics_details_view.dart @@ -1,4 +1,7 @@ +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; + import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pangea/analytics_details_popup/analytics_details_popup_content.dart'; import 'package:fluffychat/pangea/analytics_misc/construct_use_model.dart'; @@ -9,10 +12,10 @@ import 'package:fluffychat/pangea/morphs/get_grammar_copy.dart'; import 'package:fluffychat/pangea/morphs/morph_features_enum.dart'; import 'package:fluffychat/pangea/morphs/morph_icon.dart'; import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_widget.dart'; +import 'package:fluffychat/pangea/toolbar/utils/shrinkable_text.dart'; import 'package:fluffychat/pangea/toolbar/widgets/practice_activity/word_text_with_audio_button.dart'; import 'package:fluffychat/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; /// Displays information about selected lemma, and its usage class VocabDetailsView extends StatelessWidget { @@ -52,16 +55,17 @@ class VocabDetailsView extends StatelessWidget { return AnalyticsDetailsViewContent( title: Column( - crossAxisAlignment: CrossAxisAlignment.start, children: [ - WordTextWithAudioButton( - text: _construct.lemma, - style: Theme.of(context).textTheme.headlineLarge?.copyWith( - color: textColor, - ), - iconSize: _iconSize, - uniqueID: "${_construct.lemma}-${_construct.category}", - langCode: _userL2!, + LayoutBuilder( + builder: (context, constraints) { + return ShrinkableText( + text: _construct.lemma, + maxWidth: constraints.maxWidth - 40.0, + style: Theme.of(context).textTheme.headlineLarge?.copyWith( + color: textColor, + ), + ); + }, ), if (MatrixState.pangeaController.languageController.userL2 != null) Padding( @@ -81,12 +85,6 @@ class VocabDetailsView extends StatelessWidget { ), subtitle: Column( children: [ - if (_userL1 != null && _userL2 != null) - PhoneticTranscription( - text: _construct.lemma, - l1: _userL1!, - l2: _userL2!, - ), Row( mainAxisSize: MainAxisSize.min, spacing: 8.0, diff --git a/lib/pangea/learning_settings/models/language_model.dart b/lib/pangea/learning_settings/models/language_model.dart index 6d6a03380..1e1ef69b9 100644 --- a/lib/pangea/learning_settings/models/language_model.dart +++ b/lib/pangea/learning_settings/models/language_model.dart @@ -1,7 +1,8 @@ +import 'package:flutter/material.dart'; + import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pangea/learning_settings/constants/language_constants.dart'; import 'package:fluffychat/pangea/learning_settings/enums/l2_support_enum.dart'; -import 'package:flutter/material.dart'; class LanguageModel { final String langCode; diff --git a/lib/pangea/phonetic_transcription/phonetic_transcription_widget.dart b/lib/pangea/phonetic_transcription/phonetic_transcription_widget.dart index abf0c8bc2..d55695dc2 100644 --- a/lib/pangea/phonetic_transcription/phonetic_transcription_widget.dart +++ b/lib/pangea/phonetic_transcription/phonetic_transcription_widget.dart @@ -1,36 +1,7 @@ -<<<<<<< Updated upstream -import 'package:flutter/material.dart'; - -import 'package:fluffychat/l10n/l10n.dart'; -import 'package:fluffychat/pangea/common/utils/error_handler.dart'; -import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_repo.dart'; -import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_request.dart'; -import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_response.dart'; - -class PhoneticTranscription extends StatefulWidget { - final String text; - final String l1; - final String l2; - - const PhoneticTranscription({ - super.key, - required this.text, - required this.l1, - required this.l2, - }); - - @override - State createState() => PhoneticTranscriptionState(); -} - -class PhoneticTranscriptionState extends State { - bool _loading = false; - String? error; - - PhoneticTranscriptionResponse? _response; -======= import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pangea/common/utils/error_handler.dart'; import 'package:fluffychat/pangea/events/models/pangea_token_text_model.dart'; @@ -39,7 +10,6 @@ import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_ import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_request.dart'; import 'package:fluffychat/pangea/toolbar/controllers/tts_controller.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import 'package:flutter/material.dart'; class PhoneticTranscriptionWidget extends StatefulWidget { final String text; @@ -67,53 +37,10 @@ class _PhoneticTranscriptionWidgetState bool _isPlaying = false; bool _isLoading = false; late final StreamSubscription _loadingChoreoSubscription; ->>>>>>> Stashed changes @override void initState() { super.initState(); -<<<<<<< Updated upstream - _fetchPhoneticTranscription(); - } - - @override - void didUpdateWidget(covariant PhoneticTranscription oldWidget) { - super.didUpdateWidget(oldWidget); - if (oldWidget.text != widget.text || - oldWidget.l1 != widget.l1 || - oldWidget.l2 != widget.l2) { - _fetchPhoneticTranscription(); - } - } - - Future _fetchPhoneticTranscription() async { - final PhoneticTranscriptionRequest request = PhoneticTranscriptionRequest( - l1: widget.l1, - l2: widget.l2, - content: widget.text, - ); - - try { - setState(() { - _loading = true; - error = null; - }); - - _response = await PhoneticTranscriptionRepo.get(request); - } catch (e, s) { - ErrorHandler.logError( - e: e, - s: s, - data: request.toJson(), - ); - error = e.toString(); - } finally { - if (mounted) { - setState(() { - _loading = false; - }); - } -======= _transcriptionFuture = _fetchTranscription(); _loadingChoreoSubscription = TtsController.loadingChoreoStream.stream.listen((val) { @@ -169,39 +96,11 @@ class _PhoneticTranscriptionWidgetState if (mounted) setState(() => _isPlaying = false); }, ); ->>>>>>> Stashed changes } } @override Widget build(BuildContext context) { -<<<<<<< Updated upstream - if (error != null) { - return Row( - mainAxisSize: MainAxisSize.min, - children: [ - Icon( - Icons.error_outline, - color: Theme.of(context).colorScheme.error, - size: 16.0, - ), - const SizedBox(width: 8), - Text( - L10n.of(context).phoneticTranscriptionError, - style: Theme.of(context).textTheme.bodyLarge, - ), - ], - ); - } - - if (_loading || _response == null) { - return const Center(child: CircularProgressIndicator.adaptive()); - } - - return Text( - 'Phonetic transcription for "${widget.text}" in ${widget.l2}', - style: Theme.of(context).textTheme.bodyLarge, -======= return FutureBuilder( future: _transcriptionFuture, builder: (context, snapshot) { @@ -224,7 +123,7 @@ class _PhoneticTranscriptionWidgetState mainAxisSize: MainAxisSize.min, children: [ Text( - transcription.isNotEmpty ? transcription : widget.text, + "/${transcription.isNotEmpty ? transcription : widget.text}/", style: widget.style ?? Theme.of(context).textTheme.bodyMedium, ), @@ -253,7 +152,6 @@ class _PhoneticTranscriptionWidgetState ), ); }, ->>>>>>> Stashed changes ); } }