Initialisation du projet geosector complet (web + flutter)
This commit is contained in:
60
flutt/lib/main.dart
Normal file
60
flutt/lib/main.dart
Normal file
@@ -0,0 +1,60 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
|
||||
import 'package:geosector_app/app.dart';
|
||||
import 'package:hive_flutter/hive_flutter.dart';
|
||||
import 'package:geosector_app/core/data/models/user_model.dart';
|
||||
import 'package:geosector_app/core/data/models/operation_model.dart';
|
||||
import 'package:geosector_app/core/data/models/sector_model.dart';
|
||||
import 'package:geosector_app/core/data/models/passage_model.dart';
|
||||
import 'package:geosector_app/core/data/models/membre_model.dart';
|
||||
import 'package:geosector_app/core/constants/app_keys.dart';
|
||||
// Import centralisé pour les modèles chat
|
||||
import 'package:geosector_app/chat/models/chat_adapters.dart';
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
// Configurer le routage par chemin (URLs sans #)
|
||||
setUrlStrategy(PathUrlStrategy());
|
||||
|
||||
// Initialiser Hive
|
||||
await Hive.initFlutter();
|
||||
|
||||
// Enregistrer les adaptateurs Hive pour les modèles principaux
|
||||
Hive.registerAdapter(UserModelAdapter());
|
||||
Hive.registerAdapter(OperationModelAdapter());
|
||||
Hive.registerAdapter(SectorModelAdapter());
|
||||
Hive.registerAdapter(PassageModelAdapter());
|
||||
Hive.registerAdapter(MembreModelAdapter());
|
||||
|
||||
// Enregistrer les adaptateurs Hive pour le chat
|
||||
Hive.registerAdapter(ConversationModelAdapter());
|
||||
Hive.registerAdapter(MessageModelAdapter());
|
||||
Hive.registerAdapter(ParticipantModelAdapter());
|
||||
Hive.registerAdapter(AnonymousUserModelAdapter());
|
||||
Hive.registerAdapter(AudienceTargetModelAdapter());
|
||||
Hive.registerAdapter(NotificationSettingsAdapter());
|
||||
|
||||
// Ouvrir uniquement les boîtes essentielles au démarrage
|
||||
// La boîte des utilisateurs est nécessaire pour vérifier si un utilisateur est déjà connecté
|
||||
await Hive.openBox<UserModel>(AppKeys.usersBoxName);
|
||||
// Boîte pour les préférences utilisateur générales
|
||||
await Hive.openBox(AppKeys.settingsBoxName);
|
||||
|
||||
// Ouvrir les boîtes de chat également au démarrage pour le cache local
|
||||
await Hive.openBox<ConversationModel>(AppKeys.chatConversationsBoxName);
|
||||
await Hive.openBox<MessageModel>(AppKeys.chatMessagesBoxName);
|
||||
|
||||
// Les autres boîtes (operations, sectors, passages) seront ouvertes après connexion
|
||||
// dans UserRepository.login() via la méthode _ensureBoxIsOpen()
|
||||
|
||||
// Définir l'orientation de l'application
|
||||
await SystemChrome.setPreferredOrientations([
|
||||
DeviceOrientation.portraitUp,
|
||||
DeviceOrientation.portraitDown,
|
||||
]);
|
||||
|
||||
// Lancer l'application directement sans AppProviders
|
||||
runApp(const GeoSectorApp());
|
||||
}
|
||||
Reference in New Issue
Block a user