feat: 完善听力口语辅助状态记录、练习分块与复习抽查间隔机制
This commit is contained in:
@@ -53,12 +53,19 @@ abstract class _AppStateData extends ChangeNotifier {
|
||||
LessonStep lessonStep = LessonStep.preview;
|
||||
int previewIndex = 0;
|
||||
bool lessonListeningComplete = false;
|
||||
bool listeningAudioPlayed = false;
|
||||
bool listeningAudioUnavailable = false;
|
||||
ListeningSupport listeningSupport = ListeningSupport.none;
|
||||
int listeningAttempts = 0;
|
||||
bool sentenceBuildUsed = false;
|
||||
int sentenceBuildIndex = 0;
|
||||
bool lessonSpeakingComplete = false;
|
||||
bool lessonReadingComplete = false;
|
||||
bool lessonWritingComplete = false;
|
||||
bool lessonDialogueComplete = false;
|
||||
bool independentAttemptComplete = false;
|
||||
bool independentAttemptAssisted = false;
|
||||
bool independentAttemptPending = false;
|
||||
bool independentAttemptSpoken = false;
|
||||
String lessonWritingDraft = '';
|
||||
String independentAttemptDraft = '';
|
||||
@@ -101,7 +108,8 @@ abstract class _AppStateData extends ChangeNotifier {
|
||||
}
|
||||
|
||||
class AppState extends _AppStateData
|
||||
with _ReviewAndMastery,
|
||||
with
|
||||
_ReviewAndMastery,
|
||||
_ReceptiveWords,
|
||||
_AssessmentProgress,
|
||||
_LessonProgress,
|
||||
@@ -245,10 +253,14 @@ class AppState extends _AppStateData
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
/// Applies the placement result. The start may land on any loaded lesson
|
||||
/// across A0–B1, and placement never counts as passing a lesson.
|
||||
/// Placement never marks an earlier lesson as passed or opens draft content.
|
||||
void setPlacementStartLesson(String lessonId) {
|
||||
if (!allLessons.any((lesson) => lesson.id == lessonId)) return;
|
||||
if (!allLessons.any(
|
||||
(lesson) =>
|
||||
lesson.id == lessonId && lesson.status == ContentStatus.approved,
|
||||
)) {
|
||||
return;
|
||||
}
|
||||
placementStartLessonId = lessonId;
|
||||
activeLessonId = lessonId;
|
||||
_resetLessonFlow();
|
||||
@@ -312,12 +324,19 @@ class AppState extends _AppStateData
|
||||
lessonStep = LessonStep.preview;
|
||||
previewIndex = 0;
|
||||
lessonListeningComplete = false;
|
||||
listeningAudioPlayed = false;
|
||||
listeningAudioUnavailable = false;
|
||||
listeningSupport = ListeningSupport.none;
|
||||
listeningAttempts = 0;
|
||||
sentenceBuildUsed = false;
|
||||
sentenceBuildIndex = 0;
|
||||
lessonSpeakingComplete = false;
|
||||
lessonReadingComplete = false;
|
||||
lessonWritingComplete = false;
|
||||
lessonDialogueComplete = false;
|
||||
independentAttemptComplete = false;
|
||||
independentAttemptAssisted = false;
|
||||
independentAttemptPending = false;
|
||||
independentAttemptSpoken = false;
|
||||
mastery.clear();
|
||||
notifyListeners();
|
||||
|
||||
Reference in New Issue
Block a user