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
|
|
@ -506,7 +506,18 @@ void main() {
|
|||
});
|
||||
|
||||
testWidgets('the player has play or pause with 10 seconds back and on '
|
||||
'beside it, and where it is from 0:00 to its length', (tester) async {
|
||||
'beside it, each a short tick where the device vibrates, and where it '
|
||||
'is from 0:00 to its length', (tester) async {
|
||||
final ticks = <Object?>[];
|
||||
tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(
|
||||
SystemChannels.platform,
|
||||
(call) async {
|
||||
if (call.method == 'HapticFeedback.vibrate') {
|
||||
ticks.add(call.arguments);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
);
|
||||
await watch(tester);
|
||||
await playTo(tester, const Duration(minutes: 1));
|
||||
expect(find.text('1:00'), findsOneWidget);
|
||||
|
|
@ -519,6 +530,7 @@ void main() {
|
|||
await tester.tap(find.byTooltip('10 seconds back'));
|
||||
await tester.pumpAndSettle();
|
||||
expect(players.last!.state.value.position, const Duration(seconds: 50));
|
||||
expect(ticks, List.filled(3, 'HapticFeedbackType.selectionClick'));
|
||||
});
|
||||
|
||||
testWidgets("YouTube's keys work, the lines' too, and ? lists them", (
|
||||
|
|
|
|||
Loading…
Reference in a new issue