import 'package:diplomaticquarterapp/analytics/google-analytics.dart'; import 'package:diplomaticquarterapp/theme/theme_notifier.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart'; import 'package:diplomaticquarterapp/services/robo_search/search_provider.dart'; import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/LocalNotification.dart'; import 'package:diplomaticquarterapp/uitl/PlatformBridge.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:firebase_analytics/firebase_analytics.dart'; import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:provider/provider.dart'; import 'config/config.dart'; import 'config/size_config.dart'; import 'core/viewModels/project_view_model.dart'; import 'locator.dart'; import 'pages/pharmacies/compare-list.dart'; import 'package:firebase_core/firebase_core.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); FirebaseApp defaultApp = await Firebase.initializeApp(); setupLocator(); runApp(MyApp()); } class MyApp extends StatefulWidget { @override _MyApp createState() => new _MyApp(); } class _MyApp extends State { @override void initState() { // ProjectViewModel projectProvider; // projectProvider = Provider.of(context); // var font = projectProvider.isArabic ? 'Cairo' : 'WorkSans'; ThemeNotifier(defaultTheme()); super.initState(); } @override Widget build(BuildContext context) { PlatformBridge.init(context); LocalNotification.init(onNotificationClick: (payload) { LocalNotification.getInstance().showNow(title: "Payload", subtitle: payload, payload: payload); }); SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); // final themeNotifier = Provider.of(context); precacheImage(AssetImage('assets/images/powerd-by.jpg'), context); return LayoutBuilder( builder: (context, constraints) { return OrientationBuilder( builder: (context, orientation) { SizeConfig().init(constraints, orientation); return MultiProvider( providers: [ ChangeNotifierProvider( create: (context) => ProjectViewModel(), ), ChangeNotifierProvider( create: (context) => DashboardViewModel(), ), ChangeNotifierProvider(create: (context) => ToDoCountProviderModel()), ChangeNotifierProvider(create: (context) => SearchProvider()), ChangeNotifierProvider.value( value: SearchProvider(), ), ChangeNotifierProvider(create: (context) => ThemeNotifier(defaultTheme())), StreamProvider.value( value: RobotProvider().intStream(), initialData: RobotProvider().setValue({}), ), ChangeNotifierProvider(create: (context) => CompareList()), ], child: Consumer( builder: (context, projectProvider, child) => MaterialApp( navigatorObservers: [GAnalytics.shared.navObserver()], showSemanticsDebugger: false, title: 'Diplomatic Quarter App', locale: projectProvider.appLocal, localizationsDelegates: [ TranslationBaseDelegate(), GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: [ const Locale('ar', ''), // Arabic const Locale('en', ''), // English ], theme: Provider.of(context).getTheme(), // theme: ThemeData( // fontFamily: projectProvider.isArabic ? 'Cairo' : 'WorkSans', // primarySwatch: Colors.blue, // visualDensity: VisualDensity.adaptivePlatformDensity, // brightness: Brightness.light, // pageTransitionsTheme: const PageTransitionsTheme( // builders: { // TargetPlatform.android: ZoomPageTransitionsBuilder(), // TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), // }, // ), // hintColor: Colors.grey[400], // textTheme: TextTheme( // headline1: TextStyle( // color: Color(0xffB8382C), // ), // ), // disabledColor: Colors.grey[300], // errorColor: Color.fromRGBO(235, 80, 60, 1.0), // scaffoldBackgroundColor: // Color(0xffE9E9E9), // Colors.grey[100], // textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), // textSelectionHandleColor: Colors.grey, // canvasColor: Colors.white, // backgroundColor: Color.fromRGBO(255, 255, 255, 1), // highlightColor: Colors.grey[100].withOpacity(0.4), // splashColor: Colors.transparent, // primaryColor: Color(0xff515A5D), // toggleableActiveColor: secondaryColor, // indicatorColor: secondaryColor, // bottomSheetTheme: BottomSheetThemeData( // backgroundColor: HexColor('#E0E0E0')), // cursorColor: Colors.grey, // iconTheme: IconThemeData(), // appBarTheme: AppBarTheme( // color: Color(0xff515A5D), // brightness: Brightness.light, // elevation: 0.0, // actionsIconTheme: IconThemeData( // color: Colors.grey[800], // ), // ), // ), initialRoute: SPLASH, // initialRoute: PACKAGES_OFFERS, // initialRoute: PACKAGES_ORDER_COMPLETED, routes: routes, debugShowCheckedModeBanner: false, ), ), ); }, ); }, ); } }