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:
@@ -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
|
### 16.4 Modes Vélo et Transport
|
||||||
|
|
||||||
**Décision** : Même logique voiture avec tolérances ajustées
|
**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 navigation libre piéton (skip, retour, saut direct liste)
|
||||||
- Tester mode voiture : déclenchement GPS auto rayon 30m
|
- Tester mode voiture : déclenchement GPS auto rayon 30m
|
||||||
- Tester navigation manuelle voiture : boutons actifs + warning si vitesse >10 km/h
|
- 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 affichage distance + ETA + direction (flèche 8 directions)
|
||||||
- Tester rayon tolérance "point manqué" (popup 3 actions)
|
- Tester rayon tolérance "point manqué" (popup 3 actions)
|
||||||
- Tester mode vélo (rayon 50m) et transport (rayon 100m)
|
- Tester mode vélo (rayon 50m) et transport (rayon 100m)
|
||||||
|
|||||||
Reference in New Issue
Block a user