diff --git a/docs/regles-metier/06-audio-guides-multi-sequences.md b/docs/regles-metier/06-audio-guides-multi-sequences.md index dc771f6..d7fbf1f 100644 --- a/docs/regles-metier/06-audio-guides-multi-sequences.md +++ b/docs/regles-metier/06-audio-guides-multi-sequences.md @@ -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)