mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
Fix/update card.decay in card_state_updater (#4127)
This commit is contained in:
parent
5f73725a64
commit
fe5dfe9ec2
2 changed files with 5 additions and 2 deletions
|
@ -33,6 +33,7 @@ use crate::deckconfig::LeechAction;
|
|||
use crate::decks::Deck;
|
||||
use crate::prelude::*;
|
||||
use crate::scheduler::fsrs::memory_state::fsrs_item_for_memory_state;
|
||||
use crate::scheduler::fsrs::memory_state::get_decay_from_params;
|
||||
use crate::scheduler::states::PreviewState;
|
||||
use crate::search::SearchNode;
|
||||
|
||||
|
@ -433,7 +434,9 @@ impl Collection {
|
|||
let config = self.home_deck_config(deck.config_id(), card.original_deck_id)?;
|
||||
let fsrs_enabled = self.get_config_bool(BoolKey::Fsrs);
|
||||
let fsrs_next_states = if fsrs_enabled {
|
||||
let fsrs = FSRS::new(Some(config.fsrs_params()))?;
|
||||
let params = config.fsrs_params();
|
||||
let fsrs = FSRS::new(Some(params))?;
|
||||
card.decay = Some(get_decay_from_params(params));
|
||||
if card.memory_state.is_none() && card.ctype != CardType::New {
|
||||
// Card has been moved or imported into an FSRS deck after params were set,
|
||||
// and will need its initial memory state to be calculated based on review
|
||||
|
|
|
@ -32,7 +32,7 @@ pub struct ComputeMemoryProgress {
|
|||
|
||||
/// Helper function to determine the appropriate decay value based on FSRS
|
||||
/// parameters
|
||||
fn get_decay_from_params(params: &[f32]) -> f32 {
|
||||
pub(crate) fn get_decay_from_params(params: &[f32]) -> f32 {
|
||||
if params.is_empty() {
|
||||
FSRS6_DEFAULT_DECAY // default decay for FSRS-6
|
||||
} else if params.len() < 21 {
|
||||
|
|
Loading…
Reference in a new issue