import 'dart:io'; import 'package:car_customer_app/config/customer_dependencies.dart'; import 'package:car_customer_app/config/customer_routes.dart'; import 'package:flutter/services.dart'; import 'package:mc_common_app/repositories/branch_repo.dart'; import 'package:mc_common_app/repositories/chat_repo.dart'; import 'package:mc_common_app/repositories/appointment_repo.dart'; import 'package:mc_common_app/repositories/request_repo.dart'; import 'package:mc_common_app/repositories/setting_options_repo.dart'; import 'package:mc_common_app/services/firebase_service.dart'; import 'package:mc_common_app/utils/location/Location.dart'; import 'package:mc_common_app/view_models/appointments_view_model.dart'; import 'package:mc_common_app/view_models/chat_view_model.dart'; import 'package:mc_common_app/view_models/dashboard_view_model_customer.dart'; import 'package:mc_common_app/view_models/requests_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/config/dependency_injection.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/models/general_models/post_params_model.dart'; import 'package:mc_common_app/repositories/ads_repo.dart'; import 'package:mc_common_app/repositories/common_repo.dart'; import 'package:mc_common_app/repositories/payments_repo.dart'; import 'package:mc_common_app/repositories/user_repo.dart'; import 'package:mc_common_app/services/common_services.dart'; import 'package:mc_common_app/services/payments_service.dart'; import 'package:mc_common_app/theme/app_theme.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; import 'package:mc_common_app/view_models/payment_view_model.dart'; import 'package:mc_common_app/view_models/setting_options_view_model.dart'; import 'package:mc_common_app/view_models/user_view_model.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; import 'package:provider/single_child_widget.dart'; import 'package:sizer/sizer.dart'; import 'package:intl/date_symbol_data_local.dart'; import 'package:firebase_core/firebase_core.dart'; final navigatorKey = GlobalKey(); //test commit Future main() async { WidgetsFlutterBinding.ensureInitialized(); await EasyLocalization.ensureInitialized(); if (Platform.isAndroid) { await Firebase.initializeApp( options: const FirebaseOptions( apiKey: 'AIzaSyD1WNNGrbBiCNvCrI31d3DV5AOgToq-Lus', appId: '1:294636898500:android:e93b7e5d1cc15ae6b0e191', messagingSenderId: '294636898500', projectId: 'mowater-2c81a', )); } else { await Firebase.initializeApp(); } CustomerDependencies.addDependencies(); injector.get().initializeNotifications().whenComplete(() { injector.get().handleLocationPermission(); }); CustomerAppRoutes.routes.addAll(AppRoutes.routes); initializeDateFormatting().then( (_) => runApp( MultiProvider( providers: [ ChangeNotifierProvider( create: (_) => BaseVM(), ), ChangeNotifierProvider( create: (_) => DashboardVmCustomer( commonServices: injector.get(), userRepo: injector.get(), ), ), ChangeNotifierProvider( create: (_) => UserVM( userRepo: injector.get(), commanServices: injector.get(), ), ), ChangeNotifierProvider( create: (_) => AdVM( commonServices: injector.get(), commonRepo: injector.get(), adsRepo: injector.get(), ), ), ChangeNotifierProvider( create: (_) => AppointmentsVM( appointmentRepo: injector.get(), commonServices: injector.get(), commonRepo: injector.get(), branchRepo: injector.get(), ), ), ChangeNotifierProvider( create: (_) => PaymentVM( paymentService: injector.get(), paymentRepo: injector.get(), ), ), ChangeNotifierProvider( create: (_) => ChatVM( chatRepo: injector.get(), requestRepo: injector.get(), commonServices: injector.get(), )), ChangeNotifierProvider( create: (_) => RequestsVM( requestRepo: injector.get(), commonServices: injector.get(), commonRepo: injector.get(), ), ), ChangeNotifierProvider( create: (_) => SettingOptionsVM( settingOptionsRepo: injector.get(), ), ), ], child: MyApp(), ).setupLocale(), ), ); } // todo terminal command to generate translation files // flutter pub run easy_localization:generate --source-dir ./assets/langs // todo terminal command to generate translation keys // flutter pub run easy_localization:generate --source-dir ./assets/langs -f keys -o locale_keys.g.dart // command to generate languages data from json class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); return Sizer( builder: (context, orientation, deviceType) { injector.get().setAppType(AppType.customer); AppState().setPostParamsModel( PostParamsModel( languageID: EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2, ), ); return MaterialApp( navigatorKey: navigatorKey, theme: AppTheme.getTheme( isArabic: EasyLocalization.of(context)?.locale.languageCode == "ar", ), debugShowCheckedModeBanner: false, localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, locale: context.locale, initialRoute: AppRoutes.initialRoute, routes: CustomerAppRoutes.routes, ); }, ); } } //Latitude: 24.708741, Longitude: 46.6657643, //Longitude=24.708741&Latitude=46.6657643 //update I/flutter ( 5035): │ "latitude": "37.421998", // I/flutter ( 5035): │ "longitude": "-122.0839",