Files
cssd/lib/main.dart
T
2020-05-10 14:09:07 +04:30

136 lines
5.3 KiB
Dart

import 'package:cssd/config/routes.dart';
import 'package:cssd/pages/test_add_screen.dart';
import 'package:cssd/pages/cycle_add_screen.dart';
import 'package:cssd/pages/cycle_detail_screen.dart';
import 'package:cssd/pages/cycle_filter_screen.dart';
import 'package:cssd/pages/cycle_result_screen.dart';
import 'package:cssd/pages/cycle_scan_screen.dart';
import 'package:cssd/pages/label_add_screen.dart';
import 'package:cssd/pages/label_detail_screen.dart';
import 'package:cssd/pages/label_filter_screen.dart';
import 'package:cssd/pages/label_result_screen.dart';
import 'package:cssd/pages/label_scan_screen.dart';
import 'package:cssd/pages/login_screen.dart';
import 'package:cssd/pages/my_info_screen.dart';
import 'package:cssd/pages/test_detail_screen.dart';
import 'package:cssd/pages/test_result_screen.dart';
import 'package:cssd/pages/test_filter_screen.dart';
import 'package:cssd/pages/test_verify_screen.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/providers/cycles.dart';
import 'package:cssd/providers/input.dart';
import 'package:cssd/providers/auth.dart';
import 'package:cssd/providers/labels.dart';
import 'package:cssd/providers/my_info.dart';
import 'package:cssd/providers/test_results.dart';
import 'package:cssd/widgets/Global/splash_screen.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_phoenix/flutter_phoenix.dart';
import 'package:provider/provider.dart';
import './pages/home_screen.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<Auth>(
builder: (ctx, auth, _) => Consumer<ConnectivityProvider>(
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.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.labelResultScreen: (ctx) => LabelResultScreen(),
Routes.cycleResultScreen: (ctx) => CycleResultScreen(),
Routes.testVerifyScreen: (ctx) => TestVerifyScreen(),
},
);
},
),
),
);
}
}