import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_phoenix/flutter_phoenix.dart'; import 'package:provider/provider.dart'; import 'config/routes.dart'; import 'pages/cycle_add_screen.dart'; import 'pages/cycle_detail_screen.dart'; import 'pages/cycle_filter_screen.dart'; import 'pages/cycle_result_screen.dart'; import 'pages/cycle_scan_screen.dart'; import 'pages/forget_pass_screen.dart'; import 'pages/home_screen.dart'; import 'pages/label_add_screen.dart'; import 'pages/label_detail_screen.dart'; import 'pages/label_filter_screen.dart'; import 'pages/label_result_screen.dart'; import 'pages/label_scan_screen.dart'; import 'pages/label_update_screen.dart'; import 'pages/login_screen.dart'; import 'pages/my_info_screen.dart'; import 'pages/rePass_screen.dart'; import 'pages/test_add_screen.dart'; import 'pages/test_detail_screen.dart'; import 'pages/test_filter_screen.dart'; import 'pages/test_result_screen.dart'; import 'pages/test_scan_screen.dart'; import 'pages/test_verify_screen.dart'; import 'pages/verify_pass_screen.dart'; import 'providers/auth.dart'; import 'providers/connectivity.dart'; import 'providers/cycles.dart'; import 'providers/input.dart'; import 'providers/labels.dart'; import 'providers/my_info.dart'; import 'providers/test_results.dart'; import 'widgets/Global/splash_screen.dart'; import 'widgets/TestResultScreens/Add/capture_image.dart'; void main() { runApp(Phoenix(child: MyApp())); SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); // SystemChrome.setEnabledSystemUIOverlays([]); // SystemChrome.setSystemUIOverlayStyle( // const SystemUiOverlayStyle( // statusBarColor: Colors.red, // systemNavigationBarColor: Colors.red, // systemNavigationBarDividerColor: Colors.blue, // ), // ); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MultiProvider( providers: [ ChangeNotifierProvider.value( value: Auth(), ), ChangeNotifierProvider.value( value: TestResultsProvider(), ), ChangeNotifierProvider.value( value: Inputs(), ), ChangeNotifierProvider.value( value: MyInfoProvider(), ), ChangeNotifierProvider.value( value: LabelsProvider(), ), ChangeNotifierProvider.value( value: CyclesProvider(), ), ChangeNotifierProvider.value( value: ConnectivityProvider(), ) ], child: Consumer( builder: (ctx, auth, _) => Consumer( builder: (ct, connection, _) { connection.checkConnection(); print(connection.conStatus); return MaterialApp( debugShowCheckedModeBanner: false, title: 'CSSD-DOC', theme: ThemeData( primaryColor: Colors.black, // cursorColor: Colors.black, fontFamily: 'montserrat', // primaryTextTheme: TextTheme( // body1: TextStyle( // color: Colors.black, // ), // ) // textTheme: TextTheme( // body2: TextStyle(color: Colors.white, fontSize: 16), // ), ), home: auth.isAuth ? HomePage() : FutureBuilder( future: auth.tryAutoLogin(), builder: (ctx, authResultSnapshot) => authResultSnapshot.connectionState == ConnectionState.waiting ? SplashScreen() : LoginScreen(), ), routes: { Routes.homePage: (ctx) => HomePage(), Routes.loginScreen: (ctx) => LoginScreen(), Routes.forgetPassScreen: (ctx) => ForgetPassScreen(), Routes.myInfoScreen: (ctx) => MyInfoScreen(), Routes.testResultScreen: (ctx) => TestResultScreen(), Routes.testDetailsScreen: (ctx) => TestDetailsScreen(), Routes.testFilterScreen: (ctx) => TestFilterScreen(), // Routes.register: (ctx) => Register(), Routes.testResultAddScreen: (ctx) => TestResultAddScreen(), Routes.labelDetailScreen: (ctx) => LabelDetailScreen(), Routes.cycleDetailScreen: (ctx) => CycleDetailScreen(), Routes.labelFilterScreen: (ctx) => LabelFilterScreen(), Routes.cycleFilterScreen: (ctx) => CycleFilterScreen(), Routes.cycleScanScreen: (ctx) => CycleScanScreen(), Routes.labelScanScreen: (ctx) => LabelScanScreen(), Routes.cycleAddScreen: (ctx) => CycleAddScreen(), Routes.labelAddScreen: (ctx) => LabelAddScreen(), Routes.labelUpdateScreen: (ctx) => LabelUpdateScreen(), Routes.labelResultScreen: (ctx) => LabelResultScreen(), Routes.cycleResultScreen: (ctx) => CycleResultScreen(), Routes.testVerifyScreen: (ctx) => TestVerifyScreen(), Routes.testScanScreen: (ctx) => TestScanScreen(), Routes.sendCodeScreen: (ctx) => VerifyPassScreen(), Routes.rePassScreen: (ctx) => RePassScreen(), Routes.captureImageScreen: (ctx) => CaptureImage(), }, ); }, ), ), ); } }