From da8b99b78b5475c76e6490e6c2bb4c0a472e6e54 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Tue, 20 Jan 2026 15:02:03 -0500 Subject: [PATCH] fix: show error message when not enough data for practice --- .../analytics_practice_session_repo.dart | 6 ++++++ lib/pangea/analytics_practice/analytics_practice_view.dart | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/pangea/analytics_practice/analytics_practice_session_repo.dart b/lib/pangea/analytics_practice/analytics_practice_session_repo.dart index 378dc4486..d50407c1b 100644 --- a/lib/pangea/analytics_practice/analytics_practice_session_repo.dart +++ b/lib/pangea/analytics_practice/analytics_practice_session_repo.dart @@ -15,6 +15,8 @@ import 'package:fluffychat/pangea/practice_activities/message_activity_request.d import 'package:fluffychat/pangea/practice_activities/practice_target.dart'; import 'package:fluffychat/widgets/matrix.dart'; +class InsufficientDataException implements Exception {} + class AnalyticsPracticeSessionRepo { static Future get( ConstructTypeEnum type, @@ -67,6 +69,10 @@ class AnalyticsPracticeSessionRepo { } } + if (targets.isEmpty) { + throw InsufficientDataException(); + } + final session = AnalyticsPracticeSessionModel( userL1: MatrixState.pangeaController.userController.userL1!.langCode, userL2: MatrixState.pangeaController.userController.userL2!.langCode, diff --git a/lib/pangea/analytics_practice/analytics_practice_view.dart b/lib/pangea/analytics_practice/analytics_practice_view.dart index 6cbef9eae..e5e57404b 100644 --- a/lib/pangea/analytics_practice/analytics_practice_view.dart +++ b/lib/pangea/analytics_practice/analytics_practice_view.dart @@ -5,6 +5,7 @@ import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pangea/analytics_misc/construct_type_enum.dart'; import 'package:fluffychat/pangea/analytics_practice/analytics_practice_page.dart'; import 'package:fluffychat/pangea/analytics_practice/analytics_practice_session_model.dart'; +import 'package:fluffychat/pangea/analytics_practice/analytics_practice_session_repo.dart'; import 'package:fluffychat/pangea/analytics_practice/choice_cards/audio_choice_card.dart'; import 'package:fluffychat/pangea/analytics_practice/choice_cards/game_choice_card.dart'; import 'package:fluffychat/pangea/analytics_practice/choice_cards/grammar_choice_card.dart'; @@ -84,7 +85,11 @@ class AnalyticsPracticeView extends StatelessWidget { builder: (context, state, __) { return switch (state) { AsyncError(:final error) => - ErrorIndicator(message: error.toString()), + ErrorIndicator( + message: error is InsufficientDataException + ? L10n.of(context).notEnoughToPractice + : error.toString(), + ), AsyncLoaded(:final value) => value.isComplete ? CompletedActivitySessionView(state.value, controller)