feat: Version 3.6.3 - Carte IGN, mode boussole, corrections Flutter analyze

Nouvelles fonctionnalités:
- #215 Mode boussole + carte IGN/satellite (Mode terrain)
- #53 Définition zoom maximal pour éviter sur-zoom
- #14 Correction bug F5 déconnexion
- #204 Design couleurs flashy
- #205 Écrans utilisateurs simplifiés

Corrections Flutter analyze:
- Suppression warnings room.g.dart, chat_service.dart, api_service.dart
- 0 error, 0 warning, 30 infos (suggestions de style)

Autres:
- Intégration tuiles IGN Plan et IGN Ortho (geopf.fr)
- flutter_compass pour Android/iOS
- Réorganisation assets store

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-19 17:46:03 +01:00
parent 232940b1eb
commit 5b6808db25
62 changed files with 1428 additions and 3130 deletions

View File

@@ -50,6 +50,57 @@ class HiveService {
bool _isInitialized = false;
bool get isInitialized => _isInitialized;
// === INITIALISATION LÉGÈRE POUR F5 (préserve les données) ===
/// Initialisation légère de Hive SANS destruction des données
/// Utilisée pour le F5 sur Web afin de vérifier si une session existe
/// Retourne true si l'initialisation a réussi et qu'une session utilisateur existe
Future<bool> initializeWithoutReset() async {
try {
debugPrint('🔧 Initialisation légère de Hive (préservation des données)...');
// 1. Initialisation de base de Hive (idempotent)
await Hive.initFlutter();
debugPrint('✅ Hive.initFlutter() terminé');
// 2. Enregistrement des adaptateurs (idempotent)
_registerAdapters();
// 3. Ouvrir les boxes SANS les détruire
await _createAllBoxes();
// 4. Vérifier si une session utilisateur existe
bool hasSession = false;
try {
if (Hive.isBoxOpen(AppKeys.settingsBoxName)) {
final settingsBox = Hive.box(AppKeys.settingsBoxName);
final userId = settingsBox.get('current_user_id');
if (userId != null) {
// Vérifier que l'utilisateur existe dans la box user
if (Hive.isBoxOpen(AppKeys.userBoxName)) {
final userBox = Hive.box<UserModel>(AppKeys.userBoxName);
final user = userBox.get(userId);
if (user != null && user.hasValidSession) {
hasSession = true;
debugPrint('✅ Session utilisateur trouvée pour ID: $userId');
}
}
}
}
} catch (e) {
debugPrint('⚠️ Erreur vérification session: $e');
}
_isInitialized = true;
debugPrint('✅ Initialisation légère terminée, session existante: $hasSession');
return hasSession;
} catch (e) {
debugPrint('❌ Erreur lors de l\'initialisation légère: $e');
return false;
}
}
// === INITIALISATION COMPLÈTE (appelée par main.dart) ===
/// Initialisation complète de Hive avec réinitialisation totale