feat(learn): the library on shelves by recency, narrowed to a subject (ADR 0041, D8)

The library as Vaia's (the developer's decisions of 10 Nov 2026): the
starred on a shelf of their own, then those studied or changed in the
last 7 days, the last month and before, each under its heading, the
archive last. Recent is the later of a card's last rating
(StudyProgress.lastStudied) and the studyset's own last change. A
dropdown narrows the library to one of the subjects in use, kept on the
device (DeviceSettings.librarySubject). A card names its subject under
its title, with its icon, and a language course its language beside.

Whats-New: The library groups your studysets by when you last used them, and narrows them to one subject.
Whats-New-De: Die Bibliothek ordnet deine Lernsets danach, wann du sie zuletzt genutzt hast, und zeigt auf Wunsch nur ein Fach.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-10 19:08:02 +01:00
commit a3b124ddcb
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
5 changed files with 786 additions and 26 deletions

View file

@ -2165,5 +2165,11 @@
"subjectOther": "Sonstiges / unsicher",
"studysetSheetSubject": "Fach",
"studysetSheetSubjectNone": "Fach wählen",
"subjectPickerTitle": "Fach"
"subjectPickerTitle": "Fach",
"libraryAllSubjects": "Alle Fächer",
"librarySubjectTooltip": "Ein Fach zeigen",
"libraryShelfStarred": "Mit Stern",
"libraryShelfLastWeek": "Letzte 7 Tage",
"libraryShelfLastMonth": "Letzter Monat",
"libraryShelfOlder": "Älter"
}

View file

@ -2656,5 +2656,17 @@
"studysetSheetSubjectNone": "Choose a subject",
"@studysetSheetSubjectNone": {"description": "The subject field before one is chosen."},
"subjectPickerTitle": "Subject",
"@subjectPickerTitle": {"description": "The title of the sheet picking a studyset's subject."}
"@subjectPickerTitle": {"description": "The title of the sheet picking a studyset's subject."},
"libraryAllSubjects": "All subjects",
"@libraryAllSubjects": {"description": "The library's subject dropdown while it shows every subject."},
"librarySubjectTooltip": "Show one subject",
"@librarySubjectTooltip": {"description": "The tooltip of the library's subject dropdown."},
"libraryShelfStarred": "Starred",
"@libraryShelfStarred": {"description": "The library's heading over the starred studysets."},
"libraryShelfLastWeek": "Last 7 days",
"@libraryShelfLastWeek": {"description": "The library's heading over the studysets studied or changed in the last 7 days."},
"libraryShelfLastMonth": "Last month",
"@libraryShelfLastMonth": {"description": "The library's heading over the studysets studied or changed in the last 30 days, before the last 7."},
"libraryShelfOlder": "Older",
"@libraryShelfOlder": {"description": "The library's heading over the studysets studied or changed longer ago."}
}

View file

@ -12775,6 +12775,42 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Subject'**
String get subjectPickerTitle;
/// The library's subject dropdown while it shows every subject.
///
/// In en, this message translates to:
/// **'All subjects'**
String get libraryAllSubjects;
/// The tooltip of the library's subject dropdown.
///
/// In en, this message translates to:
/// **'Show one subject'**
String get librarySubjectTooltip;
/// The library's heading over the starred studysets.
///
/// In en, this message translates to:
/// **'Starred'**
String get libraryShelfStarred;
/// The library's heading over the studysets studied or changed in the last 7 days.
///
/// In en, this message translates to:
/// **'Last 7 days'**
String get libraryShelfLastWeek;
/// The library's heading over the studysets studied or changed in the last 30 days, before the last 7.
///
/// In en, this message translates to:
/// **'Last month'**
String get libraryShelfLastMonth;
/// The library's heading over the studysets studied or changed longer ago.
///
/// In en, this message translates to:
/// **'Older'**
String get libraryShelfOlder;
}
class _AppLocalizationsDelegate

View file

@ -8170,4 +8170,22 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get subjectPickerTitle => 'Fach';
@override
String get libraryAllSubjects => 'Alle Fächer';
@override
String get librarySubjectTooltip => 'Ein Fach zeigen';
@override
String get libraryShelfStarred => 'Mit Stern';
@override
String get libraryShelfLastWeek => 'Letzte 7 Tage';
@override
String get libraryShelfLastMonth => 'Letzter Monat';
@override
String get libraryShelfOlder => 'Älter';
}

View file

@ -8097,6 +8097,24 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get subjectPickerTitle => 'Subject';
@override
String get libraryAllSubjects => 'All subjects';
@override
String get librarySubjectTooltip => 'Show one subject';
@override
String get libraryShelfStarred => 'Starred';
@override
String get libraryShelfLastWeek => 'Last 7 days';
@override
String get libraryShelfLastMonth => 'Last month';
@override
String get libraryShelfOlder => 'Older';
}
/// The translations for English, as used in the United Kingdom (`en_GB`).