From 50af914f8625a535cd6f8809ebfaaa4cc52124e4 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Fri, 7 Mar 2025 07:42:44 -0500 Subject: [PATCH] chore: fix app freezing in release mode (#2067) --- .../word_emoji_choice.dart | 95 +++++++++---------- .../word_zoom/lemma_meaning_widget.dart | 37 ++++---- 2 files changed, 67 insertions(+), 65 deletions(-) diff --git a/lib/pangea/toolbar/reading_assistance_input_row/word_emoji_choice.dart b/lib/pangea/toolbar/reading_assistance_input_row/word_emoji_choice.dart index d6b4a1338..47a7dd6d0 100644 --- a/lib/pangea/toolbar/reading_assistance_input_row/word_emoji_choice.dart +++ b/lib/pangea/toolbar/reading_assistance_input_row/word_emoji_choice.dart @@ -77,57 +77,54 @@ class WordEmojiChoiceState extends State { @override Widget build(BuildContext context) { - return Expanded( - child: SingleChildScrollView( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - mainAxisSize: MainAxisSize.max, - children: [ - FutureBuilder( - future: widget.token.getEmojiChoices(), - builder: (context, snapshot) { - if (snapshot.hasError) { - return Text(L10n.of(context).oopsSomethingWentWrong); - } + return SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.max, + children: [ + FutureBuilder( + future: widget.token.getEmojiChoices(), + builder: (context, snapshot) { + if (snapshot.hasError) { + return Text(L10n.of(context).oopsSomethingWentWrong); + } - if (snapshot.connectionState == ConnectionState.waiting || - snapshot.data == null) { - return const ItShimmer(originalSpan: "😀", fontSize: 26); - } + if (snapshot.connectionState == ConnectionState.waiting || + snapshot.data == null) { + return const ItShimmer(originalSpan: "😀", fontSize: 26); + } - return ChoicesArray( - isLoading: - snapshot.connectionState == ConnectionState.waiting, - choices: snapshot.data! - .map( - (emoji) => Choice( - color: localSelected == emoji - ? AppConfig.primaryColor - : Colors.transparent, - text: emoji, - isGold: localSelected == emoji, - ), - ) - .toList(), - onPressed: (emoji, index) => onChoice(context, emoji), - originalSpan: "😀", - uniqueKeyForLayerLink: (int index) => "emojiChoice$index", - selectedChoiceIndex: snapshot.data!.indexWhere( - (element) => element == widget.token.getEmoji(), - ), - tts: null, - fontSize: 26, - enableMultiSelect: true, - isActive: true, - overflowMode: OverflowMode.horizontalScroll, - ); - }, - ), - const InstructionsInlineTooltip( - instructionsEnum: InstructionsEnum.chooseEmoji, - ), - ], - ), + return ChoicesArray( + isLoading: snapshot.connectionState == ConnectionState.waiting, + choices: snapshot.data! + .map( + (emoji) => Choice( + color: localSelected == emoji + ? AppConfig.primaryColor + : Colors.transparent, + text: emoji, + isGold: localSelected == emoji, + ), + ) + .toList(), + onPressed: (emoji, index) => onChoice(context, emoji), + originalSpan: "😀", + uniqueKeyForLayerLink: (int index) => "emojiChoice$index", + selectedChoiceIndex: snapshot.data!.indexWhere( + (element) => element == widget.token.getEmoji(), + ), + tts: null, + fontSize: 26, + enableMultiSelect: true, + isActive: true, + overflowMode: OverflowMode.horizontalScroll, + ); + }, + ), + const InstructionsInlineTooltip( + instructionsEnum: InstructionsEnum.chooseEmoji, + ), + ], ), ); } diff --git a/lib/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart b/lib/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart index 380a1ffaa..d3c039573 100644 --- a/lib/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart +++ b/lib/pangea/toolbar/widgets/word_zoom/lemma_meaning_widget.dart @@ -181,25 +181,30 @@ class LemmaMeaningWidgetState extends State { ); } - return Flexible( - child: Tooltip( - triggerMode: TooltipTriggerMode.tap, - message: L10n.of(context).doubleClickToEdit, - child: GestureDetector( - onLongPress: () => _toggleEditMode(true), - onDoubleTap: () => _toggleEditMode(true), - child: RichText( - text: TextSpan( - style: widget.style, - children: [ - if (widget.leading != null) widget.leading!, - if (widget.leading != null) const TextSpan(text: ' '), - TextSpan(text: snapshot.data!.meaning), - ], + return Row( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: Tooltip( + triggerMode: TooltipTriggerMode.tap, + message: L10n.of(context).doubleClickToEdit, + child: GestureDetector( + onLongPress: () => _toggleEditMode(true), + onDoubleTap: () => _toggleEditMode(true), + child: RichText( + text: TextSpan( + style: widget.style, + children: [ + if (widget.leading != null) widget.leading!, + if (widget.leading != null) const TextSpan(text: ' '), + TextSpan(text: snapshot.data!.meaning), + ], + ), + ), ), ), ), - ), + ], ); }, );