doc(regles-metier): ajouter système double clic audio-guides voiture

Ajoute une nouvelle section 16.3.4 décrivant le comportement du bouton
"Suivant" en mode voiture avec système intelligent à double clic :

- Premier clic : désactive GPS auto, passe en mode manuel, séquence suivante
- Deuxième clic (<10s) : sort de l'audio-guide et met en pause
- Clics suivants (>10s) : navigation normale entre séquences

Ajoute également :
- Détection et gestion du hors itinéraire (>1km, >10min)
- Proposition de reprise au retour sur itinéraire (<100m)
- Respect des séquences skippées volontairement

Résout le problème des embouteillages où l'utilisateur reste
30 minutes sans contenu en attendant le prochain point GPS.

Référence: CLARIFICATIONS-REGLES-METIER.md section 2
This commit is contained in:
jpgiannetti
2026-02-05 13:36:38 +01:00
parent 36e30bb5ab
commit 159e0b2ff4

View File

@@ -480,6 +480,117 @@ Popup 5 secondes :
---
#### 16.3.4 Système double clic et sortie audio-guide
**Problème** : Que se passe-t-il si l'utilisateur clique "Suivant" pendant un audio-guide en mode voiture, alors qu'il est bloqué dans un embouteillage et va mettre 30 minutes pour atteindre le prochain point GPS ?
**Solution** : Système intelligent à double clic permettant de désactiver le GPS automatique puis de sortir de l'audio-guide.
##### Comportement bouton [▶|] Suivant
**1. Premier clic (mode GPS auto actif)** :
- Désactive GPS automatique
- Passe à la séquence suivante immédiatement
- Bascule en **mode manuel**
- Toast 3s : "Mode manuel activé. Cliquez à nouveau pour quitter l'audio-guide."
- Timer 10 secondes démarre
**2. Deuxième clic (dans les 10 secondes suivantes)** :
- Sort de l'audio-guide
- Audio-guide mis en **pause** (historique conservé)
- Retour au **flux normal** (algorithme de recommandation)
- Toast 2s : "Audio-guide en pause"
**3. Clics suivants (après 10 secondes)** :
- Passe à la séquence suivante (comportement standard mode manuel)
- Timer 10 secondes redémarre à chaque clic
**Schéma** :
```
Mode GPS auto → [Clic 1] → Mode manuel + séquence suivante + timer 10s
[Clic 2 < 10s] → Sortie audio-guide + pause
[Clic après 10s] → Séquence suivante + reset timer
```
##### Comportement bouton [|◀] Précédent
| Contexte | Action | Résultat |
|----------|--------|----------|
| **Dans audio-guide** (GPS auto ou manuel) | Séquence précédente (ou replay si <10s) | Reste dans audio-guide |
| **Hors audio-guide** (flux normal) | Contenu précédent | Si contenu précédent = audio-guide → reprend audio-guide |
##### Mode manuel
- **Persistant** : Reste actif jusqu'à fin audio-guide
- **Pas de réactivation GPS auto** pendant session en cours
- **Reset au redémarrage** : Si audio-guide relancé plus tard → repart en mode GPS auto par défaut
##### Détection et reprise après détour
**Règle 1 : Détection "hors itinéraire"**
```
Si user à >1 km de tous points GPS pendant >10 min :
→ Toast : "Audio-guide en pause (hors itinéraire)"
→ Icône audio-guide passe en gris (inactif)
```
**Règle 2 : Détection "retour sur itinéraire"**
```
Si user revient à <100m d'un point GPS non écouté :
→ Popup : "Reprendre audio-guide à la séquence X ?"
→ 3 boutons : Reprendre / Voir liste / Ignorer
```
**Règle 3 : Respect des clics manuels**
```
Si user a cliqué "Suivant" manuellement :
→ Séquence considérée "skippée volontairement"
→ Pas de proposition automatique de revenir en arrière
→ User peut revenir manuellement via liste séquences
```
##### Implémentation technique (référence)
```javascript
let lastSuivantClickTime = null;
const DOUBLE_CLICK_DELAY = 10000; // 10 secondes
function onSuivantClick() {
const now = Date.now();
if (audioGuideState.mode === 'gps_auto') {
// 1er clic : Désactive GPS auto
audioGuideState.mode = 'manual';
playNextSequence();
showToast("Mode manuel activé. Cliquez à nouveau pour quitter.", 3000);
lastSuivantClickTime = now;
}
else if (audioGuideState.mode === 'manual') {
if (lastSuivantClickTime && (now - lastSuivantClickTime) < DOUBLE_CLICK_DELAY) {
// 2ème clic rapide : Sort de l'audio-guide
pauseAudioGuide();
returnToNormalFlow();
showToast("Audio-guide en pause", 2000);
} else {
// Clic normal : Séquence suivante
playNextSequence();
lastSuivantClickTime = now;
}
}
}
```
**Justification** :
- Résout le problème des embouteillages (30 min sans contenu)
- Double intention claire : désactiver GPS puis sortir
- User garde toujours le contrôle (peut reprendre audio-guide plus tard)
- Historique conservé (pas de perte de progression)
---
### 16.4 Modes Vélo et Transport
**Décision** : Même logique voiture avec tolérances ajustées
@@ -725,6 +836,13 @@ Séquence 2 [fin]
- Tester navigation libre piéton (skip, retour, saut direct liste)
- Tester mode voiture : déclenchement GPS auto rayon 30m
- Tester navigation manuelle voiture : boutons actifs + warning si vitesse >10 km/h
- **Tester 1er clic Suivant (mode GPS auto) : passage mode manuel + séquence suivante immédiate + toast + timer 10s**
- **Tester 2ème clic Suivant <10s : sortie audio-guide + pause + retour flux normal**
- **Tester clics Suivant >10s : navigation séquences normale + reset timer**
- **Tester Précédent : retour séquence précédente ou replay si <10s écoulé**
- **Tester détection hors itinéraire >1km + >10min : toast + icône gris**
- **Tester détection retour sur itinéraire <100m point GPS non écouté : popup 3 boutons**
- **Tester respect clics manuels : séquences skippées volontairement non reproposées auto**
- Tester affichage distance + ETA + direction (flèche 8 directions)
- Tester rayon tolérance "point manqué" (popup 3 actions)
- Tester mode vélo (rayon 50m) et transport (rayon 100m)