diff --git a/lib/main.dart b/lib/main.dart index c007f00..2afe86a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,6 +2,7 @@ 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'; @@ -62,67 +63,69 @@ Future main() async { 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(), - ), + 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: (_) => UserVM( + userRepo: injector.get(), + commanServices: injector.get(), ), - ChangeNotifierProvider( - create: (_) => AdVM( - commonServices: injector.get(), - commonRepo: injector.get(), - adsRepo: 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: (_) => AppointmentsVM( + appointmentRepo: injector.get(), + commonServices: injector.get(), + commonRepo: injector.get(), + branchRepo: injector.get(), ), - ChangeNotifierProvider( - create: (_) => PaymentVM( - paymentService: injector.get(), - paymentRepo: 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: (_) => 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(), - ), + ), + ChangeNotifierProvider( + create: (_) => SettingOptionsVM( + settingOptionsRepo: injector.get(), ), - ], - child: MyApp(), - ).setupLocale(), - )); + ), + ], + child: MyApp(), + ).setupLocale(), + ), + ); } // todo terminal command to generate translation files @@ -136,6 +139,10 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.portraitDown, + ]); return Sizer( builder: (context, orientation, deviceType) { injector.get().setAppType(AppType.customer); @@ -160,3 +167,12 @@ class MyApp extends StatelessWidget { ); } } + +//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", diff --git a/lib/views/branches/provider_profile_view.dart b/lib/views/branches/provider_profile_view.dart index 282fd26..d559f8a 100644 --- a/lib/views/branches/provider_profile_view.dart +++ b/lib/views/branches/provider_profile_view.dart @@ -46,6 +46,15 @@ class _ProviderProfileViewState extends State { body: Center(child: CircularProgressIndicator()), ); } + + String providerBannerImageUrl = ""; + + if (appointmentsVM.providerProfileModel!.serviceProviderBranch!.isNotEmpty) { + if (appointmentsVM.providerProfileModel!.serviceProviderBranch!.first.branchImages!.isNotEmpty) { + providerBannerImageUrl = appointmentsVM.providerProfileModel!.serviceProviderBranch!.first.branchImages!.first.imageUrl ?? ""; + } + } + return Scaffold( appBar: CustomAppBar( title: LocaleKeys.providerDetails.tr(), @@ -59,6 +68,7 @@ class _ProviderProfileViewState extends State { bool status = await appointmentsVM.removeProviderFromFavorite(serviceProviderID: appointmentsVM.providerProfileModel!.id!, context: context); if (status) { appointmentsVM.providerProfileModel!.isFavorite = false; + appointmentsVM.getMyFavoriteProviders(); setState(() {}); } } else { @@ -76,29 +86,39 @@ class _ProviderProfileViewState extends State { body: Container( width: double.infinity, height: double.infinity, - padding: EdgeInsets.all(21), + padding: EdgeInsets.symmetric(horizontal: 21), child: SingleChildScrollView( child: Column( children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - //TODO: company logo/banner not added form provider app yet - Image.asset(MyAssets.bnCar), + Center(child: providerBannerImageUrl.buildNetworkImage(height: 250, width: double.infinity, fit: BoxFit.cover)), 12.height, - (appointmentsVM.providerProfileModel!.name ?? appointmentsVM.providerProfileModel!.companyName).toString().toText( - fontSize: 16, - isBold: true, - ), - + if (appointmentsVM.providerProfileModel!.memberSince!.isNotEmpty) ...[ + Row( + children: [ + ("${LocaleKeys.companyName.tr()}:").toText(color: MyColors.lightTextColor, fontSize: 12), + 4.width, + (appointmentsVM.providerProfileModel!.companyName ?? appointmentsVM.providerProfileModel!.name).toString().toText( + fontSize: 16, + isBold: true, + ), + ], + ), + ], if (appointmentsVM.providerProfileModel!.memberSince!.isNotEmpty) ...[ Row( children: [ ("${LocaleKeys.memberSince.tr()}:").toText(color: MyColors.lightTextColor, fontSize: 12), 4.width, - "${DateHelper.formatAsMonthYear(DateHelper.parseStringToDate(DateHelper.formatDateT( - appointmentsVM.providerProfileModel!.memberSince ?? "", - )))}" + "${DateHelper.formatAsMonthYear( + DateHelper.parseStringToDate( + DateHelper.formatDateT( + appointmentsVM.providerProfileModel!.memberSince ?? "", + ), + ), + )}" .toText(fontSize: 12, isBold: true), ], ), @@ -124,7 +144,7 @@ class _ProviderProfileViewState extends State { onCardTapped: () { navigateWithName(context, AppRoutes.branchDetailView, arguments: branchModel); }, - providerImageUrl: MyAssets.bnCar, + providerImageUrl: (branchModel.branchImages != null && branchModel.branchImages!.isNotEmpty) ? (branchModel.branchImages!.first.imageUrl ?? "") : "", title: branchModel.branchName ?? "", providerLocation: branchModel.distanceKm.toString() + " KM", providerName: branchModel.serviceProviderName ?? "",