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, force_reset: bool,
) { ) {
let new_due = (today + days_from_today) as i32; let new_due = (today + days_from_today) as i32;
let new_interval = let fsrs_enabled = self.memory_state.is_some();
if force_reset || !matches!(self.ctype, CardType::Review | CardType::Relearn) { let new_interval = if fsrs_enabled {
days_from_today self.interval.saturating_add_signed(new_due - self.due)
} else { } else if force_reset || !matches!(self.ctype, CardType::Review | CardType::Relearn) {
self.interval days_from_today
}; } else {
self.interval
};
let ease_factor = (ease_factor * 1000.0).round() as u16; let ease_factor = (ease_factor * 1000.0).round() as u16;
self.schedule_as_review(new_interval, new_due, ease_factor); self.schedule_as_review(new_interval, new_due, ease_factor);