feat: a round in the order cards come, shared daily limits, and a start screen
Studying: - A round is one list in the order its cards come: those done, the one shown, those to come. A card due again within the day goes back in after 4 more cards when rated Bad, at the end otherwise, so the pills above the card follow it; the buttons say "in 4 cards", "at the end", "now" (round_order.dart). - The studied studyset's daily limits hold for everything inside it together, as Anki's do for subdecks: twenty topics start 20 new cards a day in all, not 20 each. - The study header's studyset name shows whole on hover or long press. - The assistant's button sits at the lower left: in the Library across from Create studyset, in a studyset above its bar, and higher while studying, above the buttons that answer the card. A studyset: - Progress also counts the learning paths' steps done and lists the PDFs not read to their end, begun first, each opening the reader, across its topics (MaterialProgressCubit). - Next up starts with studying for the exam while one is ahead: its reviews due and the new cards its pace leaves for the day. - Learning paths tagged with a level count towards its automatic exam plan and offer it, as cards do. - A step's first heading equal to its title is dropped on import and hidden in paths imported before. Signing out, or a session the server ended, leads to a start screen (GitHub, email, without an account, another instance) rather than a new anonymous account; only the very first start makes one by itself. Settings names the kind of account and its instance. Also: the Watch screen reads the cards once for held words and their progress; its ±10 s buttons tick as the navigation bar does; a map card keeps its view as its caption changes and brings a picked region towards the middle; an empty or failed library can be pulled to sync. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
238a1a93ae
commit
de6af3efab
1 changed files with 2677 additions and 293 deletions
|
|
@ -3454,6 +3454,36 @@ abstract class AppLocalizations {
|
|||
/// **'Welcome to Halkyon Learn'**
|
||||
String get instanceWelcome;
|
||||
|
||||
/// No description provided for @startSignedOut.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Signed out'**
|
||||
String get startSignedOut;
|
||||
|
||||
/// No description provided for @startOn.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Start on {instance}:'**
|
||||
String startOn(String instance);
|
||||
|
||||
/// No description provided for @startWithoutAccount.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Start without an account'**
|
||||
String get startWithoutAccount;
|
||||
|
||||
/// No description provided for @startNoGitHubAccount.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No account here signs in with this GitHub account yet. Start without an account, then add GitHub in Profile.'**
|
||||
String get startNoGitHubAccount;
|
||||
|
||||
/// No description provided for @startOtherInstance.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Use another instance'**
|
||||
String get startOtherInstance;
|
||||
|
||||
/// No description provided for @instanceFirstStartSubtitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -3508,6 +3538,30 @@ abstract class AppLocalizations {
|
|||
/// **'Switch account'**
|
||||
String get settingsSwitchAccount;
|
||||
|
||||
/// No description provided for @settingsAccountAnonymous.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Anonymous on {instance}'**
|
||||
String settingsAccountAnonymous(String instance);
|
||||
|
||||
/// No description provided for @settingsAccountSignedIn.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Signed in on {instance}'**
|
||||
String settingsAccountSignedIn(String instance);
|
||||
|
||||
/// No description provided for @accountAnonymous.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Anonymous'**
|
||||
String get accountAnonymous;
|
||||
|
||||
/// No description provided for @accountSignedIn.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Signed in'**
|
||||
String get accountSignedIn;
|
||||
|
||||
/// No description provided for @accountsTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -5812,6 +5866,24 @@ abstract class AppLocalizations {
|
|||
/// **'Check'**
|
||||
String get studyCheck;
|
||||
|
||||
/// No description provided for @studyComesBackIn.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =1{in 1 card} other{in {count} cards}}'**
|
||||
String studyComesBackIn(int count);
|
||||
|
||||
/// No description provided for @studyComesBackAtEnd.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'at the end'**
|
||||
String get studyComesBackAtEnd;
|
||||
|
||||
/// No description provided for @studyComesBackNow.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'now'**
|
||||
String get studyComesBackNow;
|
||||
|
||||
/// No description provided for @studySelectAll.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -11253,6 +11325,60 @@ abstract class AppLocalizations {
|
|||
/// **'{hours} h {minutes} min'**
|
||||
String progressHoursMinutes(int hours, int minutes);
|
||||
|
||||
/// No description provided for @progressPathsInfo.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The steps of this studyset\'s learning paths, and its topics\', that you have done.'**
|
||||
String get progressPathsInfo;
|
||||
|
||||
/// No description provided for @progressStepsDone.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{total, plural, =1{of 1 step done} other{of {total} steps done}}'**
|
||||
String progressStepsDone(int total);
|
||||
|
||||
/// No description provided for @progressReading.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Reading'**
|
||||
String get progressReading;
|
||||
|
||||
/// No description provided for @progressReadingInfo.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The PDFs of this studyset and its topics not read to their last page yet. Tap one to read on.'**
|
||||
String get progressReadingInfo;
|
||||
|
||||
/// No description provided for @progressPdfPage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Page {page} of {count}'**
|
||||
String progressPdfPage(int page, int count);
|
||||
|
||||
/// No description provided for @progressPdfNotBegun.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Not begun yet'**
|
||||
String get progressPdfNotBegun;
|
||||
|
||||
/// No description provided for @progressPdfsAllRead.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =1{The PDF is read to its end.} other{All {count} PDFs are read to their end.}}'**
|
||||
String progressPdfsAllRead(int count);
|
||||
|
||||
/// No description provided for @progressShowAllPdfs.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Show all {count}'**
|
||||
String progressShowAllPdfs(int count);
|
||||
|
||||
/// No description provided for @progressShowFewerPdfs.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Show fewer'**
|
||||
String get progressShowFewerPdfs;
|
||||
|
||||
/// No description provided for @planPathsDone.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -11277,6 +11403,12 @@ abstract class AppLocalizations {
|
|||
/// **'{count, plural, =1{Study 1 flashcard} other{Study {count} flashcards}}'**
|
||||
String planReview(int count);
|
||||
|
||||
/// No description provided for @planStudyForExam.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =1{Study 1 flashcard for {exam}} other{Study {count} flashcards for {exam}}}'**
|
||||
String planStudyForExam(int count, String exam);
|
||||
|
||||
/// No description provided for @planContinue.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
Loading…
Reference in a new issue