feat(train): the workouts listed, and each one's page with its map (ADR 0030, D22-D24)

Home lists the person's workouts newest first under their months, each
with its activity's icon, its name (else the time of day's and the
activity's), when it started, its distance, moving time and pace or
speed; those this device can't open come last, locked. A workout's page
shows its track on the instance's map source (flutter_map with
vector_map_tiles, pinned at 9.0.0-beta.13), in pieces between its
pauses, start and end marked; its totals with the elevation gained;
its splits per kilometre on foot, per 5 km cycling; pace or speed and
elevation over the distance, drawn by the app's own painter; and what
the map's source sees. Its name and notes are edited there; deleting
asks first and can be undone for a moment from home (halkyon_app's
DelayedDeletions, TrainPerson.deletions).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-28 14:29:39 +01:00
commit 405577050d
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -378,6 +378,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.1.1"
dart_earcut:
dependency: transitive
description:
name: dart_earcut
sha256: e485001bfc05dcbc437d7bfb666316182e3522d4c3f9668048e004d0eb2ce43b
url: "https://pub.dev"
source: hosted
version: "1.2.0"
dart_jsonwebtoken:
dependency: transitive
description:
@ -386,6 +394,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.4.1"
dart_polylabel2:
dependency: transitive
description:
name: dart_polylabel2
sha256: "7eeab15ce72894e4bdba6a8765712231fc81be0bd95247de4ad9966abc57adc6"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
dart_style:
dependency: transitive
description:
@ -458,6 +474,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
executor_lib:
dependency: transitive
description:
name: executor_lib
sha256: "95ddf2957d9942d9702855b38dd49677f0ee6a8b77d7b16c0e509c7669d17386"
url: "https://pub.dev"
source: hosted
version: "1.1.2"
expressive_loading_indicator:
dependency: transitive
description:
@ -657,6 +681,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_map:
dependency: transitive
description:
name: flutter_map
sha256: "9bbe5472f66ae648d2ca2efbce97fcaa04e71261fabd3e062f26728222d7f767"
url: "https://pub.dev"
source: hosted
version: "8.3.2"
flutter_math_fork:
dependency: transitive
description:
@ -912,6 +944,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.1.2"
idb_shim:
dependency: transitive
description:
name: idb_shim
sha256: "923c92ef88569de4ec1b257b6a6d10360dc3407179f61d0c73329701a7d7b12e"
url: "https://pub.dev"
source: hosted
version: "2.11.1"
image:
dependency: transitive
description:
@ -989,6 +1029,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.3.0"
latlong2:
dependency: transitive
description:
name: latlong2
sha256: "84b776b100a84a684a0aaa3fa4dc2c9b1931c658de533701ee4e09bfa991f8dc"
url: "https://pub.dev"
source: hosted
version: "0.10.1"
leak_tracker:
dependency: transitive
description:
@ -1149,6 +1197,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.19.0"
mgrs_dart:
dependency: transitive
description:
name: mgrs_dart
sha256: "385e7168ecc77eb545220223c49eef8ab249da7bf57f22781c40a04d23fb196f"
url: "https://pub.dev"
source: hosted
version: "3.0.0"
mime:
dependency: transitive
description:
@ -1429,6 +1485,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "5.0.6"
proj4dart:
dependency: transitive
description:
name: proj4dart
sha256: ddcedc1f7876e62717de43ab3491e2829bdad0b028261805f94aa080967e5859
url: "https://pub.dev"
source: hosted
version: "3.0.0"
prompts:
dependency: transitive
description:
@ -1437,6 +1501,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.0"
protobuf:
dependency: transitive
description:
name: protobuf
sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
provider:
dependency: transitive
description:
@ -1566,6 +1638,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.1"
sembast:
dependency: transitive
description:
name: sembast
sha256: "05da81104e6d4a1ecbeb9aa92062231620d360c8bd9303b82495842c4d92632b"
url: "https://pub.dev"
source: hosted
version: "3.9.0"
serverpod:
dependency: transitive
description:
@ -1791,6 +1871,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
simple_sparse_list:
dependency: transitive
description:
name: simple_sparse_list
sha256: aa648fd240fa39b49dcd11c19c266990006006de6699a412de485695910fbc1f
url: "https://pub.dev"
source: hosted
version: "0.1.4"
sky_engine:
dependency: transitive
description: flutter
@ -1972,6 +2060,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.4.0"
unicode:
dependency: transitive
description:
name: unicode
sha256: a6f7bcfc8ea1d5ce1f6c0b1c39117a9919f4953edd9fd7a64090a9796c499b57
url: "https://pub.dev"
source: hosted
version: "1.1.9"
universal_ffi:
dependency: transitive
description:
@ -2116,6 +2212,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.0"
vector_map_tiles:
dependency: transitive
description:
name: vector_map_tiles
sha256: "42dce00e0f69352663f4c9c78fe5cc900704f6dd46019640ebda0d84cc14ce68"
url: "https://pub.dev"
source: hosted
version: "9.0.0-beta.13"
vector_math:
dependency: transitive
description:
@ -2124,6 +2228,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.4.3"
vector_tile:
dependency: transitive
description:
name: vector_tile
sha256: "7ae290246e3a8734422672dbe791d3f7b8ab631734489fc6d405f1cc2080e38c"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
vector_tile_renderer:
dependency: transitive
description:
name: vector_tile_renderer
sha256: "982ae5d8f0ab285463a4cd62e711c8f9a36b9b3112b5a471ae8d4f4838f31537"
url: "https://pub.dev"
source: hosted
version: "6.1.0"
video_player:
dependency: transitive
description:
@ -2316,6 +2436,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.0"
wkt_parser:
dependency: transitive
description:
name: wkt_parser
sha256: "8a555fc60de3116c00aad67891bcab20f81a958e4219cc106e3c037aa3937f13"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
xdg_directories:
dependency: transitive
description: