halkyon_meditate_flutter on halkyon_app and halkyon_ui (ADR 0038): the first start, sign-in and account as every Halkyon app's, a bar below medium windows and a rail with the icon from medium on, fern washes, Settings in cards (Sync, the operator's, Sitting, Practice, the account, What's new, About, the version), English and German. - Today: a greeting by the hour, Sit now at 5, 10, 20 minutes and the timer's own length, the practice of the day, the week with the days in a row, favourites, recently sat (D9). - Explore: six practices of Halkyon's own, written for the app, found by a search without case or accents, by goal and by kind; each page with how it goes, its lengths, its heart and Start (D4, D10). - The sitting, over the tabs: its time from the clock, a ring counting down, the cue of the moment, Pause and End, the bells at the start, between and at the end, the screen kept on; ended early, kept from a minute on where the person says so (D5, D6). - Profile: every Halkyon app's, then the person's practice: minutes, sittings, days, the week and every sitting kept, to delete (D8). - Settings and sittings sealed with the person's key and synced (D7). The bells are synthesised by apps/meditate/tool/bells.py, the icon is Lucide's sprout from cobalt through pacific into fern (tool/app_icons.py). Releases and the deploy are a later step. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
26 lines
726 B
Dart
26 lines
726 B
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:halkyon_meditate_flutter/src/app/licences.dart';
|
|
|
|
void main() {
|
|
testWidgets(
|
|
"Lucide's notice, whose icon is Meditate's, joins the licence list",
|
|
(
|
|
tester,
|
|
) async {
|
|
registerLucideLicense();
|
|
|
|
final entries = await tester.runAsync(
|
|
() => LicenseRegistry.licenses.toList(),
|
|
);
|
|
final lucide = entries!.where(
|
|
(entry) => entry.packages.contains('Lucide (the app icon)'),
|
|
);
|
|
expect(lucide, isNotEmpty);
|
|
expect(
|
|
lucide.first.paragraphs.map((paragraph) => paragraph.text).join('\n'),
|
|
contains('ISC License'),
|
|
);
|
|
},
|
|
);
|
|
}
|