manager-app/lib/main.dart
Thomas Fransolet a69d1aa03f WEB - WIP
2021-11-19 18:54:52 +01:00

94 lines
2.6 KiB
Dart

import 'dart:io';
import 'dart:ui';
import 'package:manager_app/Models/managerContext.dart';
import 'package:manager_app/Screens/Main/main_screen.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'Helpers/FileHelper.dart';
import 'Models/session.dart';
import 'Screens/login_screen.dart';
import 'app_context.dart';
import 'constants.dart';
//import 'package:window_size/window_size.dart';
Future<void> main() async {
String initialRoute;
WidgetsFlutterBinding.ensureInitialized();
/*if (Platform.isWindows) {
/*setWindowTitle("Manager");
setWindowMinSize(Size(1250, 850));
setWindowMaxSize(Size(3840, 2160));*/
}*/
initialRoute = '/welcome';
var session = await loadJsonSessionFile();
final MyApp myApp = MyApp(
initialRoute: initialRoute,
session: session
//context: localContext,
);
runApp(myApp);
}
class MyApp extends StatefulWidget {
final String initialRoute;
final Session session;
final ManagerAppContext managerAppContext;
MyApp({this.initialRoute, this.session, this.managerAppContext});
// This widget is the root of your application.
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<AppContext>(
create: (_) => AppContext(widget.managerAppContext),
child: MaterialApp(
scrollBehavior: MyCustomScrollBehavior(),
debugShowCheckedModeBanner: false,
title: 'Manager App Demo',
initialRoute: widget.initialRoute,
/*supportedLocales: [
const Locale('en', 'US'),
//const Locale('fr', 'FR'),
],*/
theme: ThemeData(
primarySwatch: Colors.blue,
scaffoldBackgroundColor: kBackgroundColor,
//fontFamily: "Vollkorn",
textTheme: TextTheme(bodyText1: TextStyle(color: kBodyTextColor)),
visualDensity: VisualDensity.adaptivePlatformDensity,
),
routes: {
'/welcome': (context) => LoginScreen(session: widget.session),
'/main': (context) => MainScreen()
}
),
);
}
}
Future<Session> loadJsonSessionFile() async {
Session session = await FileHelper().readSession();
print(session);
return session;
}
class MyCustomScrollBehavior extends MaterialScrollBehavior {
// Override behavior methods and getters like dragDevices
@override
Set<PointerDeviceKind> get dragDevices => {
PointerDeviceKind.touch,
PointerDeviceKind.mouse,
};
}