applyToLapsedCardState method

dynamic applyToLapsedCardState (LapsedCardState prev, DateTime ts, Rating rating)

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);
}