halkyon/apps/train/halkyon_train_flutter/test/support
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 d305725bb5
fix(train): a recording followed whichever starts first, the app listening or the service
On a fresh install (GrapheneOS) a walk recorded no GPS on the screen,
which waited for GPS throughout though the file was whole. The app
listens to the recorder's lines as soon as it asked for the start, and
Android starts the service a moment later: listening first, it got
nothing of the file, and the service then wrote the header straight to
the file, past what hands each line on. The reader takes the first line
it gets as the header, found none, and dropped every line after.

The service now writes its header through write() as every line, and
the app takes the header from the file's first line where lines came
without one (RecordingReader.recover, on the next second), reading the
lines kept since after it, so either order and either recorder version
is followed. The fake recorder can now begin late, as the service does.

On foot, auto-pause by steps paused after 5 s and went on only with a
step where the phone has no step detector or one switched off
(GrapheneOS' Sensors): GPS speed decides there, and until the first
step and once the detector has been silent 30 s. A minute without any
fix, the recording screen asks whether location is on and precise.
ADR 0030, D65.

Whats-New: A recording follows its GPS again on a phone where it waited for GPS throughout.
Whats-New: Auto-pause on foot goes by GPS speed where the phone counts no steps.
Whats-New: After a minute without GPS, the recording screen asks whether location is on and precise.
Whats-New-De: Eine Aufzeichnung folgt ihrem GPS wieder auf Handys, auf denen sie die ganze Zeit auf GPS wartete.
Whats-New-De: Die automatische Pause zu Fuß richtet sich nach der GPS-Geschwindigkeit, wo das Handy keine Schritte zählt.
Whats-New-De: Nach einer Minute ohne GPS fragt die Aufzeichnung, ob der Standort an und genau ist.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-05 08:58:31 +01:00
..
fake_firmware_relay.dart feat(train): the Loop's firmware updates, directly or through the instance (ADR 0030, D10, D40) 2026-10-30 15:52:59 +01:00
fake_health_platform.dart Merge branch 'train-days' into integration 2026-11-04 09:32:11 +01:00
fake_jellyfin.dart feat(train): smaller copies of lossless tracks, transcoded by Jellyfin to Opus (ADR 0030, D52) 2026-10-30 15:53:09 +01:00
fake_loop_platform.dart feat(train): the Loop's own detection of training, switched on its screen (ADR 0037) 2026-11-02 14:56:17 +01:00
fake_movement_platform.dart feat(train): reminders to move and workouts suggested from the steps (ADR 0037) 2026-11-02 14:56:12 +01:00
fake_place_search_gateway.dart feat(train): search for places in the route planner, through Photon (ADR 0030, D50) 2026-10-30 15:53:07 +01:00
fake_recorder_platform.dart fix(train): a recording followed whichever starts first, the app listening or the service 2026-11-05 08:58:31 +01:00
fake_route_files.dart feat(train): a workout out as GPX, TCX or FIT (ADR 0030, D49) 2026-10-30 15:53:05 +01:00
fake_routing_gateway.dart feat(train): routes kept as sealed rows, planned on the map (ADR 0030, D44) 2026-10-30 15:53:02 +01:00
fake_weather_gateway.dart feat(train): workouts' weather from Open-Meteo, through the instance (ADR 0036) 2026-11-02 14:01:34 +01:00
fit_reader.dart feat(train): a workout out as GPX, TCX or FIT (ADR 0030, D49) 2026-10-30 15:53:05 +01:00
memory_content_key_gateway.dart feat(train): the person's key on Train's devices (ADR 0030, D15) 2026-10-30 15:52:47 +01:00
memory_day_gateway.dart feat(train): Days, the Loop's days and nights kept sealed (ADR 0030, D37, D38) 2026-10-30 15:52:57 +01:00
memory_place_gateway.dart feat(train): equipment by place and a plate calculator (ADR 0034) 2026-11-02 13:31:46 +01:00
memory_plan_gateway.dart feat(train): interval plans, synced and sealed, with an editor and templates (ADR 0030, D42) 2026-10-30 15:52:59 +01:00
memory_profile_gateway.dart feat(train): the body's figures in a sealed, synced profile (ADR 0030, D33, D34) 2026-10-30 15:52:55 +01:00
memory_route_gateway.dart feat(train): routes kept as sealed rows, planned on the map (ADR 0030, D44) 2026-10-30 15:53:02 +01:00
memory_strength_plan_gateway.dart feat(train): strength plans and sessions (ADR 0035) 2026-11-02 13:31:51 +01:00
memory_weight_gateway.dart feat(train): weight, entered on Progress and read from Health Connect, sealed and synced (ADR 0030, D63) 2026-11-04 09:32:10 +01:00
memory_workout_gateway.dart feat(train): other apps' workouts read from Health Connect (ADR 0030, D31) 2026-10-30 15:52:53 +01:00