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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user