diff --git a/lib/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart b/lib/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart index e152c18a2..3cd78a66a 100644 --- a/lib/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart +++ b/lib/pangea/models/practice_activities.dart/multiple_choice_activity_model.dart @@ -18,6 +18,8 @@ class MultipleChoice { int get correctAnswerIndex => choices.indexOf(answer); + int choiceIndex(String choice) => choices.indexOf(choice); + Color choiceColor(int index) => index == correctAnswerIndex ? AppConfig.success : AppConfig.warning; diff --git a/lib/pangea/models/practice_activities.dart/practice_activity_record_model.dart b/lib/pangea/models/practice_activities.dart/practice_activity_record_model.dart index 93ec8e478..3fe3e859d 100644 --- a/lib/pangea/models/practice_activities.dart/practice_activity_record_model.dart +++ b/lib/pangea/models/practice_activities.dart/practice_activity_record_model.dart @@ -40,12 +40,12 @@ class PracticeActivityRecordModel { /// get the latest response index according to the response timeStamp /// sort the responses by timestamp and get the index of the last response - int? get latestResponseIndex { + String? get latestResponse { if (responses.isEmpty) { return null; } responses.sort((a, b) => a.timestamp.compareTo(b.timestamp)); - return responses.length - 1; + return responses[responses.length - 1].text; } void addResponse({ diff --git a/lib/pangea/widgets/practice_activity/practice_activity_card.dart b/lib/pangea/widgets/practice_activity/practice_activity_card.dart index ce888f0fb..f772bdfc8 100644 --- a/lib/pangea/widgets/practice_activity/practice_activity_card.dart +++ b/lib/pangea/widgets/practice_activity/practice_activity_card.dart @@ -50,6 +50,7 @@ class MessagePracticeActivityCardState extends State { return langCode; } +<<<<<<< Updated upstream void loadInitialData() { if (langCode == null) return; updatePracticeActivity(); @@ -75,6 +76,11 @@ class MessagePracticeActivityCardState extends State { else if (activities.isNotEmpty) { practiceEvent = activities.last; } +======= + practiceEvent = + widget.pangeaMessageEvent.practiceActivities(langCode).firstOrNull; + +>>>>>>> Stashed changes setState(() {}); } diff --git a/lib/pangea/widgets/practice_activity/practice_activity_content.dart b/lib/pangea/widgets/practice_activity/practice_activity_content.dart index 563904e42..8080c27ee 100644 --- a/lib/pangea/widgets/practice_activity/practice_activity_content.dart +++ b/lib/pangea/widgets/practice_activity/practice_activity_content.dart @@ -63,7 +63,13 @@ class MessagePracticeActivityContentState ); } else { recordModel = recordEvent!.record; - selectedChoiceIndex = recordModel!.latestResponseIndex; + + //Note that only MultipleChoice activities will have this so we probably should move this logic to the MultipleChoiceActivity widget + selectedChoiceIndex = recordModel?.latestResponse != null + ? widget.practiceEvent.practiceActivity.multipleChoice + ?.choiceIndex(recordModel!.latestResponse!) + : null; + recordSubmittedPreviousSession = true; recordSubmittedThisSession = true; }