Set Due Date: Set interval to actual elapsed days when FSRS is enabled (#4035)

This commit is contained in:
Jarrett Ye 2025-05-26 21:33:39 +08:00 committed by GitHub
parent dfee38898d
commit 1e6d12b830
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -32,12 +32,14 @@ impl Card {
force_reset: bool,
) {
let new_due = (today + days_from_today) as i32;
let new_interval =
if force_reset || !matches!(self.ctype, CardType::Review | CardType::Relearn) {
days_from_today
} else {
self.interval
};
let fsrs_enabled = self.memory_state.is_some();
let new_interval = if fsrs_enabled {
self.interval.saturating_add_signed(new_due - self.due)
} else if force_reset || !matches!(self.ctype, CardType::Review | CardType::Relearn) {
days_from_today
} else {
self.interval
};
let ease_factor = (ease_factor * 1000.0).round() as u16;
self.schedule_as_review(new_interval, new_due, ease_factor);