This commit is contained in:
@ -1,8 +1,8 @@
|
||||
---
|
||||
issueRef: "#157"
|
||||
version: 7
|
||||
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
|
||||
updatedAt: 1785256180427
|
||||
version: 8
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedAt: 1785321673274
|
||||
---
|
||||
## Cadrage UX — agent UX (2026-07-28)
|
||||
|
||||
|
||||
@ -2,15 +2,15 @@
|
||||
id: "4ba5c5bc-c575-4afc-bb55-93feb7e7ad9c"
|
||||
number: 157
|
||||
title: "[DevFrontend] Distance live montre sur séance en cours"
|
||||
status: "open"
|
||||
status: "qa"
|
||||
priority: "medium"
|
||||
sprint: "d5c18b44-0eec-46db-b8ab-506cfee0bfea"
|
||||
links: [{"target":"#142","kind":"blocks"},{"target":"#106","kind":"relatesTo"},{"target":"#145","kind":"dependsOn"}]
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedBy: {"kind":"agent","agent_id":"f8f40941-ecf7-4830-b9de-8818a099f448"}
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
createdAt: 1785180656723
|
||||
updatedAt: 1785256180427
|
||||
version: 7
|
||||
updatedAt: 1785321673274
|
||||
version: 8
|
||||
---
|
||||
Ajouter la distance parcourue live remontée par la montre compatible, avec affichage léger côté téléphone pendant la séance et réutilisation côté montre dans le panneau secondaire. Dégradation silencieuse si donnée indisponible.
|
||||
@ -1,8 +1,8 @@
|
||||
---
|
||||
issueRef: "#164"
|
||||
version: 9
|
||||
updatedBy: {"kind":"user"}
|
||||
updatedAt: 1785318038269
|
||||
version: 10
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedAt: 1785321673362
|
||||
---
|
||||
|
||||
## #164 — Cadrage UX (2026-07-28)
|
||||
|
||||
@ -2,15 +2,15 @@
|
||||
id: "879caaa3-2658-4ad8-bfa0-a7444cffc1b0"
|
||||
number: 164
|
||||
title: "[Bug] Plus de son en fin de chrono"
|
||||
status: "open"
|
||||
status: "qa"
|
||||
priority: "medium"
|
||||
sprint: "abc4f969-b169-45f7-988c-daeeab762201"
|
||||
links: []
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
createdAt: 1785243194849
|
||||
updatedAt: 1785318038269
|
||||
version: 9
|
||||
updatedAt: 1785321673362
|
||||
version: 10
|
||||
---
|
||||
Il n'y a plus de bips en fin de chrono. Sur les 3 derniere seconde il doit y avoir un big court et un bip plus long à 0. J'aiemrais que la montre vibre quand le chrono arrive à 0
|
||||
@ -1,8 +1,8 @@
|
||||
---
|
||||
issueRef: "#174"
|
||||
version: 3
|
||||
updatedBy: {"kind":"user"}
|
||||
updatedAt: 1785318038485
|
||||
version: 4
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedAt: 1785321673382
|
||||
---
|
||||
|
||||
## #174 — Cadrage Main (2026-07-28)
|
||||
|
||||
@ -2,15 +2,15 @@
|
||||
id: "f2db430b-48cf-4626-beae-611ffb352043"
|
||||
number: 174
|
||||
title: "[Bug] La montre quitte l'application ou revient à l'accueil pendant une séance/au lancement d'un chrono"
|
||||
status: "open"
|
||||
status: "qa"
|
||||
priority: "high"
|
||||
sprint: "abc4f969-b169-45f7-988c-daeeab762201"
|
||||
links: [{"target":"#127","kind":"relatesTo"},{"target":"#165","kind":"relatesTo"}]
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
createdAt: 1785257860730
|
||||
updatedAt: 1785318038485
|
||||
version: 3
|
||||
updatedAt: 1785321673382
|
||||
version: 4
|
||||
---
|
||||
Corriger le cas où, pendant une séance, le lancement d'un chrono ou certains changements d'état renvoient la montre vers l'écran d'accueil système au lieu de rester sur l'application GameTime. Le comportement attendu est que la montre reste ancrée sur la séance active tant qu'une séance est en cours.
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
---
|
||||
issueRef: "#176"
|
||||
version: 4
|
||||
updatedBy: {"kind":"agent","agent_id":"f3408f5d-469c-4f64-9485-d8b218f3ff26"}
|
||||
updatedAt: 1785318771867
|
||||
version: 5
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedAt: 1785321673401
|
||||
---
|
||||
|
||||
## #176 — Cadrage UX (2026-07-29)
|
||||
|
||||
@ -2,15 +2,15 @@
|
||||
id: "3da05d4c-9a2c-4371-95d2-7a00a157bccc"
|
||||
number: 176
|
||||
title: "[UI] Mauvais scaling chrono seul d'une etape"
|
||||
status: "open"
|
||||
status: "qa"
|
||||
priority: "medium"
|
||||
sprint: "d5c18b44-0eec-46db-b8ab-506cfee0bfea"
|
||||
links: []
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"agent","agent_id":"f3408f5d-469c-4f64-9485-d8b218f3ff26"}
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
createdAt: 1785318071566
|
||||
updatedAt: 1785318771867
|
||||
version: 4
|
||||
updatedAt: 1785321673401
|
||||
version: 5
|
||||
---
|
||||
Lorsqu'une étape ne possède qu'un chrono seul, le chrono garde une taille assez petite. Il garde la meme taille que quand il y a le bouton "Commencer" en dessous de lui et même avec ce bouton, il ne prend pas toute la place qu'il pourrait. Je pense qu'il faudrait agrandire le chrono de façon a ce que le chrono + le bouton commencer prenne la place disponible, et une fois qu'on clique sur le bouton commencer, et que le bouton disparait, il faudrait que le chrono s'agrandisse pour prendre la place disponible
|
||||
@ -1,8 +1,8 @@
|
||||
---
|
||||
issueRef: "#177"
|
||||
version: 4
|
||||
updatedBy: {"kind":"agent","agent_id":"f3408f5d-469c-4f64-9485-d8b218f3ff26"}
|
||||
updatedAt: 1785318789682
|
||||
version: 5
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedAt: 1785321673419
|
||||
---
|
||||
|
||||
## #177 — Cadrage UX (2026-07-29)
|
||||
|
||||
@ -2,15 +2,15 @@
|
||||
id: "9f2dcd00-5b90-41ad-9215-9c2fa405048c"
|
||||
number: 177
|
||||
title: "[UI] Boutons lors d'une étape avec uniquement un nombre de répétition a revoir"
|
||||
status: "open"
|
||||
status: "closed"
|
||||
priority: "medium"
|
||||
sprint: "d5c18b44-0eec-46db-b8ab-506cfee0bfea"
|
||||
links: []
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"agent","agent_id":"f3408f5d-469c-4f64-9485-d8b218f3ff26"}
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
createdAt: 1785318287363
|
||||
updatedAt: 1785318789682
|
||||
version: 4
|
||||
updatedAt: 1785321673419
|
||||
version: 5
|
||||
---
|
||||
Quand on a une étape avec uniquement un nombre de répétitions, on a 3 boutons au total qui s'affiche en dessous du nombre de répétitions à faire qui sont, de gauche a droite, "Passer l'étape", trois petit point de menu, "Etape Suivante". Ca rend très mal. J'aimerais que UX voit ce qu'il peut faire sachant qu'il faut garder de la place et de la cohérence avec les autres cas ou il y aurait plus d'informations à afficher
|
||||
@ -1,6 +1,6 @@
|
||||
---
|
||||
issueRef: "#178"
|
||||
version: 3
|
||||
updatedBy: {"kind":"user"}
|
||||
updatedAt: 1785318628907
|
||||
version: 4
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedAt: 1785321673439
|
||||
---
|
||||
|
||||
@ -2,15 +2,15 @@
|
||||
id: "86c6a104-f509-4fd9-91f0-0898c3d2414a"
|
||||
number: 178
|
||||
title: "[Bug] les boutons actions ne sont pas toujours fonctionnels"
|
||||
status: "open"
|
||||
status: "qa"
|
||||
priority: "medium"
|
||||
sprint: "abc4f969-b169-45f7-988c-daeeab762201"
|
||||
links: []
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
createdAt: 1785318553666
|
||||
updatedAt: 1785318628907
|
||||
version: 3
|
||||
updatedAt: 1785321673439
|
||||
version: 4
|
||||
---
|
||||
Il y a encore pas mal de cas ou les boutons actions pour passer les series ou passer les repos ou les etapes qui ne fonctionnent pas sur la montre
|
||||
@ -2215,7 +2215,7 @@
|
||||
"issueRef": "#157",
|
||||
"path": "157",
|
||||
"title": "[DevFrontend] Distance live montre sur séance en cours",
|
||||
"status": "open",
|
||||
"status": "qa",
|
||||
"priority": "medium",
|
||||
"sprint": "d5c18b44-0eec-46db-b8ab-506cfee0bfea",
|
||||
"assignedAgentIds": [],
|
||||
@ -2223,7 +2223,7 @@
|
||||
"kind": "agent",
|
||||
"agent_id": "57695b92-24d0-4876-837c-76116e70a6ae"
|
||||
},
|
||||
"updatedAt": 1785256180427
|
||||
"updatedAt": 1785321673274
|
||||
},
|
||||
{
|
||||
"issueRef": "#158",
|
||||
@ -2316,14 +2316,14 @@
|
||||
"issueRef": "#164",
|
||||
"path": "164",
|
||||
"title": "[Bug] Plus de son en fin de chrono",
|
||||
"status": "open",
|
||||
"status": "qa",
|
||||
"priority": "medium",
|
||||
"sprint": "abc4f969-b169-45f7-988c-daeeab762201",
|
||||
"assignedAgentIds": [],
|
||||
"createdBy": {
|
||||
"kind": "user"
|
||||
},
|
||||
"updatedAt": 1785318038269
|
||||
"updatedAt": 1785321673362
|
||||
},
|
||||
{
|
||||
"issueRef": "#165",
|
||||
@ -2447,7 +2447,7 @@
|
||||
"issueRef": "#174",
|
||||
"path": "174",
|
||||
"title": "[Bug] La montre quitte l'application ou revient à l'accueil pendant une séance/au lancement d'un chrono",
|
||||
"status": "open",
|
||||
"status": "qa",
|
||||
"priority": "high",
|
||||
"sprint": "abc4f969-b169-45f7-988c-daeeab762201",
|
||||
"assignedAgentIds": [],
|
||||
@ -2455,7 +2455,7 @@
|
||||
"kind": "agent",
|
||||
"agent_id": "57695b92-24d0-4876-837c-76116e70a6ae"
|
||||
},
|
||||
"updatedAt": 1785318038485
|
||||
"updatedAt": 1785321673382
|
||||
},
|
||||
{
|
||||
"issueRef": "#175",
|
||||
@ -2475,40 +2475,40 @@
|
||||
"issueRef": "#176",
|
||||
"path": "176",
|
||||
"title": "[UI] Mauvais scaling chrono seul d'une etape",
|
||||
"status": "open",
|
||||
"status": "qa",
|
||||
"priority": "medium",
|
||||
"sprint": "d5c18b44-0eec-46db-b8ab-506cfee0bfea",
|
||||
"assignedAgentIds": [],
|
||||
"createdBy": {
|
||||
"kind": "user"
|
||||
},
|
||||
"updatedAt": 1785318771867
|
||||
"updatedAt": 1785321673401
|
||||
},
|
||||
{
|
||||
"issueRef": "#177",
|
||||
"path": "177",
|
||||
"title": "[UI] Boutons lors d'une étape avec uniquement un nombre de répétition a revoir",
|
||||
"status": "open",
|
||||
"status": "closed",
|
||||
"priority": "medium",
|
||||
"sprint": "d5c18b44-0eec-46db-b8ab-506cfee0bfea",
|
||||
"assignedAgentIds": [],
|
||||
"createdBy": {
|
||||
"kind": "user"
|
||||
},
|
||||
"updatedAt": 1785318789682
|
||||
"updatedAt": 1785321673419
|
||||
},
|
||||
{
|
||||
"issueRef": "#178",
|
||||
"path": "178",
|
||||
"title": "[Bug] les boutons actions ne sont pas toujours fonctionnels",
|
||||
"status": "open",
|
||||
"status": "qa",
|
||||
"priority": "medium",
|
||||
"sprint": "abc4f969-b169-45f7-988c-daeeab762201",
|
||||
"assignedAgentIds": [],
|
||||
"createdBy": {
|
||||
"kind": "user"
|
||||
},
|
||||
"updatedAt": 1785318628907
|
||||
"updatedAt": 1785321673439
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -2900,6 +2900,17 @@ final class _CurrentStepPane extends StatelessWidget {
|
||||
),
|
||||
],
|
||||
const SizedBox(height: 4),
|
||||
if (step.type == ExerciseStepType.reps) ...[
|
||||
FilledButton.icon(
|
||||
onPressed: onCompleteStep,
|
||||
style: FilledButton.styleFrom(
|
||||
minimumSize: const Size.fromHeight(48),
|
||||
),
|
||||
icon: const Icon(Icons.check),
|
||||
label: const Text('Étape suivante'),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
],
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
@ -2933,19 +2944,6 @@ final class _CurrentStepPane extends StatelessWidget {
|
||||
),
|
||||
],
|
||||
),
|
||||
if (step.type == ExerciseStepType.reps) ...[
|
||||
const SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: FilledButton.icon(
|
||||
onPressed: onCompleteStep,
|
||||
style: FilledButton.styleFrom(
|
||||
minimumSize: const Size.fromHeight(44),
|
||||
),
|
||||
icon: const Icon(Icons.check),
|
||||
label: const Text('Étape suivante'),
|
||||
),
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
],
|
||||
@ -2977,23 +2975,38 @@ final class _TimedStepBody extends StatelessWidget {
|
||||
children: [
|
||||
Text('Objectif : ${_formatShortSeconds(step.defaultTargetValue)}'),
|
||||
const SizedBox(height: 4),
|
||||
Center(
|
||||
child: Text(
|
||||
Expanded(
|
||||
child: LayoutBuilder(
|
||||
builder: (context, constraints) {
|
||||
return FittedBox(
|
||||
fit: BoxFit.contain,
|
||||
alignment: Alignment.center,
|
||||
child: SizedBox(
|
||||
width: constraints.maxWidth,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
Text(
|
||||
remainingLabel,
|
||||
style: Theme.of(context).textTheme.displayMedium?.copyWith(
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.displayMedium
|
||||
?.copyWith(
|
||||
fontFamily: 'Anton',
|
||||
fontFeatures: AppTextStyles.timer(context).fontFeatures,
|
||||
fontFeatures: AppTextStyles.timer(
|
||||
context,
|
||||
).fontFeatures,
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
),
|
||||
),
|
||||
if (!running) ...[
|
||||
const SizedBox(height: 8),
|
||||
if (readyToStart) ...[
|
||||
Text(
|
||||
'Chrono prêt',
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.titleSmall?.copyWith(
|
||||
style: Theme.of(context).textTheme.titleSmall
|
||||
?.copyWith(
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
),
|
||||
@ -3009,6 +3022,13 @@ final class _TimedStepBody extends StatelessWidget {
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1947,7 +1947,20 @@ void main() {
|
||||
find.widgetWithText(OutlinedButton, 'Passer l’étape'),
|
||||
findsOneWidget,
|
||||
);
|
||||
expect(find.widgetWithText(FilledButton, 'Étape suivante'), findsOneWidget);
|
||||
final nextStepButton = find.widgetWithText(FilledButton, 'Étape suivante');
|
||||
final skipStepButton = find.widgetWithText(
|
||||
OutlinedButton,
|
||||
'Passer l’étape',
|
||||
);
|
||||
expect(nextStepButton, findsOneWidget);
|
||||
expect(
|
||||
tester.getTopLeft(nextStepButton).dy,
|
||||
lessThan(tester.getTopLeft(skipStepButton).dy),
|
||||
);
|
||||
expect(
|
||||
tester.getSize(nextStepButton).width,
|
||||
greaterThan(tester.getSize(skipStepButton).width),
|
||||
);
|
||||
await tester.tap(find.text('Étape suivante'));
|
||||
await tester.pump();
|
||||
|
||||
@ -1999,6 +2012,12 @@ void main() {
|
||||
await tester.pump();
|
||||
|
||||
expect(find.text('00:05'), findsOneWidget);
|
||||
expect(
|
||||
find.byWidgetPredicate(
|
||||
(widget) => widget is FittedBox && widget.fit == BoxFit.contain,
|
||||
),
|
||||
findsWidgets,
|
||||
);
|
||||
await tester.tap(find.widgetWithText(FilledButton, 'Lancer'));
|
||||
await tester.pump();
|
||||
clock.value = DateTime.utc(2026, 7, 17, 12, 0, 2);
|
||||
|
||||
Reference in New Issue
Block a user