Commit graph halkyon/halkyon_learn_flutter/test/app
Author SHA1 Message Date
246c9dc143
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>
2026-10-12 13:59:56 +02:00
e32a3129f6
fix: every text field has a limit, and long names no longer overflow
A Pomodoro profile's name could be as long as one liked, and pushed the
Home card's header beyond the window. Of 56 fields, only release notes and
a licence's year had a limit.

Limits by what a field holds (core/widget/text_limits.dart, decided
2026-10-11): a name shown in a menu or on a chip 40 (Pomodoro profiles,
tags, a study button's label); a secondary title or a reading above
characters 60; a title 120 (studysets, notes, paths, steps, PDFs,
callouts, a video's caption, a licence's holder); an answer or item 200
(meanings, readings, glosses, options, categories, gaps, typed answers);
a search 200; a part of a citation 500; a message 2000 (reports, replies,
questions to Claude); a web address 2000; a passage with gaps or a
formula 5000. The public profile and a published studyset's name take the
instance's own limits (display name 30, handle 30, bio 500, links 2000,
name 50), which the app didn't say before. Pasted flashcards to import and
numbers have none. Fields count only from 80 % of their limit.

Text can still be longer where it came from elsewhere (an older app, an
import, a release), so the places showing it cut it short: the Pomodoro
card's header and its profiles. A test shows names beyond every limit on
Home, the library, a studyset's screen with its tabs and topics, the card
browser with its tags, and a session, on a phone and a desktop: none
overflows (it fails on the Pomodoro card as it was).

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>
2026-10-11 15:08:52 +02:00
7621afaa98
feat(instances): choose the instance, and keep accounts on several
All checks were successful
CI / check (push) Successful in 13m50s
CI / deploy (push) Successful in 1m25s
A new install asks first which instance to keep the person's studysets
on, as Mastodon's apps do: an address, checked to answer as an instance
of Halkyon Learn, or the build's own (learn.halkyon.eu) in one tap.
Nothing is made anywhere before that, not even an anonymous account. An
install from before goes on with the build's instance without asking.

As Moshidon does, the device keeps an account on each instance it was
used with, each signed in with its own folder and session, one in use at
a time. Settings › Switch account lists them: another one switches at
once, anonymous accounts included; Add account chooses another instance;
removing one not in use deletes what the device holds of it. Signing out
ends only the account in use.

The build's own instance keeps its data where installs kept it before
(`people/`, Serverpod's own session key), so they keep everything; other
instances get folders and keys of their own. What the device shares
across instances (its settings, sounds, the Pomodoro timer's place in the
system) is made once and outlives every switch.

The F-Droid listing drops TetheredNet: the app is no longer tied to the
project's instance.

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>
2026-10-10 09:46:50 +02:00