feat: synchronisation mode deconnecte fin chat et stats
This commit is contained in:
@@ -5,11 +5,14 @@ import 'package:go_router/go_router.dart';
|
||||
import 'dart:math' as math;
|
||||
import 'dart:convert';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:hive_flutter/hive_flutter.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:geosector_app/presentation/widgets/custom_button.dart';
|
||||
import 'package:geosector_app/presentation/widgets/custom_text_field.dart';
|
||||
import 'package:geosector_app/presentation/widgets/connectivity_indicator.dart';
|
||||
import 'package:geosector_app/core/services/app_info_service.dart';
|
||||
import 'package:geosector_app/core/services/hive_service.dart';
|
||||
import 'package:geosector_app/core/constants/app_keys.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:geosector_app/app.dart'; // Pour accéder aux instances globales
|
||||
|
||||
@@ -112,6 +115,50 @@ class _RegisterPageState extends State<RegisterPage> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
// VÉRIFICATION CRITIQUE : S'assurer que Hive est initialisé correctement
|
||||
// Vérifier la clé 'hive_initialized' dans la box settings
|
||||
try {
|
||||
// D'abord vérifier que les boxes sont disponibles
|
||||
if (!HiveService.instance.areBoxesInitialized()) {
|
||||
debugPrint('⚠️ RegisterPage: Boxes Hive non initialisées, redirection vers SplashPage');
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (mounted) {
|
||||
context.go('/?action=register');
|
||||
}
|
||||
});
|
||||
return; // IMPORTANT : Arrêter l'exécution du reste de initState
|
||||
}
|
||||
|
||||
// Ensuite vérifier la clé de réinitialisation
|
||||
if (Hive.isBoxOpen(AppKeys.settingsBoxName)) {
|
||||
final settingsBox = Hive.box(AppKeys.settingsBoxName);
|
||||
final isInitialized = settingsBox.get('hive_initialized', defaultValue: false);
|
||||
|
||||
if (isInitialized != true) {
|
||||
debugPrint('⚠️ RegisterPage: Réinitialisation Hive requise (hive_initialized=$isInitialized)');
|
||||
|
||||
// Forcer une réinitialisation complète via SplashPage
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (mounted) {
|
||||
context.go('/?action=register');
|
||||
}
|
||||
});
|
||||
return; // IMPORTANT : Arrêter l'exécution du reste de initState
|
||||
}
|
||||
|
||||
debugPrint('✅ RegisterPage: Hive correctement initialisé');
|
||||
}
|
||||
} catch (e) {
|
||||
debugPrint('❌ RegisterPage: Erreur lors de la vérification de hive_initialized: $e');
|
||||
// En cas d'erreur, forcer la réinitialisation
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (mounted) {
|
||||
context.go('/?action=register');
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// Déterminer si l'application s'exécute sur mobile
|
||||
_isMobile = !kIsWeb;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user