From e3416c967f2b961644f9815fc37ff45341fb93e6 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Wed, 13 Nov 2024 11:27:05 -0500 Subject: [PATCH] pass up audio card error to practice activity card --- lib/pangea/widgets/chat/message_audio_card.dart | 3 +++ .../widgets/practice_activity/multiple_choice_activity.dart | 3 +++ .../widgets/practice_activity/practice_activity_card.dart | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/lib/pangea/widgets/chat/message_audio_card.dart b/lib/pangea/widgets/chat/message_audio_card.dart index 5b6f9b539..8b1f86091 100644 --- a/lib/pangea/widgets/chat/message_audio_card.dart +++ b/lib/pangea/widgets/chat/message_audio_card.dart @@ -22,6 +22,7 @@ class MessageAudioCard extends StatefulWidget { final PangeaTokenText? selection; final TtsController tts; final Function(bool) setIsPlayingAudio; + final VoidCallback? onError; const MessageAudioCard({ super.key, @@ -30,6 +31,7 @@ class MessageAudioCard extends StatefulWidget { required this.tts, required this.setIsPlayingAudio, this.selection, + this.onError, }); @override @@ -163,6 +165,7 @@ class MessageAudioCardState extends State { if (mounted) setState(() => _isLoading = false); } catch (e, s) { debugger(when: kDebugMode); + widget.onError?.call(); debugPrint(StackTrace.current.toString()); if (!mounted) return; setState(() => _isLoading = false); diff --git a/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart b/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart index 114079cfa..e685d7272 100644 --- a/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart +++ b/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart @@ -22,6 +22,7 @@ class MultipleChoiceActivity extends StatefulWidget { final PracticeActivityModel currentActivity; final TtsController tts; final String eventID; + final VoidCallback? onError; const MultipleChoiceActivity({ super.key, @@ -29,6 +30,7 @@ class MultipleChoiceActivity extends StatefulWidget { required this.currentActivity, required this.tts, required this.eventID, + this.onError, }); @override @@ -143,6 +145,7 @@ class MultipleChoiceActivityState extends State { tts: widget.practiceCardController.widget.overlayController.tts, setIsPlayingAudio: widget.practiceCardController.widget .overlayController.setIsPlayingAudio, + onError: widget.onError, ), ChoicesArray( isLoading: false, diff --git a/lib/pangea/widgets/practice_activity/practice_activity_card.dart b/lib/pangea/widgets/practice_activity/practice_activity_card.dart index 2d32e036c..c412ac1dc 100644 --- a/lib/pangea/widgets/practice_activity/practice_activity_card.dart +++ b/lib/pangea/widgets/practice_activity/practice_activity_card.dart @@ -306,6 +306,10 @@ class PracticeActivityCardState extends State { } } + void _onDownstreamError() { + _setPracticeActivity(null); + } + /// clear the current activity, record, and selection /// fetch a new activity, including the offending activity in the request Future submitFeedback(String feedback) async { @@ -373,6 +377,7 @@ class PracticeActivityCardState extends State { currentActivity: currentActivity!, tts: widget.ttsController, eventID: widget.pangeaMessageEvent.eventId, + onError: _onDownstreamError, ); } }