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:
Tizian 「ティツィアーン」 2026-10-07 02:18:42 +02:00
commit d42afb078a
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -1526,7 +1526,36 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get studySettingsNewPerDayHint =>
'Wie viele noch nie gelernte Karten jedes Lernset pro Tag neu beginnt. Fällige Wiederholungen werden nie begrenzt.';
'Wie viele noch nie gelernte Karten jedes Lernset pro Tag neu beginnt, sofern seine eigenen Lernoptionen nichts anderes sagen.';
@override
String get studyOptionsTitle => 'Lernoptionen';
@override
String get studyOptionsDescription =>
'Wie viele Karten dieses Lernset pro Tag bringt und welche zuerst kommen, auf all deinen Geräten. Die Lernsets darin behalten ihre eigenen.';
@override
String get studyOptionsReviewsPerDay => 'Wiederholungen pro Tag';
@override
String get studyOptionsReviewsPerDayHint =>
'Karten in ihren Lernschritten kommen trotzdem.';
@override
String get studyOptionsOrder => 'Reihenfolge';
@override
String get studyOptionsReviewsFirst => 'Wiederholungen zuerst';
@override
String get studyOptionsMixed => 'Gemischt';
@override
String get studyOptionsNewFirst => 'Neue zuerst';
@override
String get studyOptionsReset => 'Standard wiederherstellen';
@override
String get studySettingsUnlimited => 'Unbegrenzt';