feat(studyset): Material, Progress and Study plan in place of the tabs
All checks were successful
CI / check (push) Successful in 15m14s
CI / deploy (push) Successful in 1m17s

The studyset's four tabs become three parts, as Vaia has them, chosen
with a switch in the header that ticks as the navigation bar does: below
expanded windows in a line of its own under the title, above the path
and Topics; from there on at the end of the path's line, which the
topics leave free there.

- Material: the flashcards, notes and files one below the other, the
  first three of each with Show all; Browse, the tag filter (where all
  cards show, or while they are narrowed) and Reorder in each section's
  header; an outlined box where a section is empty.
- Progress, once anything in the studyset was studied (a card rated, a
  path finished): how much is learnt (mature cards), how many studied
  cards are due today, and how long it was studied this week on this
  device, with a line of the seven days (StudysetActivityCubit, from the
  reviews' durations).
- Study plan: a ring of the paths finished, Next up (study the cards due,
  go on with the first path not finished), then the paths.

It opens on the part it was left on; a tab kept before counts as its
part. Opened for the first time, it opens on the study plan while a path
is unfinished, else on the material. Material added lands in its part.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-12 13:48:11 +02:00
commit 246c9dc143
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -9752,6 +9752,150 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Use'**
String get searchEngineCustomSave;
/// No description provided for @studysetPartMaterial.
///
/// In en, this message translates to:
/// **'Material'**
String get studysetPartMaterial;
/// No description provided for @studysetPartProgress.
///
/// In en, this message translates to:
/// **'Progress'**
String get studysetPartProgress;
/// No description provided for @studysetPartPlan.
///
/// In en, this message translates to:
/// **'Study plan'**
String get studysetPartPlan;
/// No description provided for @studysetShowAll.
///
/// In en, this message translates to:
/// **'Show all'**
String get studysetShowAll;
/// No description provided for @studysetShowFewer.
///
/// In en, this message translates to:
/// **'Show fewer'**
String get studysetShowFewer;
/// No description provided for @progressLearned.
///
/// In en, this message translates to:
/// **'Learned'**
String get progressLearned;
/// No description provided for @progressLearnedInfo.
///
/// In en, this message translates to:
/// **'Cards you will remember for three weeks or more.'**
String get progressLearnedInfo;
/// No description provided for @progressOfStudyset.
///
/// In en, this message translates to:
/// **'of this studyset'**
String get progressOfStudyset;
/// No description provided for @progressCardsLearned.
///
/// In en, this message translates to:
/// **'{count, plural, =1{{learned} of 1 card} other{{learned} of {count} cards}}'**
String progressCardsLearned(int learned, int count);
/// No description provided for @progressToReview.
///
/// In en, this message translates to:
/// **'To review'**
String get progressToReview;
/// No description provided for @progressToReviewInfo.
///
/// In en, this message translates to:
/// **'Cards studied before that are due again today.'**
String get progressToReviewInfo;
/// No description provided for @progressDueToday.
///
/// In en, this message translates to:
/// **'{count, plural, =1{card due today} other{cards due today}}'**
String progressDueToday(int count);
/// No description provided for @progressStudyTime.
///
/// In en, this message translates to:
/// **'Study time'**
String get progressStudyTime;
/// No description provided for @progressStudyTimeInfo.
///
/// In en, this message translates to:
/// **'How long you studied this studyset\'s flashcards on this device in the last seven days.'**
String get progressStudyTimeInfo;
/// No description provided for @progressThisWeek.
///
/// In en, this message translates to:
/// **'this week'**
String get progressThisWeek;
/// No description provided for @progressMinutes.
///
/// In en, this message translates to:
/// **'{minutes} min'**
String progressMinutes(int minutes);
/// No description provided for @progressHoursMinutes.
///
/// In en, this message translates to:
/// **'{hours} h {minutes} min'**
String progressHoursMinutes(int hours, int minutes);
/// No description provided for @planPathsDone.
///
/// In en, this message translates to:
/// **'{count, plural, =1{{done} of 1 path finished} other{{done} of {count} paths finished}}'**
String planPathsDone(int done, int count);
/// No description provided for @planNoPaths.
///
/// In en, this message translates to:
/// **'No learning paths yet'**
String get planNoPaths;
/// No description provided for @planNextUp.
///
/// In en, this message translates to:
/// **'Next up'**
String get planNextUp;
/// No description provided for @planReview.
///
/// In en, this message translates to:
/// **'{count, plural, =1{Study 1 flashcard} other{Study {count} flashcards}}'**
String planReview(int count);
/// No description provided for @planContinue.
///
/// In en, this message translates to:
/// **'Continue “{title}”'**
String planContinue(String title);
/// No description provided for @planNothing.
///
/// In en, this message translates to:
/// **'Nothing due right now.'**
String get planNothing;
/// No description provided for @planLearningPaths.
///
/// In en, this message translates to:
/// **'Learning paths'**
String get planLearningPaths;
}
class _AppLocalizationsDelegate