import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; import 'package:myhomie_app/Helpers/PushNotificationService.dart'; import 'package:myhomie_app/client.dart'; import 'package:provider/provider.dart'; import 'Helpers/DatabaseHelper.dart'; import 'Models/homieContext.dart'; import 'Screens/Main/MainPage.dart'; import 'Screens/Login/login_screen.dart'; import 'app_context.dart'; import 'constants.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); String initialRoute; HomieAppContext? localContext = new HomieAppContext(); bool isLogged = false; localContext = await DatabaseHelper.instance.getData(); if(localContext != null) { print("we've got an local db !"); localContext.clientAPI = new Client(localContext.host!); // TODO "http://192.168.31.140" //isLogged = localContext.token != null; // TODO refresh token.. isLogged = false; print(localContext); } else { print("NO LOCAL DB !"); localContext = HomieAppContext(); } initialRoute = isLogged ? '/home' : '/login'; final MyApp myApp = MyApp( initialRoute: initialRoute, homieAppContext: localContext!, ); runApp(myApp); } class MyApp extends StatefulWidget { String initialRoute = ""; HomieAppContext homieAppContext; MyApp({Key? key, required this.initialRoute, required this.homieAppContext}) : super(key: key); @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State { //FirebaseMessaging _firebaseMessaging = FirebaseMessaging(); //HomieAppContext homieAppContext; @override Widget build(BuildContext context) { final pushNotificationService = PushNotificationService(); pushNotificationService.initialise(widget.homieAppContext, context: context); return ChangeNotifierProvider( create: (_) => AppContext(widget.homieAppContext), child: MaterialApp( debugShowCheckedModeBanner: false, title: 'MyHomie 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: { '/home': (context) => MainPage(), '/login': (context) => LoginScreen() } ), ); } }