feat(app): tag, edit, delete and swipe cards while studying, with tidier session sheets

- Above every studied card (but a matching one): the PDF it came from,
  its tags on one line ("+2 tags" for the rest) or "Add tags", and a
  menu to tag, edit or delete it; the session follows (an edited card
  shows as saved, a deleted one leaves the round).
- On phones, a front/back or vocabulary card swiped right is rated
  Good, left Bad; it tilts over the colour it heads for, and springs
  back when let go early.
- The session's settings: "Settings", a 48 dp Save that warns mid-round
  ("Heads up!"), steppers in an outlined box ("20 / day", "5 / 50"),
  the order in an outlined dropdown, the chosen tags with the rest
  behind "Filter by tags" / "+3 more".
- A studyset's study options: Save above Reset to defaults, the
  description small, reviews a day in steps of 25.
- One stepper look everywhere (study, Pomodoro profiles), its buttons
  "Decrease" and "Increase".

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 18:13:32 +02:00
commit b0aaecf115
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -2008,16 +2008,10 @@ abstract class AppLocalizations {
/// **'Filter by tags'**
String get studySettingsFilterByTags;
/// No description provided for @studySettingsFilterHint.
///
/// In en, this message translates to:
/// **'Study only the flashcards with any of the tags chosen.'**
String get studySettingsFilterHint;
/// No description provided for @studySettingsNoTags.
///
/// In en, this message translates to:
/// **'No tags yet. Add tags to your flashcards to filter them here.'**
/// **'No content tags yet. Add tags to your cards to filter them here.'**
String get studySettingsNoTags;
/// No description provided for @studySettingsReset.
@ -2032,6 +2026,36 @@ abstract class AppLocalizations {
/// **'Save'**
String get studySettingsSave;
/// No description provided for @studySettingsHeadsUpTitle.
///
/// In en, this message translates to:
/// **'Heads up!'**
String get studySettingsHeadsUpTitle;
/// No description provided for @studySettingsHeadsUpBody.
///
/// In en, this message translates to:
/// **'The changes you’ve made will reload the session, and you’ll lose your current progress.'**
String get studySettingsHeadsUpBody;
/// No description provided for @studySettingsApplyChanges.
///
/// In en, this message translates to:
/// **'Apply changes'**
String get studySettingsApplyChanges;
/// No description provided for @studySettingsPerDay.
///
/// In en, this message translates to:
/// **' / day'**
String get studySettingsPerDay;
/// No description provided for @studySettingsMoreTags.
///
/// In en, this message translates to:
/// **'+{count} more'**
String studySettingsMoreTags(int count);
/// No description provided for @cardTagsLabel.
///
/// In en, this message translates to:
@ -2050,6 +2074,12 @@ abstract class AppLocalizations {
/// **'Edit tags'**
String get cardTagsEdit;
/// No description provided for @tagChipsOverflow.
///
/// In en, this message translates to:
/// **'+{count, plural, =1{1 tag} other{{count} tags}}'**
String tagChipsOverflow(int count);
/// No description provided for @cardFilterTooltip.
///
/// In en, this message translates to:
@ -2968,12 +2998,6 @@ abstract class AppLocalizations {
/// **'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:
@ -3067,13 +3091,13 @@ abstract class AppLocalizations {
/// No description provided for @studyFewer.
///
/// In en, this message translates to:
/// **'Fewer'**
/// **'Decrease'**
String get studyFewer;
/// No description provided for @studyMore.
///
/// In en, this message translates to:
/// **'More'**
/// **'Increase'**
String get studyMore;
/// No description provided for @studysetMenuReset.