import 'package:pb_authenticator/pages/how_it_works.dart'; import 'package:pb_authenticator/pages/transfer_codes.dart'; import 'state/app_state.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_localizations/flutter_localizations.dart' show GlobalMaterialLocalizations, GlobalWidgetsLocalizations; import 'l10n/app_localizations.dart'; import 'state/file_storage.dart'; import 'package:pb_authenticator_state/state.dart' show Repository; import 'pages/pages.dart'; import 'package:provider/provider.dart'; import 'config/routes.dart'; void main() { var repository = Repository(FileStorage()); runApp(MultiProvider( providers: [ChangeNotifierProvider(create: (_) => AppState(repository))], child: MainApp(), )); } class MainApp extends StatelessWidget { // Locale information final Iterable supportedLocales = [const Locale('en')]; final Iterable localizationsDelegates = [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ]; MainApp({super.key}); @override Widget build(BuildContext context) { SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]); // Material/Cupertino app depending on platform return MaterialApp( onGenerateTitle: (context) => AppLocalizations.of(context)!.appName, theme: ThemeData.light(), darkTheme: ThemeData.dark(), themeMode: ThemeMode.system, initialRoute: AppRoutes.home, routes: { AppRoutes.home: (context) => const AndroidHomePage(), AppRoutes.edit: (context) => const AndroidEditPage(), AppRoutes.add: (context) => const AddPage(), AppRoutes.addScan: (context) => const ScanQRPage(), AppRoutes.settings: (context) => const SettingsPage(), AppRoutes.settingAcknowledgements: (context) => const AcknowledgementsPage(), AppRoutes.howItWorks: (context) => const HowItWorksPage(), AppRoutes.transferCodes: (context) => const TransferCodesPage(), }, localizationsDelegates: localizationsDelegates, supportedLocales: supportedLocales, ); } }