feat(app): the library's options move, import into and set how a studyset is studied
A studyset's options in the library now offer, as on its own screen, Edit, Move to…, Study options, Import from Anki, Archive and Delete. Moving goes through the same sheet and says where the studyset went; importing reads an Anki deck into it as Add material does. Study options say how a studyset is studied, on every device: how many new cards it starts a day (by default as the person's study settings say), how many reviews it brings a day (no limit by default; cards in their learning steps come anyway), and whether reviews or new cards come first, or the new ones spread evenly among the reviews. They live in the studyset's payload, schema 3; a studyset without them is still written in schema 2, so that older apps, which skip a payload in a newer schema whole, keep seeing every studyset nobody gave options. Editing a studyset keeps its options, and Reset to defaults takes them away. The study queue takes each studyset's limits for its own cards and the order of the studyset studied; a card's schedule now knows when it was last reviewed, to count the reviews of the day. Sessions, the round's end and the library's badges all count the same way, the badges now with the person's own number of new cards a day too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
3ee9bce0c5
commit
d42afb078a
1 changed files with 1095 additions and 137 deletions
|
|
@ -2587,9 +2587,63 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @studySettingsNewPerDayHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'How many never-studied cards each studyset starts a day. Due reviews are never limited.'**
|
||||
/// **'How many never-studied cards each studyset starts a day, unless its own study options say otherwise.'**
|
||||
String get studySettingsNewPerDayHint;
|
||||
|
||||
/// No description provided for @studyOptionsTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Study options'**
|
||||
String get studyOptionsTitle;
|
||||
|
||||
/// No description provided for @studyOptionsDescription.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'How many cards this studyset brings a day, and which come first, on every device. The studysets inside it keep their own.'**
|
||||
String get studyOptionsDescription;
|
||||
|
||||
/// No description provided for @studyOptionsReviewsPerDay.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Reviews per day'**
|
||||
String get studyOptionsReviewsPerDay;
|
||||
|
||||
/// No description provided for @studyOptionsReviewsPerDayHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Cards in their learning steps come anyway.'**
|
||||
String get studyOptionsReviewsPerDayHint;
|
||||
|
||||
/// No description provided for @studyOptionsOrder.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Order'**
|
||||
String get studyOptionsOrder;
|
||||
|
||||
/// No description provided for @studyOptionsReviewsFirst.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Reviews first'**
|
||||
String get studyOptionsReviewsFirst;
|
||||
|
||||
/// No description provided for @studyOptionsMixed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Mixed'**
|
||||
String get studyOptionsMixed;
|
||||
|
||||
/// No description provided for @studyOptionsNewFirst.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New first'**
|
||||
String get studyOptionsNewFirst;
|
||||
|
||||
/// No description provided for @studyOptionsReset.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Reset to defaults'**
|
||||
String get studyOptionsReset;
|
||||
|
||||
/// No description provided for @studySettingsUnlimited.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
Loading…
Reference in a new issue