93 lines
2.6 KiB
Dart
93 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,
|
|
};
|
|
}
|