diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index eebccea..734c986 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -38,6 +38,13 @@ UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait + + NSLocationAlwaysAndWhenInUseUsageDescription + This App requires access to your location to pick the location. + NSLocationAlwaysUsageDescription + This App requires access to your location to pick the location. + NSLocationWhenInUseUsageDescription + This App requires access to your location to pick the location. UISupportedInterfaceOrientations~ipad UIInterfaceOrientationLandscapeLeft diff --git a/lib/main.dart b/lib/main.dart index 2afe86a..64dada6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -10,6 +10,8 @@ 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/utils/navigator.dart'; +import 'package:mc_common_app/utils/utils.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'; @@ -151,11 +153,11 @@ class MyApp extends StatelessWidget { languageID: EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2, ), ); + + return MaterialApp( navigatorKey: navigatorKey, - theme: AppTheme.getTheme( - isArabic: EasyLocalization.of(context)?.locale.languageCode == "ar", - ), + theme: AppTheme.getTheme(isArabic: EasyLocalization.of(context)?.locale.languageCode == "ar"), debugShowCheckedModeBanner: false, localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, @@ -170,9 +172,7 @@ 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/dashboard/dashboard_view.dart b/lib/views/dashboard/dashboard_view.dart index 7c339a0..ea3c695 100644 --- a/lib/views/dashboard/dashboard_view.dart +++ b/lib/views/dashboard/dashboard_view.dart @@ -4,10 +4,15 @@ import 'package:car_customer_app/views/dashboard/fragments/appointments_fragment import 'package:car_customer_app/views/dashboard/fragments/home_fragment.dart'; import 'package:car_customer_app/views/dashboard/widgets/bottom_nav_bar.dart'; import 'package:flutter/material.dart'; +import 'package:mc_common_app/classes/app_state.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/utils/enums.dart'; +import 'package:mc_common_app/utils/navigator.dart'; +import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/dashboard_view_model_customer.dart'; import 'package:mc_common_app/views/common_fragments/ads_fragment.dart'; import 'package:mc_common_app/views/common_fragments/requests_fragment.dart'; +import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; import 'fragments/branches_fragment.dart'; @@ -41,6 +46,18 @@ class _DashboardViewState extends State { const AdsFragment(), const MyRequestsFragment(), ]; + + // return GestureDetector( + // behavior: HitTestBehavior.translucent, + // onTap: () { + // if (AppState().getIsViewOnly) { + // Utils.showToast("message"); + // } else { + // print("========NN========"); + // } + // }, + // child: child, + // ) return PopScope( canPop: false, child: Scaffold( @@ -49,5 +66,14 @@ class _DashboardViewState extends State { body: fragments[context.watch().selectedNavbarBarIndex], ), ); + + // return PopScope( + // canPop: false, + // child: Scaffold( + // key: _scaffoldKey, + // bottomNavigationBar: CustomBottomNavbar(), + // body: fragments[context.watch().selectedNavbarBarIndex], + // ), + // ); } } diff --git a/lib/views/dashboard/fragments/appointments_fragment.dart b/lib/views/dashboard/fragments/appointments_fragment.dart index df8621f..f202b61 100644 --- a/lib/views/dashboard/fragments/appointments_fragment.dart +++ b/lib/views/dashboard/fragments/appointments_fragment.dart @@ -43,7 +43,9 @@ class AppointmentsFragment extends StatelessWidget { navigateWithName(context, AppRoutes.appoinmentSearchFilterPage); }) ], - ), + ).toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword); + }), body: SizedBox( width: double.infinity, height: double.infinity, @@ -106,7 +108,9 @@ class AppointmentsFragment extends StatelessWidget { }, ), ), - ), + ).toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword); + }), ], ), ), @@ -119,7 +123,9 @@ class AppointmentsFragment extends StatelessWidget { Icons.add, color: MyColors.white, ), - ), + ).toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword); + }), ); }, ); diff --git a/lib/views/dashboard/fragments/branches_fragment.dart b/lib/views/dashboard/fragments/branches_fragment.dart index 2265acc..27a5c80 100644 --- a/lib/views/dashboard/fragments/branches_fragment.dart +++ b/lib/views/dashboard/fragments/branches_fragment.dart @@ -42,7 +42,9 @@ class BranchesFragment extends StatelessWidget { navigateWithName(context, AppRoutes.branchSearchFilterPage); }), ], - ), + ).toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword); + }), body: SizedBox( width: double.infinity, height: double.infinity, @@ -86,7 +88,9 @@ class BranchesFragment extends StatelessWidget { providerName: branchDetailModel.serviceProviderName ?? "", providerRatings: branchDetailModel.branchRateAvg ?? 0.0, services: branchDetailModel.branchServices, - ); + ).toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword); + }); }, separatorBuilder: (context, index) => 12.height, padding: const EdgeInsets.all(12), diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index b3b0f6a..3ab9986 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -3,11 +3,13 @@ import 'package:car_customer_app/views/dashboard/widgets/my_recent_branches_widg import 'package:car_customer_app/views/dashboard/widgets/my_services_categories_widget.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/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; +import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/view_models/appointments_view_model.dart'; import 'package:mc_common_app/view_models/dashboard_view_model_customer.dart'; @@ -49,7 +51,9 @@ class HomeFragment extends StatelessWidget { // ), // 10.width, ], - ), + ).toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword); + }), body: SizedBox( width: double.infinity, height: double.infinity, @@ -67,7 +71,9 @@ class HomeFragment extends StatelessWidget { context.read().onNavbarTapped(1); context.read().applyFilterOnAppointmentsVM(appointmentStatusEnum: AppointmentStatusEnum.allAppointments); }, - ).horPaddingMain(), + ).horPaddingMain().toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword); + }), CommonAppointmentSliderWidget() .toWhiteContainer( width: double.infinity, @@ -89,7 +95,9 @@ class HomeFragment extends StatelessWidget { title: LocaleKeys.services.tr().toUpperCase(), subTitle: '', onSubtitleTapped: () {}, - ).horPaddingMain(), + ).horPaddingMain().toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword); + }), MyServicesCategoriesWidget(homeCategories: appointmentVM.branchesCategoriesFilterOptions).horPaddingMain() ], ); @@ -159,14 +167,18 @@ class HomeFragment extends StatelessWidget { onSubtitleTapped: () { context.read().onNavbarTapped(3); context.read().updateIsExploreAds(false); - }).horPaddingMain(), + }).horPaddingMain().toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword); + }), AdsListWidget( shouldShowAdStatus: true, isAdsFragment: false, adsList: adVM.myActiveAdsForHome, scrollPhysics: NeverScrollableScrollPhysics(), hasMoreData: adVM.isExploreAdsTapped ? adVM.hasMoreDataForExploreAds : adVM.hasMoreDataForMyAds, - ), + ).toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword); + }), ], ) ], diff --git a/lib/views/dashboard/widgets/bottom_nav_bar.dart b/lib/views/dashboard/widgets/bottom_nav_bar.dart index e28edab..9fcff22 100644 --- a/lib/views/dashboard/widgets/bottom_nav_bar.dart +++ b/lib/views/dashboard/widgets/bottom_nav_bar.dart @@ -1,3 +1,5 @@ +import 'package:mc_common_app/classes/app_state.dart'; +import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/dashboard_view_model_customer.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart';