From b78aeb8002a05947d0d0fb4938bc90b29b3d25cc Mon Sep 17 00:00:00 2001
From: "Aamir.Muhammad" <>
Date: Wed, 24 Jul 2024 09:25:58 +0300
Subject: [PATCH] fixes
---
ios/Runner.xcodeproj/project.pbxproj | 12 +-
.../xcshareddata/xcschemes/Runner.xcscheme | 15 +-
ios/Runner/AppDelegate.swift | 2 +
ios/Runner/Info.plist | 28 ++--
lib/config/provider_routes.dart | 2 +-
.../add_new_service_appointment_page.dart | 2 +-
.../appoinments/merge_appointment_page.dart | 2 +-
.../appoinments/update_appointment_page.dart | 5 +-
lib/views/dashboard/dashboard_page.dart | 18 ++-
.../dashboard/fragments/home_fragment.dart | 28 ++--
lib/views/location/pick_location_page.dart | 15 +-
..._page.dart => all_subscriptions_page.dart} | 4 +-
.../subscriptions/my_subscritions_page.dart | 24 ++--
..._card.dart => all_subscriptions_card.dart} | 4 +-
.../widget/my_subscriptions_card.dart | 133 ++++++++++++++++++
pubspec.yaml | 2 +-
16 files changed, 219 insertions(+), 77 deletions(-)
rename lib/views/subscriptions/{subscriptions_page.dart => all_subscriptions_page.dart} (96%)
rename lib/views/subscriptions/widget/{subscriptions_card.dart => all_subscriptions_card.dart} (98%)
create mode 100644 lib/views/subscriptions/widget/my_subscriptions_card.dart
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index a0f1406..0752838 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -376,14 +376,14 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = CK4WN356P5;
+ DEVELOPMENT_TEAM = 99Z3UD3LJM;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderApp;
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderAppp;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
@@ -504,14 +504,14 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = CK4WN356P5;
+ DEVELOPMENT_TEAM = 99Z3UD3LJM;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderApp;
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderAppp;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -527,14 +527,14 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = CK4WN356P5;
+ DEVELOPMENT_TEAM = 99Z3UD3LJM;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderApp;
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderAppp;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index e67b280..8b3e7d0 100644
--- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -27,8 +27,6 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
-
-
-
-
+
+
-
-
+
+
+
+
Bool {
+ GMSServices.provideAPIKey("AIzaSyCyDbWUM9d_sBUGIE8PcuShzPaqO08NSC8")
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index f04971b..fd96eda 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -2,6 +2,8 @@
+ CADisableMinimumFrameDurationOnPhone
+
CFBundleDevelopmentRegion
$(DEVELOPMENT_LANGUAGE)
CFBundleExecutable
@@ -22,6 +24,22 @@
$(FLUTTER_BUILD_NUMBER)
LSRequiresIPhoneOS
+ NSAppleMusicUsageDescription
+ Access to pick a photo
+ NSCameraUsageDescription
+ Access to take a photo by camera
+ NSPhotoLibraryUsageDescription
+ Access to pick a photo
+ NSFaceIDUsageDescription
+ This app requires Face ID to allow biometric authentication for app login.
+ 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.
+ UIApplicationSupportsIndirectInputEvents
+
UILaunchStoryboardName
LaunchScreen
UIMainStoryboardFile
@@ -41,15 +59,5 @@
UIViewControllerBasedStatusBarAppearance
- NSCameraUsageDescription
- Access to take a photo by camera
- NSAppleMusicUsageDescription
- Access to pick a photo
- NSPhotoLibraryUsageDescription
- Access to pick a photo
- CADisableMinimumFrameDurationOnPhone
-
- UIApplicationSupportsIndirectInputEvents
-
diff --git a/lib/config/provider_routes.dart b/lib/config/provider_routes.dart
index 502f739..40cde9d 100644
--- a/lib/config/provider_routes.dart
+++ b/lib/config/provider_routes.dart
@@ -18,7 +18,7 @@ import 'package:car_provider_app/views/settings/services/duplication/sheet/appro
import 'package:car_provider_app/views/settings/services/items_list_page.dart';
import 'package:car_provider_app/views/settings/services/services_list_page.dart';
import 'package:car_provider_app/views/subscriptions/my_subscritions_page.dart';
-import 'package:car_provider_app/views/subscriptions/subscriptions_page.dart';
+import 'package:car_provider_app/views/subscriptions/all_subscriptions_page.dart';
import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart';
import 'package:flutter/material.dart';
diff --git a/lib/views/appoinments/add_new_service_appointment_page.dart b/lib/views/appoinments/add_new_service_appointment_page.dart
index 6ed4f4b..ce553e6 100644
--- a/lib/views/appoinments/add_new_service_appointment_page.dart
+++ b/lib/views/appoinments/add_new_service_appointment_page.dart
@@ -255,7 +255,7 @@ class _AddNewServiceAppointmentPageState extends State().getMyAppointmentsForProvider({
"ServiceProviderID": injector.get().getUser.data?.userInfo?.providerId.toString() ?? "0",
"ProviderBranchID": branchId.toString(),
- }, isNeedToRebuild: true);
+ },);
}
double calculatePrice() {
diff --git a/lib/views/appoinments/merge_appointment_page.dart b/lib/views/appoinments/merge_appointment_page.dart
index ead4e59..1253c78 100644
--- a/lib/views/appoinments/merge_appointment_page.dart
+++ b/lib/views/appoinments/merge_appointment_page.dart
@@ -156,6 +156,6 @@ class MergeAppointmentListPage extends StatelessWidget {
.toString() ??
"0",
"ProviderBranchID": branchId.toString(),
- }, isNeedToRebuild: true);
+ });
}
}
diff --git a/lib/views/appoinments/update_appointment_page.dart b/lib/views/appoinments/update_appointment_page.dart
index 317bdcf..1ecd4c3 100644
--- a/lib/views/appoinments/update_appointment_page.dart
+++ b/lib/views/appoinments/update_appointment_page.dart
@@ -21,7 +21,6 @@ import 'package:provider/provider.dart';
import '../dashboard/widget/appointment_slider_widget.dart';
import 'package:easy_localization/easy_localization.dart';
-
class UpdateAppointmentPage extends StatelessWidget {
late AppointmentListModel appointmentListModel;
@@ -30,7 +29,7 @@ class UpdateAppointmentPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
- appBar: CustomAppBar(
+ appBar: CustomAppBar(
title: LocaleKeys.updateAppointment.tr(),
),
body: SizedBox(
@@ -266,6 +265,6 @@ class UpdateAppointmentPage extends StatelessWidget {
await context.read().getMyAppointmentsForProvider({
"ServiceProviderID": injector.get().getUser.data?.userInfo?.providerId.toString() ?? "0",
"ProviderBranchID": branchId.toString(),
- }, isNeedToRebuild: true);
+ });
}
}
diff --git a/lib/views/dashboard/dashboard_page.dart b/lib/views/dashboard/dashboard_page.dart
index 023abf9..3282827 100644
--- a/lib/views/dashboard/dashboard_page.dart
+++ b/lib/views/dashboard/dashboard_page.dart
@@ -25,6 +25,7 @@ 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/chat_view_model.dart';
import 'package:mc_common_app/view_models/requests_view_model.dart';
+import 'package:mc_common_app/view_models/subscriptions_view_model.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/common_widgets/bottom_nav_bar.dart';
@@ -49,20 +50,15 @@ class _DashboardPageState extends State {
dashboardVM = Provider.of(context, listen: false);
context.read().populateRequestsFilterList();
context.read().populateAppointmentsFilterList();
- _onRefresh();
+ scheduleMicrotask(() => _onRefresh());
}
Future _onRefresh() async {
final requestsVM = context.read();
- // final chatVM = context.read();
- // context.read().populateAdsFilterList();
- context.read().getBranchAndServices();
+ await context.read().getBranchAndServices();
AdVM adVm = Provider.of(context, listen: false);
- // context.read().myUpComingAppointments,
- AppointmentsVM appointmentsVM = Provider.of(context, listen: false);
- if (appointmentsVM.myAppointments.isEmpty) {
- await appointmentsVM.getMyAppointmentsForProvider({"ServiceProviderID": injector.get().getUser.data?.userInfo?.providerId.toString() ?? "0"});
- }
+ SubscriptionsVM sVM = Provider.of(context, listen: false);
+ await context.read().getMyAppointmentsForProvider({"ServiceProviderID": injector.get().getUser.data?.userInfo?.providerId.toString() ?? "0"});
adVm.populateAdsFilterList();
if (adVm.myAds.isEmpty) {
await adVm.getMyAds();
@@ -82,11 +78,13 @@ class _DashboardPageState extends State {
if (requestsVM.myRequests.isEmpty) {
await requestsVM.getRequests(appType: AppType.provider);
}
+ if (sVM.mySubscriptionsBySp.isEmpty) {
+ await sVM.getMySubscriptionsBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "");
+ }
// await chatVM.buildHubConnection(context);
}
-
@override
Widget build(BuildContext context) {
List fragments = [
diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart
index f477e37..ee13c53 100644
--- a/lib/views/dashboard/fragments/home_fragment.dart
+++ b/lib/views/dashboard/fragments/home_fragment.dart
@@ -1,3 +1,5 @@
+import 'package:car_provider_app/config/provider_routes.dart';
+import 'package:car_provider_app/view_models/dashboard_view_model.dart';
import 'package:car_provider_app/views/dashboard/widget/my_service_provider.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
@@ -5,11 +7,13 @@ import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.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/models/appointments_models/appointment_list_model.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/navigator.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/service_view_model.dart';
import 'package:mc_common_app/views/advertisement/ads_list.dart';
import 'package:mc_common_app/views/appointments/widgets/customer_appointment_slider_widget.dart';
@@ -20,7 +24,6 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart';
-
import '../widget/appointment_slider_widget.dart';
class HomeFragment extends StatelessWidget {
@@ -64,28 +67,29 @@ class HomeFragment extends StatelessWidget {
onRefresh: onRefresh,
child: ListView(
children: [
+ 10.height,
ViewAllWidget(
- title: LocaleKeys.upcoming_appointment.tr(),
- subTitle: LocaleKeys.view_all.tr(),
- onSubtitleTapped: () {},
- ).horPaddingMain(),
+ title: LocaleKeys.upcoming_appointment.tr(),
+ subTitle: LocaleKeys.view_all.tr(),
+ onSubtitleTapped: () {
+ context.read().updateIndex(1);
+ }).horPaddingMain(),
// const AppointmentSliderWidget().horPaddingMain(),
CustomerAppointmentSliderWidget(
- myUpComingAppointments: context.read().myUpComingAppointments,
- isNeedToShowEmptyMessage: true,
- onAppointmentClick: () {
- // navigateWithName(
- // context, ProviderAppRoutes.appointment,
- // arguments: branches[index]);
+ onAppointmentClick: (AppointmentListModel value) {
+ navigateWithName(context, ProviderAppRoutes.appointmentDetailList, arguments: value);
},
),
21.height,
ViewAllWidget(
title: LocaleKeys.myBranches.tr(),
subTitle: LocaleKeys.view_all.tr(),
- onSubtitleTapped: () {},
+ onSubtitleTapped: () {
+ context.read().updateIndex(0);
+ },
).horPaddingMain(),
const ServiceProviderWidget().horPaddingMain(),
+
Consumer(
builder: (BuildContext context, AdVM adVM, Widget? child) {
if (adVM.state == ViewState.busy) {
diff --git a/lib/views/location/pick_location_page.dart b/lib/views/location/pick_location_page.dart
index 99f0004..72105d3 100644
--- a/lib/views/location/pick_location_page.dart
+++ b/lib/views/location/pick_location_page.dart
@@ -13,6 +13,7 @@ import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:permission_handler/permission_handler.dart';
import 'map_selection_widget.dart';
+import 'package:geocoding/geocoding.dart';
class PickLocationPage extends StatefulWidget {
Function(double, double, String) onPickAddress;
@@ -122,6 +123,8 @@ class _PickLocationPageState extends State {
Future _updatePosition(CameraPosition _position) async {
latitude = _position.target.latitude;
longitude = _position.target.longitude;
+ print(latitude);
+ print(latitude);
updateAddress(latitude, longitude);
}
@@ -137,8 +140,7 @@ class _PickLocationPageState extends State {
requestPermissions().then(
(value) async {
if (value[Permission.location]!.isGranted) {
- var position =
- await GeolocatorPlatform.instance.getCurrentPosition();
+ var position = await GeolocatorPlatform.instance.getCurrentPosition();
currentPostion = LatLng(position.latitude, position.longitude);
latitude = position.latitude;
longitude = position.longitude;
@@ -151,11 +153,8 @@ class _PickLocationPageState extends State {
}
updateAddress(double latitude, double longitude) async {
- // List placemarks =
- // await placemarkFromCoordinates(latitude, longitude);
- // _counter.value =
- // '${placemarks.first.street}, ${placemarks.first.subLocality}, ${placemarks.first.locality}, ${placemarks.first.postalCode}, ${placemarks.first.country}';
- // print("Address121: " + placemarks[0].toString());
+ List placemarks = await placemarkFromCoordinates(latitude, longitude);
+ _counter.value = '${placemarks.first.street}, ${placemarks.first.subLocality}, ${placemarks.first.locality}, ${placemarks.first.postalCode}, ${placemarks.first.country}';
}
setMap() {
@@ -176,6 +175,6 @@ class _PickLocationPageState extends State {
}
Future