Files
GameTime/.ideai/tickets/108/carnet.md
Blomios 917777e18b chore(wip): consolidation intermédiaire multi-tickets (sprints Statistiques, UI, Bug resolution, Serveur-client)
Regroupe l'état de travail en cours réalisé dans un même worktree sur
plusieurs tickets/sprints (#85, #136, #145, #155-160, #162-164),
mélangeant des tickets QA et inProgress. Ne constitue pas une feature
terminée : commit de sauvegarde avant triage/split par ticket en
branches feature/* dédiées. Exclut les dossiers d'environnement de
build locaux et le heap dump parasite (.gitignore mis à jour).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-28 16:48:54 +02:00

3.9 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#108 3
kind agent_id
agent 57695b92-24d0-4876-837c-76116e70a6ae
1785134675226

#108 — Bandeau notification téléphone pendant une séance (UX, 2026-07-26)

Statut : cadrage UX exploitable, prêt pour Architect/DevFrontend, pas de blocage.

Principe

La notification est un résumé d'accès rapide, jamais une copie de l'écran de séance. Elle répond à une seule question en un regard : « où j'en suis, et ce que fait le chrono ». Référence Heavy : titre = contexte, corps = donnée vivante, pas d'action complexe.

Contenu compact (état replié, vue par défaut)

  • Titre : nom de l'exercice en cours (ex. « Squats bulgares »).
  • Texte : une seule ligne combinant série et mesure pertinente, priorité dans cet ordre si plusieurs mesures actives :
    1. Chrono actif → mm:ss en cours (temps écoulé de l'étape/série, ou chrono score s'il est démarré — cf. gametime-ux-score-chrono).
    2. Sinon Répétitions/Score → Série 2/4 · 8 reps.
    3. Sinon (étape sans mesure, ex. consigne) → nom court de l'étape.
  • Icône : icône app (monochrome, cf. exigence notification Android — silhouette du logo "GT" sur fond transparent).
  • État repos : titre devient « Repos », texte = décompte mm:ss restant + « Ensuite : » tronqué si besoin.
  • État pause de séance : titre inchangé, texte préfixé par « En pause · » avant l'info gelée (le chrono affiché est figé, pas de tick visuel — cohérent avec la règle « jamais actif pendant une pause » de gametime-ux-score-chrono).

Contenu étendu (notification développée / longue)

Deuxième ligne ajoutée sous la ligne compacte :

  • Fil de contexte discret : Programme 1/2 · Exercice 3/8 (même format que le header d'exécution, cf. gametime-ux-series-counter) — pas de répétition du nom d'exercice déjà en titre.
  • Pas de 3e ligne, pas de liste d'étapes à venir : la notification reste un résumé, l'utilisateur rouvre l'app pour le détail.

Actions

MVP : aucune action bouton dans la notification (pas de Pause/Suivant intégrés). Justification : réduit le risque d'appui accidentel hors app, évite de dupliquer des commandes qui existent déjà dans l'app et sur la montre (#105/#118), et simplifie l'implémentation (pas de PendingIntent supplémentaire à maintenir en cohérence avec le moteur d'exécution). Le tap sur la notification entière ramène à l'écran d'exécution en cours. À réévaluer seulement si retour utilisateur explicite après usage réel — ne pas anticiper.

Règles de rafraîchissement

  • Notification persistante (non "swipeable") tant qu'une séance est active — cohérent avec le statut foreground service déjà en place pour la montre (gametime-watch-companion-implementation, #91-D).
  • Mise à jour du texte à chaque tick de seconde uniquement si un chrono est affiché (chrono score, repos) ; sinon mise à jour uniquement sur changement d'état (série suivante, pause, reprise) — pas de rafraîchissement inutile qui viderait la batterie ou ferait clignoter la notification.
  • Notification retirée immédiatement à la fin de séance (Terminer/Abandonner), jamais laissée en état "orpheline".

États à couvrir (design implémentable)

État Titre Texte
Série active, chrono <Exercice> 02:14
Série active, reps/score, sans chrono <Exercice> Série 2/4 · 8 reps
Repos Repos 01:30 restant · Ensuite : <Exercice>
Pause séance <Exercice> En pause · <dernière valeur gelée>
Séance terminée / abandonnée notification retirée

Hors périmètre MVP

  • Actions rapides (pause/suivant) dans la notification.
  • Notification enrichie avec image/illustration d'exercice (pas de média viewer en notification, cf. gametime-ux-exercise-media-viewer réservé à l'app).