fix(train): a recording's screen opens as it starts, and pages run on beneath the floating bar (ADR 0030, D21)

An indoor row started showed its notification but not its screen: the
Record tab's card pushed the screen only after the service had started,
and gave up silently where the card was gone by then. Train's frame now
opens it as the recording's phase turns to recording; one found running
as the app opens leaves the tabs as they were. The notification tapped
opens the recording's screen, not merely the app (RecordingOpenings.kt).

A workout's page kept a SafeArea at its foot, whose inset under the
floating bar is the bar itself: its content stopped at the bar's top, a
plain band behind it. It runs on beneath the bar as the tabs do, and the
tabs' lists and a day's page end with the body's bottom padding rather
than a fixed 88 px, which left their last item under the bar.

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-01 23:36:41 +01:00
commit 1aa679fe3e
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -159,6 +159,14 @@ class FakeRecorderPlatform({
Future<({double lat, double lon})?> position() async =>
allows.contains(RecorderPermission.location) ? at : null;
final _openings = StreamController<void>.broadcast();
@override
Stream<void> openings() => _openings.stream;
/// The recording's notification tapped.
void openNotification() => _openings.add(null);
/// A recording that runs on, as when the app comes back to one.
void runOn(String path) => _file = File(path);