applyToLearningCardState method
Implementation
static applyToLearningCardState(
LearningCardState prev, DateTime ts, Rating rating) {
if (rating == Rating.Easy ||
(rating == Rating.Easy || rating == Rating.Good) &&
prev.consecutiveCorrect > 0) {
var interval = prev.consecutiveCorrect > 0
? INITIAL_DAYS_WITHOUT_JUMP
: INITIAL_DAYS_WITH_JUMP;
return ReviewingCardState(
master: prev.master,
combination: prev.combination,
factor: INITIAL_FACTOR,
lapses: 0,
interval: interval.toDouble(),
lastReviewed: ts);
} else if (rating == Rating.Again) {
return LearningCardState(
master: prev.master,
combination: prev.combination,
consecutiveCorrect: 0,
lastReviewed: ts);
} else if ((rating == Rating.Good || rating == Rating.Hard) &&
prev.consecutiveCorrect < 1) {
return LearningCardState(
master: prev.master,
combination: prev.combination,
consecutiveCorrect: prev.consecutiveCorrect + 1,
lastReviewed: ts);
}
}