tablet-app/lib/main.dart

94 lines
2.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:managerapi/api.dart';
import 'package:provider/provider.dart';
import 'package:tablet_app/client.dart';
import 'Helpers/DatabaseHelper.dart';
import 'Models/tabletContext.dart';
import 'Screens/Configuration/config_view.dart';
import 'Screens/MainView/main_view.dart';
import 'Screens/Previous/previous_view.dart';
import 'app_context.dart';
import 'constants.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
String initialRoute;
TabletAppContext localContext = new TabletAppContext();
bool isConfig = false;
localContext = await DatabaseHelper.instance.getData();
if(localContext != null) {
print("we've got an local db !");
localContext.clientAPI = new Client(localContext.host);
isConfig = localContext.configuration != null;
print(localContext);
// Get config from manager
DeviceDetailDTO device = await localContext.clientAPI.deviceApi.deviceGetDetail(localContext.deviceId);
localContext.configuration.id = device.configurationId;
if (device.configurationId == null) {
print("device.configurationId == null");
localContext.configuration = null;
isConfig = false;
}
} else {
print("NO LOCAL DB !");
}
initialRoute = isConfig ? '/main' : '/config';
final MyApp myApp = MyApp(
initialRoute: initialRoute,
tabletAppContext: localContext,
);
runApp(myApp);
}
class MyApp extends StatefulWidget {
final String initialRoute;
final TabletAppContext tabletAppContext;
MyApp({this.initialRoute, this.tabletAppContext});
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
TabletAppContext tabletAppContext;
@override
void initState() {
//tabletAppContext = widget.tabletAppContext;
super.initState();
}
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<AppContext>(
create: (_) => AppContext(widget.tabletAppContext),
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Tablet App Demo',
initialRoute: widget.initialRoute,
/*supportedLocales: [
const Locale('en', 'US'),
const Locale('fr', 'FR'),
],*/
theme: ThemeData(
primarySwatch: Colors.grey,
scaffoldBackgroundColor: kBackgroundGrey,
//fontFamily: "Vollkorn",
textTheme: TextTheme(bodyText1: TextStyle(color: kMainRed)),
visualDensity: VisualDensity.adaptivePlatformDensity,
),
routes: {
'/previous': (context) => PreviousViewWidget(title: 'Tablet App Demo Home Page'),
'/main': (context) => MainViewWidget(),
'/config': (context) => ConfigViewWidget(),
}
),
);
}
}