From 233e5162d15bd5821bc85aac85e443ef9a75e998 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Tue, 17 Jun 2025 13:39:46 -0400 Subject: [PATCH] chore: don't show match activities for single-word messages --- .../practice_activities/activity_type_enum.dart | 16 ++++++++++++++++ .../practice_activities/practice_selection.dart | 5 +++++ 2 files changed, 21 insertions(+) diff --git a/lib/pangea/practice_activities/activity_type_enum.dart b/lib/pangea/practice_activities/activity_type_enum.dart index 2fe80c418..c58bdd4e2 100644 --- a/lib/pangea/practice_activities/activity_type_enum.dart +++ b/lib/pangea/practice_activities/activity_type_enum.dart @@ -190,4 +190,20 @@ extension ActivityTypeExtension on ActivityTypeEnum { return null; // TODO: Add to L10n } } + + /// The minimum number of tokens in a message for this activity type to be available. + /// Matching activities don't make sense for a single-word message. + int get minTokensForMatchActivity { + switch (this) { + case ActivityTypeEnum.wordMeaning: + case ActivityTypeEnum.lemmaId: + case ActivityTypeEnum.wordFocusListening: + return 2; + case ActivityTypeEnum.hiddenWordListening: + case ActivityTypeEnum.emoji: + case ActivityTypeEnum.morphId: + case ActivityTypeEnum.messageMeaning: + return 1; + } + } } diff --git a/lib/pangea/practice_activities/practice_selection.dart b/lib/pangea/practice_activities/practice_selection.dart index de2aa3709..e7b60be33 100644 --- a/lib/pangea/practice_activities/practice_selection.dart +++ b/lib/pangea/practice_activities/practice_selection.dart @@ -155,6 +155,11 @@ class PracticeSelection { return []; } + if (tokens.length < activityType.minTokensForMatchActivity) { + // if we only have one token, we don't need to do an emoji activity + return []; + } + return [ PracticeTarget( activityType: activityType,