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; } 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 { TabletAppContext tabletAppContext; @override void initState() { //tabletAppContext = widget.tabletAppContext; super.initState(); } @override Widget build(BuildContext context) { return ChangeNotifierProvider( 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(), } ), ); } }