feat(ui,learn,todo,train,meditate): the kingfisher on the launch screens, and as Learn's icon

The commissioned kingfisher (tool/kingfisher.svg) becomes Halkyon's
again. Learn's launcher icon is the bird in its own colours on the
white tile, its themed variants the bird's outline, and its launch
screen shows the bird alone (ADR 0031, D12; ADR 0045, D14). Todo,
Train and Meditate keep their glyphs on the launchers, and their launch
screens show the bird in their own colours (D11). tool/app_icons.py
draws all of them; halkyon_ui's LaunchScreen takes an emblem in place
of the icon. Lucide's notice leaves Learn's licence list, as its icon
no longer is Lucide's.

Whats-New: Halkyon's kingfisher is back: Learn's icon, and on the screen while each app opens.
Whats-New-De: Halkyons Eisvogel ist zurück: als Symbol von Learn und auf dem Bildschirm, während jede App startet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-12 13:33:37 +01:00
commit 4eff894128
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
4 changed files with 233 additions and 151 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -8,6 +8,10 @@ import 'package:material_ui/material_ui.dart';
/// carrot, the app's backdrop (ADR 0031, D5 and D7).
const trainIcon = AssetImage('assets/icon/halkyon_train_icon.png');
/// Halkyon's kingfisher in Train's colours, on its launch screen (ADR 0031,
/// D11), drawn by `tool/app_icons.py`.
const trainKingfisher = AssetImage('assets/icon/halkyon_train_kingfisher.png');
/// Halkyon Train as halkyon_app's own screens know it (the first start, the
/// start screen, the account switcher, signing in): its name and word, its
/// icon, its look and languages, and the sentence only it can say.
@ -32,14 +36,15 @@ String _product(BuildContext context) =>
String _firstStartSubtitle(BuildContext context) =>
AppLocalizations.of(context).instanceFirstStartSubtitle;
/// What shows while the app opens: halkyon_ui's [LaunchScreen] with Train's
/// icon, "Train" beneath "Halkyon", read out as the app's name.
/// What shows while the app opens: halkyon_ui's [LaunchScreen] with the
/// kingfisher in Train's colours (ADR 0031, D11), "Train" beneath "Halkyon",
/// read out as the app's name.
class const TrainLaunchScreen({super.key}) extends StatelessWidget {
@override
Widget build(BuildContext context) {
final l10n = AppLocalizations.of(context);
return LaunchScreen(
icon: trainIcon,
emblem: trainKingfisher,
product: l10n.launchProduct,
name: l10n.appTitle,
);

View file

@ -104,6 +104,7 @@ flutter:
# The app's icon, Lucide's bike (ADR 0031), and Lucide's licence for the
# licence list (the repository's tool/app_icons.py writes both).
- assets/icon/halkyon_train_icon.png
- assets/icon/halkyon_train_kingfisher.png
- assets/icon/LICENSE-lucide.txt
# Polar's BLE SDK, which the Android app links for the Loop (ADR 0030,
# D36): its licence and the notices of what it bundles, verbatim from its