applyToLapsedCardState method
Implementation
static applyToLapsedCardState(
LapsedCardState prev, DateTime ts, Rating rating) {
if (rating == Rating.Easy ||
((rating == Rating.Easy || rating == Rating.Good) &&
prev.consecutiveCorrect > 0)) {
return ReviewingCardState(
master: prev.master,
combination: prev.combination,
factor: prev.factor,
lapses: prev.lapses,
interval: prev.consecutiveCorrect > 0
? INITIAL_DAYS_WITHOUT_JUMP
: INITIAL_DAYS_WITH_JUMP,
lastReviewed: ts,
);
}
return LapsedCardState(
master: prev.master,
combination: prev.combination,
factor: prev.factor,
lapses: prev.lapses,
interval: prev.interval,
lastReviewed: ts,
consecutiveCorrect:
rating == Rating.Again ? 0 : prev.consecutiveCorrect + 1);
}