Files
unionflow-mobile-apps/lib/main.dart
dahoud 70cbd1c873 fix(mobile): URL changement mdp corrigée + v3.0 — multi-org, AppAuth, sécurité prod
Auth:
- profile_repository.dart: /api/auth/change-password → /api/membres/auth/change-password

Multi-org (Phase 3):
- OrgSelectorPage, OrgSwitcherBloc, OrgSwitcherEntry
- org_context_service.dart: headers X-Active-Organisation-Id + X-Active-Role

Navigation:
- MorePage: navigation conditionnelle par typeOrganisation
- Suppression adaptive_navigation (remplacé par main_navigation_layout)

Auth AppAuth:
- keycloak_webview_auth_service: fixes AppAuth Android
- AuthBloc: gestion REAUTH_REQUIS + premierLoginComplet

Onboarding:
- Nouveaux états: payment_method_page, onboarding_shared_widgets
- SouscriptionStatusModel mis à jour StatutValidationSouscription

Android:
- build.gradle: ProGuard/R8, network_security_config
- Gradle wrapper mis à jour
2026-04-07 20:56:03 +00:00

58 lines
1.9 KiB
Dart

/// UnionFlow - Application Mobile Révolutionnaire
///
/// Point d'entrée principal avec système d'authentification adaptatif
/// Architecture ultra-sophistiquée avec dashboard morphique basé sur les rôles
library main;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'app/app.dart';
import 'core/config/environment.dart';
import 'core/l10n/locale_provider.dart';
import 'core/theme/theme_provider.dart';
import 'core/di/injection.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
AppConfig.initialize();
GoogleFonts.config.allowRuntimeFetching = !AppConfig.isProd;
// Initialisation unique et automatique (DRY)
await configureDependencies();
// Mode immersif et config système
await _configureApp();
final localeProvider = LocaleProvider();
await localeProvider.initialize();
final themeProvider = await ThemeProvider.load();
runApp(UnionFlowApp(localeProvider: localeProvider, themeProvider: themeProvider));
}
/// Configure les paramètres globaux de l'application
Future<void> _configureApp() async {
// Configuration de l'orientation
await SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
]);
// Configuration de la barre de statut - Mode immersif
SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle(
statusBarColor: Colors.transparent, // Transparent pour mode immersif
statusBarIconBrightness: Brightness.dark, // Icônes sombres sur fond clair
statusBarBrightness: Brightness.light, // Pour iOS
systemNavigationBarColor: Colors.white, // Barre de navigation blanche
systemNavigationBarIconBrightness: Brightness.dark, // Icônes sombres
systemNavigationBarDividerColor: Colors.transparent, // Pas de séparateur
),
);
// Activer le mode edge-to-edge (immersif)
SystemChrome.setEnabledSystemUIMode(
SystemUiMode.edgeToEdge,
);
}