feat(train): the settings' explanations behind a question mark (ADR 0030, D63)

What a switch or a section explains, rather than what is the person's
own, is one tap away: `HelpTitle`, a tile's title with halkyon_ui's
`HelpButton` beside it, in place of the explaining subtitles of Moving
more's reminders and suggestions, the music's playlists and smaller
copies, and the Loop's detection, firmware check and firmware through
the instance. Health Connect's short hints stay (they name what each
switch does, and its "taken back" state takes their place), as do its
rationale, the Loop's warnings before an update or a reset and the
settings' one-line hints.

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-03 22:11:57 +01:00
commit b7db078c8e
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -963,6 +963,25 @@ void main() {
await tester.pumpAndSettle();
}
testWidgets("the switches' explanations wait behind their question marks "
'(D63)', (tester) async {
await openMovement(tester);
const hint =
'When the phone counted hardly a step for a while; never while '
'recording or in a car.';
expect(find.text(hint), findsNothing);
await tester.tap(
find.descendant(
of: find.widgetWithText(SwitchListTile, 'Remind me to move'),
matching: find.byType(HelpButton),
),
);
await tester.pumpAndSettle();
expect(find.text(hint), findsOneWidget);
expect(platform.configured, [null], reason: 'nothing switched');
});
testWidgets('reminders turned on ask for the permissions, and the job '
'gets the settings and the words, each change again', (tester) async {
await openMovement(tester);