From 272dfe06f46056636b2440313fb8039829469a5c Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Sun, 11 Aug 2024 09:17:52 +0300 Subject: [PATCH] Added Firebase and Notifications --- android/app/build.gradle | 5 +- android/app/google-services.json | 27 +++------ android/app/src/debug/AndroidManifest.xml | 2 +- android/app/src/main/AndroidManifest.xml | 45 ++++++++------ .../example/car_provider_app/MainActivity.kt | 7 --- .../app/src/main/res/drawable/ic_launcher.png | Bin 0 -> 1443 bytes android/app/src/profile/AndroidManifest.xml | 2 +- android/build.gradle | 2 + ios/Runner.xcodeproj/project.pbxproj | 6 +- ios/Runner/AppDelegate.swift | 10 +++ ios/Runner/GoogleService-Info.plist | 30 +++++++++ lib/config/provider_dependencies.dart | 3 +- lib/config/provider_routes.dart | 57 +++++------------- lib/main.dart | 19 ++++-- lib/view_models/dashboard_view_model.dart | 7 ++- .../add_new_service_appointment_page.dart | 2 +- lib/views/appoinments/appointment_page.dart | 2 +- .../appoinments/merge_appointment_page.dart | 2 +- .../appoinments/update_appointment_page.dart | 3 +- lib/views/dashboard/dashboard_page.dart | 20 +++--- .../dashboard/fragments/ads_fragment.dart | 2 +- .../fragments/appoinment_fragment.dart | 3 +- lib/views/requests/request_detail_page.dart | 13 ++-- 23 files changed, 138 insertions(+), 131 deletions(-) delete mode 100644 android/app/src/main/kotlin/com/example/car_provider_app/MainActivity.kt create mode 100644 android/app/src/main/res/drawable/ic_launcher.png create mode 100644 ios/Runner/GoogleService-Info.plist diff --git a/android/app/build.gradle b/android/app/build.gradle index 3f7b03e..032843a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -22,6 +22,7 @@ if (flutterVersionName == null) { } apply plugin: 'com.android.application' +apply plugin: 'com.google.gms.google-services' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" @@ -43,7 +44,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.ejadaa.hmg" + applicationId "com.cloud.solutions.mowater.ksa.provider" minSdkVersion 23 targetSdkVersion 33 versionCode flutterVersionCode.toInteger() @@ -65,4 +66,6 @@ flutter { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation platform('com.google.firebase:firebase-bom:33.1.2') +// implementation 'com.google.firebase:firebase-analytics' } diff --git a/android/app/google-services.json b/android/app/google-services.json index dd4038c..24bc16c 100644 --- a/android/app/google-services.json +++ b/android/app/google-services.json @@ -1,39 +1,26 @@ { "project_info": { - "project_number": "815750722565", - "firebase_url": "https://api-project-815750722565.firebaseio.com", - "project_id": "api-project-815750722565", - "storage_bucket": "api-project-815750722565.appspot.com" + "project_number": "294636898500", + "project_id": "mowater-2c81a", + "storage_bucket": "mowater-2c81a.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:815750722565:android:62281cd3e5df4063", + "mobilesdk_app_id": "1:294636898500:android:e93b7e5d1cc15ae6b0e191", "android_client_info": { - "package_name": "com.ejada.hmg" + "package_name": "com.cloud.solutions.mowater.ksa.provider" } }, - "oauth_client": [ - { - "client_id": "815750722565-3a0gc7neins0eoahdrimrfksk0sqice8.apps.googleusercontent.com", - "client_type": 3 - } - ], + "oauth_client": [], "api_key": [ { - "current_key": "AIzaSyDUfg6AKM1-00WyzpvLImUBC46wFrq9-qw" + "current_key": "AIzaSyD1WNNGrbBiCNvCrI31d3DV5AOgToq-Lus" } ], "services": { - "analytics_service": { - "status": 1 - }, "appinvite_service": { - "status": 1, "other_platform_oauth_client": [] - }, - "ads_service": { - "status": 2 } } } diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index 8589252..7a74427 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.cloud.solutions.mowater.ksa.provider"> diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 4ec8a32..8101281 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,11 +1,14 @@ - + package="com.cloud.solutions.mowater.ksa.provider"> + + - - + + @@ -15,15 +18,15 @@ + android:icon="@mipmap/ic_launcher" + android:label="Provider"> + android:name="io.flutter.embedding.android.NormalTheme" + android:resource="@style/NormalTheme" /> + android:name="io.flutter.embedding.android.SplashScreenDrawable" + android:resource="@drawable/launch_background" /> + - - + + + + + + - + V6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml index 8589252..7a74427 100644 --- a/android/app/src/profile/AndroidManifest.xml +++ b/android/app/src/profile/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.cloud.solutions.mowater.ksa.provider"> diff --git a/android/build.gradle b/android/build.gradle index f722dca..14c9783 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,9 +8,11 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.3.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath 'com.google.gms:google-services:4.4.2' } } + allprojects { repositories { google() diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 0752838..3b730be 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -383,7 +383,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderAppp; + PRODUCT_BUNDLE_IDENTIFIER = com.cloud.solutions.mowater.ksa.provider; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -511,7 +511,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderAppp; + PRODUCT_BUNDLE_IDENTIFIER = com.cloud.solutions.mowater.ksa.provider; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -534,7 +534,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.carProviderAppp; + PRODUCT_BUNDLE_IDENTIFIER = com.cloud.solutions.mowater.ksa.provider; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index c6f8838..30ea1df 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -8,6 +8,16 @@ import GoogleMaps _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { + + // This is required to make any communication available in the action isolate. + FlutterLocalNotificationsPlugin.setPluginRegistrantCallback { (registry) in + GeneratedPluginRegistrant.register(with: registry) + } + + if #available(iOS 10.0, *) { + UNUserNotificationCenter.current().delegate = self as UNUserNotificationCenterDelegate + } + GMSServices.provideAPIKey("AIzaSyCyDbWUM9d_sBUGIE8PcuShzPaqO08NSC8") GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist new file mode 100644 index 0000000..bdfade0 --- /dev/null +++ b/ios/Runner/GoogleService-Info.plist @@ -0,0 +1,30 @@ + + + + + API_KEY + AIzaSyAQoUIOm-5FtUqUngK0zvkkF2fafRxsm_I + GCM_SENDER_ID + 294636898500 + PLIST_VERSION + 1 + BUNDLE_ID + com.cloud.solutions.mowater.ksa.provider.ios + PROJECT_ID + mowater-2c81a + STORAGE_BUCKET + mowater-2c81a.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:294636898500:ios:1e92b79681dff7f1b0e191 + + \ No newline at end of file diff --git a/lib/config/provider_dependencies.dart b/lib/config/provider_dependencies.dart index efbc569..2c9105e 100644 --- a/lib/config/provider_dependencies.dart +++ b/lib/config/provider_dependencies.dart @@ -1,7 +1,6 @@ -import 'package:mc_common_app/repositories/branch_repo.dart'; import 'package:mc_common_app/repositories/items_repo.dart'; import 'package:mc_common_app/repositories/schedule_repo.dart'; -import 'package:mc_common_app/config/dependencies.dart'; +import 'package:mc_common_app/config/dependency_injection.dart'; import 'package:mc_common_app/repositories/subscription_repo.dart'; class ProviderAppDependencies { diff --git a/lib/config/provider_routes.dart b/lib/config/provider_routes.dart index 40cde9d..aac9344 100644 --- a/lib/config/provider_routes.dart +++ b/lib/config/provider_routes.dart @@ -76,38 +76,25 @@ class ProviderAppRoutes { static final Map routes = { //Home page AppRoutes.dashboard: (context) => const DashboardPage(), - AppRoutes.adsDetailView: (context) => AdsDetailView( - adDetails: - ModalRoute.of(context)!.settings.arguments as AdDetailsModel), + AppRoutes.adsDetailView: (context) => AdsDetailView(adDetails: ModalRoute.of(context)!.settings.arguments as AdDetailsModel), AppRoutes.createAdView: (context) => const CreateAdView(), //setting - // defineLicense: (context) => DefineLicensePage(), + // defineLicense: (context) => DefineLicensePage(), dealershipSetting: (context) => DealershipPage(), // branchList: (context) => BranchListPage(), - defineBranch: (context) => DefineBranchPage( - (ModalRoute.of(context)!.settings.arguments) == null - ? null - : (ModalRoute.of(context)!.settings.arguments - as BranchDetailModel)), - branchDetail: (context) => BranchDetailPage( - ModalRoute.of(context)!.settings.arguments as BranchDetailModel), + defineBranch: (context) => DefineBranchPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as BranchDetailModel)), + branchDetail: (context) => BranchDetailPage(ModalRoute.of(context)!.settings.arguments as BranchDetailModel), //Appointments - appointment: (context) => AppointmentPage( - branch: - ModalRoute.of(context)!.settings.arguments as BranchDetailModel), - appointmentDetailList: (context) => AppointmentDetailListPage(), + appointment: (context) => AppointmentPage(branch: ModalRoute.of(context)!.settings.arguments as BranchDetailModel), + appointmentDetailList: (context) => const AppointmentDetailListPage(), updateAppointmentPage: (context) => UpdateAppointmentPage(), - addServiceInAppointment: (context) => AddNewServiceAppointmentPage( - ModalRoute.of(context)!.settings.arguments as AppointmentListModel), + addServiceInAppointment: (context) => AddNewServiceAppointmentPage(ModalRoute.of(context)!.settings.arguments as AppointmentListModel), mergeAppointments: (context) => MergeAppointmentListPage(), //Requests - AppRoutes.requestsDetailPage: (context) => RequestDetailPage( - requestDetailPageArguments: ModalRoute.of(context)!.settings.arguments - as RequestDetailPageArguments, - ), + AppRoutes.requestsDetailPage: (context) => RequestDetailPage(requestDetailPageArguments: ModalRoute.of(context)!.settings.arguments as RequestDetailPageArguments), AppRoutes.sendOfferPage: (context) => const SendOfferPage(), //Subscriptions @@ -116,40 +103,24 @@ class ProviderAppRoutes { AppRoutes.paymentMethodsView: (context) => PaymentMethodsView(paymentType: ModalRoute.of(context)!.settings.arguments as PaymentTypes), //Services - dealerUser: (context) => - DealerUserPage(ModalRoute.of(context)!.settings.arguments as String), + dealerUser: (context) => DealerUserPage(ModalRoute.of(context)!.settings.arguments as String), servicesList: (context) => const ServicesListPage(), itemsList: (context) => ItemsListPage(), createItem: (context) => const CreateItemPage(), //createServices: (context) => CreateServicesPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as ServiceProviderBranch)), //createServices2: (context) => CreateServicesPage2((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as ServiceProviderBranch)), - createServices3: (context) => CreateServicesPage3( - (ModalRoute.of(context)!.settings.arguments) == null - ? null - : (ModalRoute.of(context)!.settings.arguments - as CreateBranchModel)), + createServices3: (context) => CreateServicesPage3((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as CreateBranchModel)), //Schedules - schedulesList: (context) => SchedulesListPage( - (ModalRoute.of(context)!.settings.arguments) == null - ? null - : (ModalRoute.of(context)!.settings.arguments as String)), + schedulesList: (context) => SchedulesListPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as String)), addSchedule: (context) => AddSchedulesPage(), //Branch Duplication - matchServices: (context) => MatchedServicesPage( - (ModalRoute.of(context)!.settings.arguments) == null - ? null - : (ModalRoute.of(context)!.settings.arguments - as MatchServicesArguments)), + matchServices: (context) => MatchedServicesPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as MatchServicesArguments)), - AppRoutes.chatView: (context) => ChatView( - chatViewArguments: - ModalRoute.of(context)!.settings.arguments as ChatViewArguments, - ), + AppRoutes.chatView: (context) => ChatView(chatViewArguments: ModalRoute.of(context)!.settings.arguments as ChatViewArguments), //ADS: - AppRoutes.selectAdTypeView: (context) => SelectAdTypeView( - isProvider: ModalRoute.of(context)!.settings.arguments as bool), + AppRoutes.selectAdTypeView: (context) => SelectAdTypeView(isProvider: ModalRoute.of(context)!.settings.arguments as bool), }; } diff --git a/lib/main.dart b/lib/main.dart index e138133..1986cb6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,11 +4,12 @@ import 'package:mc_common_app/repositories/schedule_repo.dart'; import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:car_provider_app/view_models/items_view_model.dart'; import 'package:car_provider_app/view_models/schedule_view_model.dart'; +import 'package:mc_common_app/services/firebase_service.dart'; import 'package:mc_common_app/view_models/service_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/dependencies.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'; @@ -34,18 +35,26 @@ 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/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; -import 'package:provider/single_child_widget.dart'; import 'package:sizer/sizer.dart'; - +import 'package:firebase_core/firebase_core.dart'; import 'config/provider_routes.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); - ProviderAppDependencies.addDependencies(); await EasyLocalization.ensureInitialized(); + await Firebase.initializeApp( + options: const FirebaseOptions( + apiKey: 'AIzaSyD1WNNGrbBiCNvCrI31d3DV5AOgToq-Lus', + appId: '1:294636898500:android:e93b7e5d1cc15ae6b0e191', + messagingSenderId: '294636898500', + projectId: 'mowater-2c81a', + ), + ); + ProviderAppDependencies.addDependencies(); + injector.get().initializeNotifications(); ProviderAppRoutes.routes.addAll(AppRoutes.routes); runApp(MultiProvider( - providers: [ + providers: [ ChangeNotifierProvider( create: (_) => BaseVM(), ), diff --git a/lib/view_models/dashboard_view_model.dart b/lib/view_models/dashboard_view_model.dart index 7b1c2f8..c92df43 100644 --- a/lib/view_models/dashboard_view_model.dart +++ b/lib/view_models/dashboard_view_model.dart @@ -4,10 +4,13 @@ import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/cupertino.dart'; import 'package:mc_common_app/classes/app_state.dart'; +import 'package:mc_common_app/config/dependency_injection.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; +import 'package:mc_common_app/main.dart'; import 'package:mc_common_app/models/user_models/image_response.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/firebase_service.dart'; import 'package:mc_common_app/utils/location/Location.dart'; import 'package:mc_common_app/utils/shared_prefrence.dart'; import 'package:mc_common_app/utils/utils.dart'; @@ -24,6 +27,7 @@ class DashboardVM extends BaseVM { int selectedNavbarBarIndex = 2; void onNavbarTapped(int index) { + print(AppState().getDeviceToken); selectedNavbarBarIndex = index; notifyListeners(); } @@ -67,7 +71,8 @@ class DashboardVM extends BaseVM { notifyListeners(); } - updateIndex(int i) { + updateIndex(int i) async { + print(AppState().getDeviceToken); selectedNavbarBarIndex = i; notifyListeners(); } diff --git a/lib/views/appoinments/add_new_service_appointment_page.dart b/lib/views/appoinments/add_new_service_appointment_page.dart index ce553e6..56366e9 100644 --- a/lib/views/appoinments/add_new_service_appointment_page.dart +++ b/lib/views/appoinments/add_new_service_appointment_page.dart @@ -4,8 +4,8 @@ import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/appoinments/widget/select_items_sheet.dart'; import 'package:flutter/material.dart'; +import 'package:mc_common_app/config/dependency_injection.dart'; import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/models/appointments_models/appointment_list_model.dart'; diff --git a/lib/views/appoinments/appointment_page.dart b/lib/views/appoinments/appointment_page.dart index 0edae37..2737af4 100644 --- a/lib/views/appoinments/appointment_page.dart +++ b/lib/views/appoinments/appointment_page.dart @@ -3,7 +3,7 @@ import 'dart:async'; import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/views/dashboard/widget/appointment_slider_widget.dart'; import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/config/dependencies.dart'; +import 'package:mc_common_app/config/dependency_injection.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; diff --git a/lib/views/appoinments/merge_appointment_page.dart b/lib/views/appoinments/merge_appointment_page.dart index 1253c78..ac4c9b0 100644 --- a/lib/views/appoinments/merge_appointment_page.dart +++ b/lib/views/appoinments/merge_appointment_page.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/config/dependencies.dart'; +import 'package:mc_common_app/config/dependency_injection.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; diff --git a/lib/views/appoinments/update_appointment_page.dart b/lib/views/appoinments/update_appointment_page.dart index 1ecd4c3..43b1ef8 100644 --- a/lib/views/appoinments/update_appointment_page.dart +++ b/lib/views/appoinments/update_appointment_page.dart @@ -1,9 +1,8 @@ import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:car_provider_app/views/appoinments/widget/appointment_detail_list_widget.dart'; import 'package:car_provider_app/views/appoinments/widget/sheets.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/config/dependencies.dart'; +import 'package:mc_common_app/config/dependency_injection.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; diff --git a/lib/views/dashboard/dashboard_page.dart b/lib/views/dashboard/dashboard_page.dart index 6d4f796..e34b2ba 100644 --- a/lib/views/dashboard/dashboard_page.dart +++ b/lib/views/dashboard/dashboard_page.dart @@ -1,24 +1,17 @@ import 'dart:async'; -import 'package:badges/badges.dart' as b; - import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/dashboard/fragments/ads_fragment.dart'; -import 'package:car_provider_app/views/dashboard/fragments/appoinment_fragment.dart'; import 'package:car_provider_app/views/dashboard/fragments/my_requests_fragment.dart'; -import 'package:car_provider_app/views/dashboard/widget/drawer_widget.dart'; import 'package:car_provider_app/views/settings/branch/branch_list_page.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/classes/consts.dart'; -import 'package:mc_common_app/config/dependencies.dart'; +import 'package:mc_common_app/config/dependency_injection.dart'; import 'package:mc_common_app/config/routes.dart'; -import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/main.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'; @@ -26,8 +19,7 @@ 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'; import 'package:provider/provider.dart'; import 'fragments/branch_appointment_fragment.dart'; @@ -55,11 +47,14 @@ class _DashboardPageState extends State { Future _onRefresh() async { final requestsVM = context.read(); + final chatVM = context.read(); await context.read().getBranchAndServices(); AdVM adVm = Provider.of(context, listen: false); SubscriptionsVM sVM = Provider.of(context, listen: false); await context.read().getMyAppointmentsForProvider({"ServiceProviderID": injector.get().getUser.data?.userInfo?.providerId.toString() ?? "0"}); adVm.populateAdsFilterList(); + await chatVM.buildHubConnection(context); + if (adVm.myAds.isEmpty) { await adVm.getMyAds(); } @@ -78,6 +73,7 @@ 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() ?? ""); } @@ -85,8 +81,6 @@ class _DashboardPageState extends State { if (sVM.tempSubscriptions.isEmpty) { await sVM.getSubscriptionBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "", true); } - - // await chatVM.buildHubConnection(context); } @override diff --git a/lib/views/dashboard/fragments/ads_fragment.dart b/lib/views/dashboard/fragments/ads_fragment.dart index 7a583c2..22699e7 100644 --- a/lib/views/dashboard/fragments/ads_fragment.dart +++ b/lib/views/dashboard/fragments/ads_fragment.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/config/dependencies.dart'; +import 'package:mc_common_app/config/dependency_injection.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; diff --git a/lib/views/dashboard/fragments/appoinment_fragment.dart b/lib/views/dashboard/fragments/appoinment_fragment.dart index 4e4e95e..2838862 100644 --- a/lib/views/dashboard/fragments/appoinment_fragment.dart +++ b/lib/views/dashboard/fragments/appoinment_fragment.dart @@ -1,7 +1,7 @@ import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/views/dashboard/widget/appointment_slider_widget.dart'; import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/config/dependencies.dart'; +import 'package:mc_common_app/config/dependency_injection.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/theme/colors.dart'; @@ -12,7 +12,6 @@ import 'package:mc_common_app/view_models/appointments_view_model.dart'; import 'package:mc_common_app/widgets/common_widgets/categories_list.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:flutter/material.dart'; -import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:percent_indicator/percent_indicator.dart'; diff --git a/lib/views/requests/request_detail_page.dart b/lib/views/requests/request_detail_page.dart index efb65cb..7a85c23 100644 --- a/lib/views/requests/request_detail_page.dart +++ b/lib/views/requests/request_detail_page.dart @@ -165,7 +165,7 @@ class RequestDetailPage extends StatelessWidget { statusText: "Offer ${requestDetailPageArguments.requestModel.requestStatusName}", context: context, onViewChatTapped: () async { - ChatViewArguments chatViewArguments = ChatViewArguments( + ChatViewArgumentsForRequest chatViewArgumentsForRequest = ChatViewArgumentsForRequest( chatTypeEnum: ChatTypeEnum.requestOffer, receiverId: requestDetailPageArguments.requestModel.customerID, senderId: AppState().getUser.data!.userInfo!.userId.toString(), @@ -175,7 +175,10 @@ class RequestDetailPage extends StatelessWidget { requestModel: requestDetailPageArguments.requestModel, requestIndex: requestDetailPageArguments.requestIndex, // This will be only sent in case of provider ); - + ChatViewArguments chatViewArguments = ChatViewArguments( + chatTypeEnum: ChatTypeEnum.requestOffer, + chatViewArgumentsForRequest: chatViewArgumentsForRequest, + ); final chatVM = context.read(); await chatVM .getUsersChatMessagesForProvider( @@ -186,11 +189,7 @@ class RequestDetailPage extends StatelessWidget { customerRequestIndex: requestDetailPageArguments.requestIndex, ) .whenComplete( - () => navigateWithName( - context, - AppRoutes.chatView, - arguments: chatViewArguments, - ), + () => navigateWithName(context, AppRoutes.chatView, arguments: chatViewArguments), ); }, ),