From 7486f320dc2141c19576c7396b12928587d2a558 Mon Sep 17 00:00:00 2001 From: "taha.alam" Date: Thu, 22 Aug 2024 11:00:33 +0300 Subject: [PATCH] king khalid university application --- README.md | 2 +- android/app/build.gradle | 4 +- .../diplomaticquarterapp/utils/HMGUtils.kt | 2 - android/build.gradle | 6 +- assets/images/new/bottom_nav/my_file.svg | 6 +- assets/images/new/ic_logo.png | Bin 0 -> 33952 bytes lib/Constants.dart | 3 +- lib/config/localized_values.dart | 42 +- .../new_e_referral_step_three_page.dart | 7 +- .../bmi_calculator/bmi_calculator.dart | 2 +- .../bmr_calculator/bmr_calculator.dart | 6 +- .../bmr_calculator/bmr_result_page.dart | 4 +- .../health_calculator/body_fat/body_fat.dart | 6 +- .../body_fat/body_fat_result_page.dart | 4 +- .../calorie_calculator.dart | 6 +- .../calorie_result_page.dart | 4 +- .../health_calculator/carbs/carbs.dart | 4 +- .../carbs/carbs_result_page.dart | 2 +- lib/pages/BookAppointment/DoctorProfile.dart | 12 +- .../BookAppointment/book_reminder_page.dart | 18 +- .../components/SearchByDoctor.dart | 2 +- .../LiveChat/hospitalsLivechat_page.dart | 3 +- .../AmbulanceRequestIndex.dart | 2 +- lib/pages/ErService/OrderLogPage.dart | 2 +- .../rapid-response-team/rrt-request-page.dart | 2 +- .../MyAppointments/AppointmentDetails.dart | 9 +- lib/pages/MyAppointments/MyAppointments.dart | 3 +- .../MyAppointments/models/ArrivedButtons.dart | 24 - lib/pages/ToDoList/payment_method_select.dart | 12 +- lib/pages/ToDoList/widgets/paymentDialog.dart | 2 +- lib/pages/ToDoList/widgets/upcomingCard.dart | 10 +- lib/pages/feedback/send_feedback_page.dart | 3 +- lib/pages/feedback/status_feedback_page.dart | 2 +- lib/pages/final_products_page.dart | 12 +- .../AttachInsuranceCardImageDialog.dart | 2 +- .../insurance/insurance_update_screen.dart | 2 +- .../fragments/home_page_fragment2.dart | 313 ++++---- lib/pages/landing/landing_page.dart | 66 +- .../landing/widgets/logged_slider_view.dart | 141 ++-- lib/pages/landing/widgets/offer_view.dart | 10 +- lib/pages/landing/widgets/services_view.dart | 96 ++- lib/pages/landing/widgets/slider_view.dart | 6 +- .../livecare/live_care_payment_page.dart | 4 +- .../livecare/widgets/LiveCareHistoryCard.dart | 2 +- lib/pages/livecare/widgets/clinic_card.dart | 6 +- lib/pages/livecare/widgets/clinic_list.dart | 2 +- lib/pages/login/confirm-login.dart | 3 +- lib/pages/login/login-type.dart | 41 +- lib/pages/login/register.dart | 4 +- lib/pages/login/welcome.dart | 2 +- .../ask_doctor/ViewDoctorResponsesPage.dart | 6 +- .../medical/ask_doctor/request_type.dart | 3 +- .../medical/balance/advance_payment_page.dart | 3 +- .../prescription_details_inp.dart | 3 +- .../prescription_details_page.dart | 3 +- .../payfort_services/payfort_service.dart | 3 +- lib/splashPage.dart | 2 +- lib/theme/colors.dart | 2 + lib/theme/theme_value.dart | 34 +- lib/uitl/translations_delegate_base.dart | 5 +- lib/uitl/utils.dart | 736 +++++++++++------- lib/widgets/Loader/gif_loader_container.dart | 7 +- .../bottom_navigation/bottom_nav_bar.dart | 36 +- lib/widgets/buttons/defaultButton.dart | 6 +- lib/widgets/buttons/floatingActionButton.dart | 63 +- .../data_display/medical/doctor_card.dart | 9 +- .../medical/time_line_new_widget.dart | 4 +- lib/widgets/drawer/app_drawer_widget.dart | 340 ++------ lib/widgets/habib_logo_widget.dart | 9 +- lib/widgets/new_design/doctor_header.dart | 15 +- lib/widgets/new_design/my_tab_view.dart | 4 +- lib/widgets/others/not_auh_page.dart | 22 +- 72 files changed, 1150 insertions(+), 1093 deletions(-) create mode 100644 assets/images/new/ic_logo.png diff --git a/README.md b/README.md index 8a284cae..67437d94 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# diplomaticquarterapp +'# diplomaticquarterapp A new Flutter application. diff --git a/android/app/build.gradle b/android/app/build.gradle index f1799225..ffcaaffb 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -142,7 +142,7 @@ dependencies { // exclude group: 'com.google.protobuf',module: 'protobuf-javalite' // exclude group: 'com.google.protobuf',module: 'protobuf-lite' // }) - implementation 'pub.devrel:easypermissions:0.4.0' + implementation 'pub.devrel:easypermissions:3.0.0' // implementation 'com.google.firebase:firebase-inappmessaging-display:17.2.0' // implementation 'com.google.firebase:firebase-inappmessaging-display:17.2.0' implementation 'com.google.guava:guava:27.0.1-android' @@ -167,7 +167,7 @@ dependencies { implementation "us.zoom.videosdk:zoomvideosdk-annotation:1.10.1" implementation "us.zoom.videosdk:zoomvideosdk-videoeffects:1.10.1" - implementation "org.jetbrains.anko:anko-commons:0.10.4" +// implementation "org.jetbrains.anko:anko-commons:0.10.4" implementation 'com.github.kittinunf.fuel:fuel:2.3.0' //for JVM implementation 'com.github.kittinunf.fuel:fuel-android:2.3.0' implementation 'com.google.android.gms:play-services-location:17.1.0'//for Android diff --git a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/utils/HMGUtils.kt b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/utils/HMGUtils.kt index 7fbf859a..a105ef05 100644 --- a/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/utils/HMGUtils.kt +++ b/android/app/src/main/kotlin/com/cloud/diplomaticquarterapp/utils/HMGUtils.kt @@ -22,7 +22,6 @@ import com.github.kittinunf.fuel.httpPost import com.google.gson.Gson import com.google.gson.reflect.TypeToken import io.flutter.plugin.common.MethodChannel -import org.jetbrains.anko.doAsyncResult import org.json.JSONArray import org.json.JSONException import org.json.JSONObject @@ -208,7 +207,6 @@ fun httpPost(url: String, body: Map, onSuccess: (response: HTTP .header("Content-Type", "application/json") .header("Allow", "*/*") .response { request, response, result -> - result.doAsyncResult { } result.fold({ data -> val dataString = String(data) if (isJSONValid(dataString)) { diff --git a/android/build.gradle b/android/build.gradle index b5185cca..ceea702f 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -11,7 +11,8 @@ buildscript { repositories { google() - jcenter() +// jcenter() + mavenCentral() maven { url 'https://developer.huawei.com/repo/' } // maven { @@ -37,6 +38,9 @@ allprojects { maven { url 'https://developer.huawei.com/repo/' } + maven { + url 'https://mvnrepository.com/artifact/' + } maven { url "https://artifactory.ess-dev.com/artifactory/gradle-dev-local" } diff --git a/assets/images/new/bottom_nav/my_file.svg b/assets/images/new/bottom_nav/my_file.svg index fc5c0096..9d495ee2 100644 --- a/assets/images/new/bottom_nav/my_file.svg +++ b/assets/images/new/bottom_nav/my_file.svg @@ -1,7 +1,7 @@ - - - + + + diff --git a/assets/images/new/ic_logo.png b/assets/images/new/ic_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..efa2f9e2e222026d25938347d07d99cc0f75e771 GIT binary patch literal 33952 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 literal 0 HcmV?d00001 diff --git a/lib/Constants.dart b/lib/Constants.dart index 3cb69afd..35eb83be 100644 --- a/lib/Constants.dart +++ b/lib/Constants.dart @@ -1,5 +1,6 @@ +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:flutter/material.dart'; -final Color? secondaryColor = Colors.red[800]; +final Color? secondaryColor = appColor; final Color? dividerColor = Colors.grey[600]; \ No newline at end of file diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 311cb419..93437535 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -116,13 +116,13 @@ const Map localizedValues = { "national-id-number": {"en": "National ID Number", "ar": "رقم الهوية الوطنية / الاقامة"}, "medical-file-number": {"en": "Medical File Number", "ar": "رقم الملف الطبي"}, 'login': {'en': 'Login', 'ar': 'دخول'}, - 'loginregister': {'en': 'Login / Register', 'ar': 'دخول/ تسجيل'}, + 'loginregister': {'en': 'Login', 'ar': 'دخول'}, 'poweredBy': {'en': 'Powered by', 'ar': 'مشغل بواسطة'}, "welcome": {"en": "Welcome", "ar": "مرحبا بكم"}, "welcome-to": {"en": "Welcome to", "ar": "مرحبا بك في"}, "patient-app": {"en": "Patient App", "ar": "تطبيق المراجعين"}, "welcome_text": {"en": "Dr. Sulaiman Al Habib Mobile Application", "ar": "الدكتور سليمان الحبيب لتطبيقات الهاتف"}, - "dr-sulaiman-text": {"en": "Dr. Sulaiman Al Habib", "ar": "د. سليمان الحبيب"}, + "king-khalid-university": {"en": "King Khalid University", "ar": "جامعة الملك خالد"}, 'welcome_text2': {'en': 'Have you previously visited the hospitals or medical centers of Dr. Sulaiman Al Habib?', 'ar': 'هل قمت مسبقا بزيارة مستشفيات او مراكز الدكتور سليمان الحبيب الطبية ؟'}, 'yes': {'en': 'Yes', 'ar': 'نعم'}, 'no': {'en': 'No', 'ar': 'لا'}, @@ -269,6 +269,7 @@ const Map localizedValues = { "register-info-family": {"en": "How would like to add the new member?", "ar": "كيف ترغب باضافة العضو الجديد؟"}, "remove-family-member": {"en": "Remove this member?", "ar": "إزالة ملف العضو؟"}, "MyMedicalFile": {"en": "My Medical File", 'ar': 'الملف الطبي الالكتروني'}, + "MyMedicalFiles": {"en": "Medical File", 'ar': 'الملف الطبي'}, "myMedicalFileSubTitle": {"en": "All your medical records", 'ar': 'جميع سجلاتك الطبية'}, "viewMore": {"en": "View More", 'ar': 'عرض المزيد'}, "homeHealthCareService": {"en": "Home Health Care Service", 'ar': 'الرعاية الصحية المنزلية'}, @@ -493,7 +494,7 @@ const Map localizedValues = { "ar": "توفر هذه الخدمة مجموعه من خدمات الرعايه الصحيه المنزلية و متابعه مستمره وشامله للذين لا يستطيعون الوصول للمنشات الصحيه في اماكن اقامتهم (التحاليل المخبرية – الاشعة – التطعيمات – العلاج الطبيعي) ... " }, - "LoginRegister": {"en": "Login/Register", "ar": "دخول / تسجيل"}, + "LoginRegister": {"en": "Login", "ar": "دخول"}, "OrderLog": {"en": "Order Log", "ar": " سجل الطلبات"}, "info-lab": { "en": "This service allows you to view the results of all laboratory tests performed in Al Habib Medical Group as well as sending the report via e-mail.", @@ -538,6 +539,7 @@ const Map localizedValues = { "review": {"en": " reviews", "ar": "تقييمات"}, "viewMedicalFile": {"en": "View Details", "ar": "عرض الملف الطبي"}, "viewAllServices": {"en": "View All Services", "ar": "عرض جميع الخدمات"}, + "allServices": {"en": "All Services", "ar": "جميع الخدمات"}, "medicalFile": {"en": "Medical File", "ar": "ملفي الطبي"}, "verified": {"en": "Verified", "ar": "تم التحقق"}, "checkup": {"en": "Checkup", "ar": "فحص"}, @@ -550,7 +552,7 @@ const Map localizedValues = { "erservices": {"en": "Emergency", "ar": "الطوارئ"}, "services2": {"en": "Services", "ar": "خدمات"}, "cantSeeProfile": {"en": "To view your medical profile, please log in or register now", "ar": "لتصفح ملفك الطبي الرجاء تسجيل الدخول أو التسجيل الآن"}, - "loginRegisterNow": {"en": "Login or Register Now", "ar": "تسجيل الدخول أو التسجيل الآن"}, + "loginRegisterNow": {"en": "Login Now", "ar": "تسجيل الدخول الآن"}, "HMGPharmacy": {"en": "HMG Pharmacy", "ar": "صيدلية HMG"}, "ecommerceSolution": {"en": "Ecommerce Solution", "ar": "حل التجارة الإلكترونية"}, "comprehensive": {"en": "Comprehensive", "ar": "شامل"}, @@ -1813,37 +1815,37 @@ const Map localizedValues = { "ar": "الرجاء السماح لتطبيق مجموعة الحبيب الطبية للظهورعلى سطح الشاشة عند استلام الاتصال من الطبيب لخدمة اللايف كير" }, "cameraPermissionDialog": { - "en": "Dr. Al Habib app needs to access Camera to enable virtual consultation between patient & doctor, attach images and scan QR for parking service.", - "ar": "يحتاج تطبيق دكتور الحبيب الى صلاحية الوصول إلى الكاميرا لخدمة الاستشارة الافتراضية بين المراجع والطبيب وإرفاق الصور ومسح رمز الاستجابة السريع لخدمة مواقف السيارات." + "en": "King Khalid University app needs to access Camera to enable virtual consultation between patient & doctor, attach images and scan QR for parking service.", + "ar": "يحتاج تطبيق جامعة الملك خالد إلى الوصول إلى الكاميرا لتمكين الاستشارة الافتراضية بين المريض والطبيب ، وإرفاق الصور ومسح QR لخدمة وقوف السيارات." }, "galleryPermission": { - "en": "Dr. Al Habib app needs to access Read & write external storage to upload images & documents in the E-Referral module and renew and update the insurance cards.", - "ar": "يحتاج تطبيق دكتور الحبيب إلى صلاحية الوصول إلى معرض الصور وذلك لتحميل الصور والمستندات لخدمة الإحالة الإلكترونية وكذلك لخدمة تجديد بطاقات التأمين وتحديثها." + "en": "King Khalid University app needs to access Read & write external storage to upload images & documents in the E-Referral module and renew and update the insurance cards.", + "ar": "يحتاج تطبيق جامعة الملك خالد إلى الوصول إلى وحدة التخزين الخارجية للقراءة والكتابة لتحميل الصور والمستندات في وحدة الإحالة الإلكترونية وتجديد وتحديث بطاقات التأمين." }, "locationPermissionDialog": { "en": - "Dr. Al Habib app collects location data to show the nearest HMG hospitals and ER Locations and provides health care services to your location and Health weather indicators service and the medication delivery.", - "ar": "يحتاج تطبيق دكتور الحبيب إلى صلاحية الوصول الى الموقع لإظهار أقرب مستشفيات المجموعة، مواقع الطوارئ، تقديم خدمات الرعاية الصحية إلى موقعك، خدمة مؤشرات الطقس الصحية وكذلك خدمة توصيل الأدوية." + "King Khalid University app collects location data to show the nearest HMG hospitals and ER Locations and provides health care services to your location and Health weather indicators service and the medication delivery.", + "ar": "يجمع تطبيق جامعة الملك خالد بيانات الموقع لإظهار أقرب مستشفيات المجموعة ومواقع الطوارئ ويوفر خدمات الرعاية الصحية لموقعك وخدمة مؤشرات الطقس الصحي وتوصيل الأدوية." }, "calendarPermission": { - "en": "Dr. Al Habib app collects calendar data to modify and set reminders for Appointments", - "ar": "يحتاج تطبيق دكتور الحبيب إلى صلاحية الوصول الى التقويم وذلك لاضافة تذكيرات بالمواعيد في التقويم." + "en": "King Khalid University app collects calendar data to modify and set reminders for Appointments", + "ar": "يقوم تطبيق جامعة الملك خالد بجمع بيانات التقويم لتعديل وتعيين تذكيرات للمواعيد" }, "recordAudioPermission": { - "en": "Dr. Al Habib app needs audio permission to enable voice command features.", - "ar": "يحتاج تطبيق دكتور الحبيب إلى صلاحية الوصول الى الصوت لتفعيل خدمة الأوامر الصوتية." + "en": "King Khalid University app needs audio permission to enable voice command features.", + "ar": "يحتاج تطبيق جامعة الملك خالد إلى إذن صوتي لتمكين ميزات الأوامر الصوتية." }, "wifiPermission": { - "en": "Dr. Al Habib app needs to access WiFi state permission to connect to the HMG WiFi network from within the app when you visit the hospital.", - "ar": "يحتاج تطبيق دكتور الحبيب إلى الوصول إلى الواي فاي للاتصال بشبكة الواي فاي في المجموعة عند زيارة المستشفى." + "en": "King Khalid University app needs to access WiFi state permission to connect to the HMG WiFi network from within the app when you visit the hospital.", + "ar": "يحتاج تطبيق جامعة الملك خالد إلى الوصول إلى إذن حالة WiFi للاتصال بشبكة HMG WiFi من داخل التطبيق عند زيارة المستشفى." }, "physicalActivityPermission": { - "en": "Dr. Al Habib app collects physical activity data to read heart rate, steps & distance from your smartwatch & send it to your doctor.", - "ar": "يحتاج تطبيق دكتور الحبيب إلى الوصول إلى بيانات النشاط البدني لقراءة معدل ضربات القلب والخطوات والمسافة من ساعتك الذكية وتحميلها على ملفك الطبي حتى يتمكن الطبيب من الاطلاع عليها." + "en": "King Khalid University app collects physical activity data to read heart rate, steps & distance from your smartwatch & send it to your doctor.", + "ar": "يجمع تطبيق جامعة الملك خالد بيانات النشاط البدني لقراءة معدل ضربات القلب والخطوات والمسافة من ساعتك الذكية وإرسالها إلى طبيبك." }, "bluetoothPermission": { - "en": "Dr. Al Habib app needs to access Bluetooth permission to connect blood pressure & blood sugar devices with the app to analyze the data", - "ar": "يحتاج تطبيق دكتور الحبيب إلى الوصول إلى البلوتوث لربط أجهزة ضغط الدم وسكر الدم بالتطبيق لتحليل البيانات وتحميلها على ملفك الطبي حتى يتمكن الطبيب من الاطلاع عليها." + "en": "King Khalid University app needs to access Bluetooth permission to connect blood pressure & blood sugar devices with the app to analyze the data", + "ar": "يحتاج تطبيق جامعة الملك خالد إلى الحصول على إذن Bluetooth لتوصيل أجهزة ضغط الدم وسكر الدم بالتطبيق لتحليل البيانات" }, "privacyPolicy": {"en": "Privacy Policy", "ar": "سياسة الخصوصية"}, "termsConditions": {"en": "Terms & Conditions", "ar": "الأحكام والشروط"}, diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart index ec2a54d8..86a1115a 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart @@ -25,6 +25,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import '../../../../theme/theme_value.dart'; import '../dialogs/select_city_dialog.dart'; class NewEReferralStepThreePage extends StatefulWidget { @@ -161,7 +162,7 @@ class _NewEReferralStepThreePageState extends State { fontSize: 14, letterSpacing: -0.56, decoration: TextDecoration.underline, - color: CustomColors.accentColor, + color: appColor, ), ), ), @@ -248,7 +249,7 @@ class _NewEReferralStepThreePageState extends State { children: [ Checkbox( value: isPatientInsured, - activeColor: CustomColors.accentColor, + activeColor: CustomColors.primaryColor, onChanged: (bool? newValue) { setState(() { isPatientInsured = newValue!; @@ -342,7 +343,7 @@ class _NewEReferralStepThreePageState extends State { fontSize: 14, letterSpacing: -0.56, decoration: TextDecoration.underline, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), ), ), diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart index e74a4615..4e882a92 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart @@ -174,7 +174,7 @@ class _BMICalculatorState extends State { padding: EdgeInsets.all(16), child: SecondaryButton( label: TranslationBase.of(context).calculate, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, onTap: () { setState(() { calculateBMI(); diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart index 58b55f33..84ac07f8 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart @@ -220,7 +220,7 @@ class _BmrCalculatorState extends State { child: Container( width: double.infinity, height: double.infinity, - decoration: containerRadius(!isMale ? CustomColors.accentColor : Colors.white, 100), + decoration: containerRadius(!isMale ? CustomColors.primaryColor : Colors.white, 100), ), ), mWidth(12), @@ -254,7 +254,7 @@ class _BmrCalculatorState extends State { child: Container( width: double.infinity, height: double.infinity, - decoration: containerRadius(isMale ? CustomColors.accentColor : Colors.white, 100), + decoration: containerRadius(isMale ? CustomColors.primaryColor : Colors.white, 100), ), ), mWidth(12), @@ -410,7 +410,7 @@ class _BmrCalculatorState extends State { color: Colors.white, child: SecondaryButton( label: TranslationBase.of(context).calculate, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, onTap: () { setState(() { calculateBmr(); diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart index 33ff10b4..815c5e67 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart @@ -74,7 +74,7 @@ class BmrResultPage extends StatelessWidget { ), ], ), - progressColor: CustomColors.accentColor, + progressColor: CustomColors.primaryColor, backgroundColor: Colors.white, ), ), @@ -98,7 +98,7 @@ class BmrResultPage extends StatelessWidget { color: Colors.white, child: SecondaryButton( label: TranslationBase.of(context).viewDocList, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, onTap: () { getDoctorsList(context); }, diff --git a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart index 1d523d55..ea2dd0ac 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart @@ -327,7 +327,7 @@ class _BodyFatState extends State { child: Container( width: double.infinity, height: double.infinity, - decoration: containerRadius(!isMale ? CustomColors.accentColor : Colors.white, 100), + decoration: containerRadius(!isMale ? CustomColors.primaryColor : Colors.white, 100), ), ), mWidth(12), @@ -361,7 +361,7 @@ class _BodyFatState extends State { child: Container( width: double.infinity, height: double.infinity, - decoration: containerRadius(isMale ? CustomColors.accentColor : Colors.white, 100), + decoration: containerRadius(isMale ? CustomColors.primaryColor : Colors.white, 100), ), ), mWidth(12), @@ -493,7 +493,7 @@ class _BodyFatState extends State { color: Colors.white, child: SecondaryButton( label: TranslationBase.of(context).calculate, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, onTap: () { setState(() { calculateBodyFat(); diff --git a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart index 94e7796c..aec7c1de 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart @@ -78,7 +78,7 @@ class FatResult extends StatelessWidget { ), ], ), - progressColor: CustomColors.accentColor, + progressColor: CustomColors.primaryColor, backgroundColor: Colors.white, ), ), @@ -96,7 +96,7 @@ class FatResult extends StatelessWidget { color: Colors.white, child: SecondaryButton( label: TranslationBase.of(context).viewDocList, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, onTap: () { getDoctorsList(context); }, diff --git a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart index 6916299c..73063e45 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart @@ -156,7 +156,7 @@ class _CalorieCalculatorState extends State { child: Container( width: double.infinity, height: double.infinity, - decoration: containerRadius(!isMale ? CustomColors.accentColor : Colors.white, 100), + decoration: containerRadius(!isMale ? CustomColors.primaryColor : Colors.white, 100), ), ), mWidth(12), @@ -190,7 +190,7 @@ class _CalorieCalculatorState extends State { child: Container( width: double.infinity, height: double.infinity, - decoration: containerRadius(isMale ? CustomColors.accentColor : Colors.white, 100), + decoration: containerRadius(isMale ? CustomColors.primaryColor : Colors.white, 100), ), ), mWidth(12), @@ -344,7 +344,7 @@ class _CalorieCalculatorState extends State { color: Colors.white, child: SecondaryButton( label: TranslationBase.of(context).calculate, - color: ageController.text.isNotEmpty ? int.parse(ageController.text) >120 ? Colors.grey : CustomColors.accentColor : CustomColors.accentColor, + color: ageController.text.isNotEmpty ? int.parse(ageController.text) >120 ? Colors.grey : CustomColors.primaryColor : CustomColors.accentColor, onTap: () { if(ageController.text.isNotEmpty && int.parse(ageController.text) <121 && int.parse(_heightController.text)<250 && int.parse(_weightController.text) <200) setState(() { diff --git a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart index ac67f1d8..95116d14 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart @@ -76,7 +76,7 @@ class CalorieResultPage extends StatelessWidget { ), ], ), - progressColor: CustomColors.accentColor, + progressColor: CustomColors.primaryColor, backgroundColor: Colors.white, ), ), @@ -99,7 +99,7 @@ class CalorieResultPage extends StatelessWidget { color: Colors.white, child: SecondaryButton( label: TranslationBase.of(context).viewDocList, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, onTap: () { getDoctorsList(context); }, diff --git a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart index 5ee8980f..3165ec24 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart @@ -137,7 +137,7 @@ class _CarbsState extends State { padding: const EdgeInsets.all(12.0), child: Text( TranslationBase.of(context).notSure, - style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, letterSpacing: -0.56, color: CustomColors.accentColor, decoration: TextDecoration.underline), + style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, letterSpacing: -0.56, color: CustomColors.primaryColor, decoration: TextDecoration.underline), ), ), ) @@ -230,7 +230,7 @@ class _CarbsState extends State { color: Colors.white, child: SecondaryButton( label: TranslationBase.of(context).calculate, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, onTap: () { setState(() { { diff --git a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart index 99ab9ecb..d3fc8991 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart @@ -74,7 +74,7 @@ class CarbsResult extends StatelessWidget { color: Colors.white, child: SecondaryButton( label: TranslationBase.of(context).seeListOfDoctor, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, onTap: () { getDoctorsList(context); }, diff --git a/lib/pages/BookAppointment/DoctorProfile.dart b/lib/pages/BookAppointment/DoctorProfile.dart index f1738c85..a12fcb29 100644 --- a/lib/pages/BookAppointment/DoctorProfile.dart +++ b/lib/pages/BookAppointment/DoctorProfile.dart @@ -569,11 +569,15 @@ class _DoctorProfileState extends State with TickerProviderStateM }); } - navigateToLogin() { + navigateToLogin() async { ConfirmDialog.closeAlertDialog(context); - Navigator.of(context).pushNamed( - WELCOME_LOGIN, - ); + var data = await sharedPref.getObject(IMEI_USER_DATA); + sharedPref.remove(REGISTER_DATA_FOR_LOGIIN); + if (data != null) { + Navigator.of(context).pushNamed(CONFIRM_LOGIN); + } else { + Navigator.of(context).pushNamed(LOGIN_TYPE); + } } Future navigateToBookConfirm(context) async { diff --git a/lib/pages/BookAppointment/book_reminder_page.dart b/lib/pages/BookAppointment/book_reminder_page.dart index 547ab901..3745aef2 100644 --- a/lib/pages/BookAppointment/book_reminder_page.dart +++ b/lib/pages/BookAppointment/book_reminder_page.dart @@ -4,6 +4,8 @@ import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart import 'package:diplomaticquarterapp/models/Appointments/PatientShareResposne.dart'; import 'package:diplomaticquarterapp/models/header_model.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/reminder_dialog.dart'; +import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; +import 'package:diplomaticquarterapp/pages/medical/medical_profile_page_new.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; @@ -17,6 +19,7 @@ import 'package:flutter/material.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:provider/provider.dart'; +import '../MyAppointments/MyAppointments.dart'; import 'BookSuccess.dart'; class BookReminderPage extends StatefulWidget { @@ -206,18 +209,13 @@ class _BookReminderPageState extends State { } Future navigateToBookSuccess(BuildContext context) async { - Navigator.push( + Navigator.pop(context, null); + Navigator.pushAndRemoveUntil( context, - FadePage( - page: BookSuccess( - docObject: widget.docObject, - patientShareResponse: widget.patientShareResponse, - appoDateFormatted: widget.appoDateFormatted, - appoTimeFormatted: widget.appoTimeFormatted, - isCash: widget.isCash, - ), - ), + MaterialPageRoute(builder: (context) => LandingPage()), + (Route route) => false, ); + Navigator.push(context, FadePage(page: MyAppointments())); } Future> requestPermissions() async { diff --git a/lib/pages/BookAppointment/components/SearchByDoctor.dart b/lib/pages/BookAppointment/components/SearchByDoctor.dart index f5c98d87..aeca36f8 100644 --- a/lib/pages/BookAppointment/components/SearchByDoctor.dart +++ b/lib/pages/BookAppointment/components/SearchByDoctor.dart @@ -71,7 +71,7 @@ class _SearchByDoctorState extends State { minWidth: MediaQuery.of(context).size.width, height: 45.0, child: CustomTextButton( - backgroundColor: CustomColors.accentColor, + backgroundColor: CustomColors.primaryColor, elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(6), diff --git a/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart b/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart index 6abd177c..db906874 100644 --- a/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart +++ b/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/core/viewModels/contactus/livechat_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; @@ -110,7 +111,7 @@ class _HospitalsLiveChatPageState extends State { TranslationBase.of(context).start, //Changed By Aamir URL chat!.isEmpty ? null : () => {launch(chat!)}, - color: Color(0xffD02127), + color: appColor, textColor: chat!.isEmpty ? Color(0xff000000) : Colors.white, disabledColor: Color(0xffEAEAEA), ), diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart index fc4155ca..0a8adf7f 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart @@ -243,7 +243,7 @@ class _AmbulanceRequestIndexPageState extends State { width: 8, height: 8, decoration: containerRadius( - CustomColors.accentColor, + CustomColors.primaryColor, 100, ), ), diff --git a/lib/pages/ErService/OrderLogPage.dart b/lib/pages/ErService/OrderLogPage.dart index a551bda6..8cea9501 100644 --- a/lib/pages/ErService/OrderLogPage.dart +++ b/lib/pages/ErService/OrderLogPage.dart @@ -226,7 +226,7 @@ class OrderLogPage extends StatelessWidget { width: 8, height: 8, decoration: containerRadius( - CustomColors.accentColor, + CustomColors.primaryColor, 100, ), ), diff --git a/lib/pages/ErService/rapid-response-team/rrt-request-page.dart b/lib/pages/ErService/rapid-response-team/rrt-request-page.dart index cb7229ad..c7813006 100644 --- a/lib/pages/ErService/rapid-response-team/rrt-request-page.dart +++ b/lib/pages/ErService/rapid-response-team/rrt-request-page.dart @@ -366,7 +366,7 @@ class RRTRequestPageState extends State { else AppToast.showErrorToast(message: TranslationBase.of(context).pleaseAcceptTerms); }, - color: acceptTerms ? CustomColors.accentColor : Colors.grey, + color: acceptTerms ? CustomColors.primaryColor : Colors.grey, ), ), ], diff --git a/lib/pages/MyAppointments/AppointmentDetails.dart b/lib/pages/MyAppointments/AppointmentDetails.dart index 7d552c4f..3db25162 100644 --- a/lib/pages/MyAppointments/AppointmentDetails.dart +++ b/lib/pages/MyAppointments/AppointmentDetails.dart @@ -14,6 +14,7 @@ import 'package:diplomaticquarterapp/pages/MyAppointments/SchedulePage.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/CalendarUtils.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; @@ -272,7 +273,7 @@ class _AppointmentDetailsState extends State with SingleTick TranslationBase.of(context).reviewAppointment, goToBookConfirm, // DocAvailableAppointments.areSlotsAvailable ? goToBookConfirm : null, - color: Color(0xFFD02127), + color: appColor, disabledColor: Color(0xff28323A).withOpacity(0.3), ), ), @@ -389,15 +390,15 @@ class _AppointmentDetailsState extends State with SingleTick ratingWidget: RatingWidget( full: Icon( Icons.star, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), half: Icon( Icons.star_half, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), empty: Icon( Icons.star, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), ), tapOnlyMode: true, diff --git a/lib/pages/MyAppointments/MyAppointments.dart b/lib/pages/MyAppointments/MyAppointments.dart index c279a9ab..9f376220 100644 --- a/lib/pages/MyAppointments/MyAppointments.dart +++ b/lib/pages/MyAppointments/MyAppointments.dart @@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel. import 'package:diplomaticquarterapp/pages/MyAppointments/models/AppointmentType.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; @@ -507,7 +508,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid height: 22, child: Radio( value: _value, - activeColor: _value == _currentPage ? Color(0xffD02127) : Color(0xffE8E8E8), + activeColor: _value == _currentPage ? appColor : Color(0xffE8E8E8), groupValue: _currentPage, onChanged: (index) { setState(() { diff --git a/lib/pages/MyAppointments/models/ArrivedButtons.dart b/lib/pages/MyAppointments/models/ArrivedButtons.dart index 5cac41dd..80c4922a 100644 --- a/lib/pages/MyAppointments/models/ArrivedButtons.dart +++ b/lib/pages/MyAppointments/models/ArrivedButtons.dart @@ -21,35 +21,11 @@ class ArrivedButtons { "icon": 'lab_result.svg', "caller": "labResult", }, - { - "title": TranslationBase.of(AppGlobal.context).vitalSigns, - "subtitle": TranslationBase.of(AppGlobal.context).vitalSignsSubtitle, - "icon": 'vital_signs.svg', - "caller": "VitalSigns", - }, - { - "title": TranslationBase.of(AppGlobal.context).raise, - "subtitle": TranslationBase.of(AppGlobal.context).complaint, - "icon": "raise_comp.svg", - "caller": "insertComplaint", - }, - { - "title": TranslationBase.of(AppGlobal.context).insuranceApproval, - "subtitle": TranslationBase.of(AppGlobal.context).insuranceApprovalSubtitle, - "icon": 'insurance_approval.svg', - "caller": "Insurance", - }, { "title": TranslationBase.of(AppGlobal.context).askDoctor, "subtitle": TranslationBase.of(AppGlobal.context).service, "icon": 'ask_doctor.svg', "caller": "askDoc", }, - { - "title": TranslationBase.of(AppGlobal.context).service, - "subtitle": TranslationBase.of(AppGlobal.context).appoSurvey, - "icon": "survey.svg", - "caller": "Survey", - } ]; } diff --git a/lib/pages/ToDoList/payment_method_select.dart b/lib/pages/ToDoList/payment_method_select.dart index 5adcb90f..3c8c17e0 100644 --- a/lib/pages/ToDoList/payment_method_select.dart +++ b/lib/pages/ToDoList/payment_method_select.dart @@ -87,7 +87,7 @@ class _PaymentMethodState extends State { Container( width: 24, height: 24, - decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "MADA" ? CustomColors.accentColor : Colors.transparent, 100, Colors.grey, 0.5), + decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "MADA" ? CustomColors.primaryColor : Colors.transparent, 100, Colors.grey, 0.5), ), mWidth(12), Container( @@ -137,7 +137,7 @@ class _PaymentMethodState extends State { Container( width: 24, height: 24, - decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "VISA" ? CustomColors.accentColor : Colors.transparent, 100, Colors.grey, 0.5), + decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "VISA" ? CustomColors.primaryColor : Colors.transparent, 100, Colors.grey, 0.5), ), mWidth(12), Container( @@ -187,7 +187,7 @@ class _PaymentMethodState extends State { Container( width: 24, height: 24, - decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "MASTERCARD" ? CustomColors.accentColor : Colors.transparent, 100, Colors.grey, 0.5), + decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "MASTERCARD" ? CustomColors.primaryColor : Colors.transparent, 100, Colors.grey, 0.5), ), mWidth(12), Container( @@ -237,7 +237,7 @@ class _PaymentMethodState extends State { Container( width: 24, height: 24, - decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "TAMARA" ? CustomColors.accentColor : Colors.transparent, 100, Colors.grey, 0.5), + decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "TAMARA" ? CustomColors.primaryColor : Colors.transparent, 100, Colors.grey, 0.5), ), mWidth(12), Container( @@ -287,7 +287,7 @@ class _PaymentMethodState extends State { Container( width: 24, height: 24, - decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "Installment" ? CustomColors.accentColor : Colors.transparent, 100, Colors.grey, 0.5), + decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "Installment" ? CustomColors.primaryColor : Colors.transparent, 100, Colors.grey, 0.5), ), mWidth(12), Container( @@ -338,7 +338,7 @@ class _PaymentMethodState extends State { Container( width: 24, height: 24, - decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "ApplePay" ? CustomColors.accentColor : Colors.transparent, 100, Colors.grey, 0.5), + decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "ApplePay" ? CustomColors.primaryColor : Colors.transparent, 100, Colors.grey, 0.5), ), mWidth(12), Container( diff --git a/lib/pages/ToDoList/widgets/paymentDialog.dart b/lib/pages/ToDoList/widgets/paymentDialog.dart index 0f05dab0..73b77dd2 100644 --- a/lib/pages/ToDoList/widgets/paymentDialog.dart +++ b/lib/pages/ToDoList/widgets/paymentDialog.dart @@ -80,7 +80,7 @@ class _PaymentDialogState extends State { SizedBox(height: 12), Text( TranslationBase.of(context).appoPaymentConfirm, - style: TextStyle(fontSize: 14.0, color: CustomColors.accentColor, fontWeight: FontWeight.w600, letterSpacing: -0.56), + style: TextStyle(fontSize: 14.0, color: CustomColors.primaryColor, fontWeight: FontWeight.w600, letterSpacing: -0.56), ), SizedBox(height: 12), Container( diff --git a/lib/pages/ToDoList/widgets/upcomingCard.dart b/lib/pages/ToDoList/widgets/upcomingCard.dart index fa3e4a39..e76aded2 100644 --- a/lib/pages/ToDoList/widgets/upcomingCard.dart +++ b/lib/pages/ToDoList/widgets/upcomingCard.dart @@ -55,7 +55,7 @@ class _TodoListCardState extends State { ), Padding( padding: const EdgeInsets.only(left: 8.0, right: 8.0), - child: Text("01:23:22 " + TranslationBase.of(context).upcomingTimeLeft, style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: CustomColors.accentColor, letterSpacing: -0.48)), + child: Text("01:23:22 " + TranslationBase.of(context).upcomingTimeLeft, style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: CustomColors.primaryColor, letterSpacing: -0.48)), ), ], ), @@ -119,9 +119,9 @@ class _TodoListCardState extends State { itemSize: 20, ignoreGestures: true, ratingWidget: RatingWidget( - full: Icon(Icons.star, color: CustomColors.accentColor,), - half: Icon(Icons.star_half, color: CustomColors.accentColor,), - empty: Icon(Icons.star, color: CustomColors.accentColor,), + full: Icon(Icons.star, color: CustomColors.primaryColor,), + half: Icon(Icons.star_half, color: CustomColors.primaryColor,), + empty: Icon(Icons.star, color: CustomColors.primaryColor,), ), tapOnlyMode: true, unratedColor: Colors.grey[500], @@ -158,7 +158,7 @@ class _TodoListCardState extends State { padding: const EdgeInsets.only(top: 0.0), child: Text( "More Details", - style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: CustomColors.accentColor, letterSpacing: -0.48, height: 25 / 16, decoration: TextDecoration.underline), + style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: CustomColors.primaryColor, letterSpacing: -0.48, height: 25 / 16, decoration: TextDecoration.underline), ), ), ], diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index 595f6cd6..c21e677e 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -8,6 +8,7 @@ import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/services/permission/permission_service.dart'; import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; @@ -345,7 +346,7 @@ class _SendFeedbackPageState extends State { }); } }, - color: Color(0xffD02127), + color: appColor, textColor: Colors.white, disabledColor: Color(0xffEAEAEA), ), diff --git a/lib/pages/feedback/status_feedback_page.dart b/lib/pages/feedback/status_feedback_page.dart index 28c8fb52..edb34095 100644 --- a/lib/pages/feedback/status_feedback_page.dart +++ b/lib/pages/feedback/status_feedback_page.dart @@ -209,7 +209,7 @@ class _StatusFeedbackPageState extends State { child: Container( margin: EdgeInsets.only(top: 12), decoration: BoxDecoration( - color: (cOCItemList[index].statusId==7||cOCItemList[index].statusId==8)?CustomColors.accentColor:(cOCItemList[index].statusId==10||cOCItemList[index].statusId==6||cOCItemList[index].statusId==9)?CustomColors.green:CustomColors.orange, + color: (cOCItemList[index].statusId==7||cOCItemList[index].statusId==8)?CustomColors.primaryColor:(cOCItemList[index].statusId==10||cOCItemList[index].statusId==6||cOCItemList[index].statusId==9)?CustomColors.green:CustomColors.orange, borderRadius: BorderRadius.all( Radius.circular(10.0), ), diff --git a/lib/pages/final_products_page.dart b/lib/pages/final_products_page.dart index 4432cb1c..2d24cc1f 100644 --- a/lib/pages/final_products_page.dart +++ b/lib/pages/final_products_page.dart @@ -311,15 +311,15 @@ class _FinalProductsPageState extends State { ratingWidget: RatingWidget( full: Icon( Icons.star, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), half: Icon( Icons.star_half, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), empty: Icon( Icons.star_border, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), ), onRatingUpdate: (double value) {}, @@ -506,15 +506,15 @@ class _FinalProductsPageState extends State { ratingWidget: RatingWidget( full: Icon( Icons.star, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), half: Icon( Icons.star_half, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), empty: Icon( Icons.star_border, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), ), onRatingUpdate: (double value) {}, diff --git a/lib/pages/insurance/AttachInsuranceCardImageDialog.dart b/lib/pages/insurance/AttachInsuranceCardImageDialog.dart index 93e74183..e0e29ef1 100644 --- a/lib/pages/insurance/AttachInsuranceCardImageDialog.dart +++ b/lib/pages/insurance/AttachInsuranceCardImageDialog.dart @@ -151,7 +151,7 @@ class _AttachInsuranceCardImageDialogState extends State with SingleTickerProv controller: _tabController, isScrollable: false, indicatorWeight: 3.0, - indicatorColor: CustomColors.accentColor, + indicatorColor: CustomColors.primaryColor, labelColor: CustomColors.textDarkColor, labelPadding: EdgeInsets.symmetric(horizontal: 13.0, vertical: 2.0), unselectedLabelColor: CustomColors.textDarkColor, diff --git a/lib/pages/landing/fragments/home_page_fragment2.dart b/lib/pages/landing/fragments/home_page_fragment2.dart index c1c922ac..653a1af3 100644 --- a/lib/pages/landing/fragments/home_page_fragment2.dart +++ b/lib/pages/landing/fragments/home_page_fragment2.dart @@ -47,43 +47,57 @@ class _HomePageFragment2State extends State { super.initState(); } - initialiseHmgServices(bool isLogin) { - hmgServices.clear(); - - hmgServices.add(HmgServices(0, TranslationBase.of(context).book, TranslationBase.of(context).appointmentLabel, "assets/images/new/book appointment.svg", isLogin)); - hmgServices.add(HmgServices(1, TranslationBase.of(context).liveCare, TranslationBase.of(context).onlineConsulting, "assets/images/new/Live_Care.svg", isLogin)); - hmgServices.add(HmgServices(2, TranslationBase.of(context).emergencyTitle, TranslationBase.of(context).emergencySubtitle, "assets/images/new/emergency.svg", isLogin)); - hmgServices.add(HmgServices(3, TranslationBase.of(context).hhcHome, TranslationBase.of(context).healthCare, "assets/images/new/HHC.svg", isLogin)); - hmgServices.add(HmgServices(4, TranslationBase.of(context).checkup, TranslationBase.of(context).comprehensive, "assets/images/new/comprehensive_checkup.svg", isLogin)); - hmgServices.add(HmgServices(5, TranslationBase.of(context).online, TranslationBase.of(context).payment, "assets/images/new/paymentMethods.png", isLogin)); - hmgServices.add(HmgServices(6, TranslationBase.of(context).ereferralTitle, TranslationBase.of(context).ereferralSubtitle, "assets/images/new/E_Referral.svg", isLogin)); - hmgServices.add(HmgServices(7, TranslationBase.of(context).covidTest, TranslationBase.of(context).driveThru, "assets/images/new/CoronaIcon.svg", isLogin)); - hmgServices.add(HmgServices(8, TranslationBase.of(context).connectTitle, TranslationBase.of(context).connectSubtitle, "assets/images/new/reach_us.svg", isLogin)); - } + // initialiseHmgServices(bool isLogin) { + // hmgServices.clear(); + // + // hmgServices.add(HmgServices(0, TranslationBase.of(context).book, TranslationBase.of(context).appointmentLabel, "assets/images/new/book appointment.svg", isLogin)); + // // hmgServices.add(HmgServices(1, TranslationBase.of(context).liveCare, TranslationBase.of(context).onlineConsulting, "assets/images/new/Live_Care.svg", isLogin)); + // // hmgServices.add(HmgServices(2, TranslationBase.of(context).emergencyTitle, TranslationBase.of(context).emergencySubtitle, "assets/images/new/emergency.svg", isLogin)); + // // hmgServices.add(HmgServices(3, TranslationBase.of(context).hhcHome, TranslationBase.of(context).healthCare, "assets/images/new/HHC.svg", isLogin)); + // // hmgServices.add(HmgServices(4, TranslationBase.of(context).checkup, TranslationBase.of(context).comprehensive, "assets/images/new/comprehensive_checkup.svg", isLogin)); + // // hmgServices.add(HmgServices(5, TranslationBase.of(context).online, TranslationBase.of(context).payment, "assets/images/new/paymentMethods.png", isLogin)); + // // hmgServices.add(HmgServices(6, TranslationBase.of(context).ereferralTitle, TranslationBase.of(context).ereferralSubtitle, "assets/images/new/E_Referral.svg", isLogin)); + // // hmgServices.add(HmgServices(7, TranslationBase.of(context).covidTest, TranslationBase.of(context).driveThru, "assets/images/new/CoronaIcon.svg", isLogin)); + // hmgServices.add(HmgServices(8, TranslationBase.of(context).connectTitle, TranslationBase.of(context).connectSubtitle, "assets/images/new/reach_us.svg", isLogin)); + // } initialiseInPatientHmgServices(bool isLogin) { hmgServices.clear(); + // hmgServices.add(new HmgServices(0, TranslationBase.of(context).liveCare, TranslationBase.of(context).onlineConsulting, "assets/images/new/Live_Care.svg", isLogin)); // hmgServices.add(new HmgServices(1, TranslationBase.of(context).covidTest, TranslationBase.of(context).driveThru, "assets/images/new/CoronaIcon.svg", isLogin)); // hmgServices.add(new HmgServices(2, TranslationBase.of(context).online, TranslationBase.of(context).payment, "assets/images/new/paymentMethods.png", isLogin)); - hmgServices.add(new HmgServices(3, TranslationBase.of(context).hhcHome, TranslationBase.of(context).healthCare, "assets/images/new/HHC.svg", isLogin)); - hmgServices.add(new HmgServices(4, TranslationBase.of(context).checkup, TranslationBase.of(context).comprehensive, "assets/images/new/comprehensive_checkup.svg", isLogin)); - hmgServices.add(new HmgServices(2, TranslationBase.of(context).emergencyTitle, TranslationBase.of(context).emergencySubtitle, "assets/images/new/emergency.svg", isLogin)); - hmgServices.add(new HmgServices(6, TranslationBase.of(context).ereferralTitle, TranslationBase.of(context).ereferralSubtitle, "assets/images/new/E_Referral.svg", isLogin)); - hmgServices.add(new HmgServices(7, "H\u2082O", TranslationBase.of(context).dailyWater, "assets/images/new/h2o.svg", isLogin)); + // hmgServices.add(new HmgServices(3, TranslationBase.of(context).hhcHome, TranslationBase.of(context).healthCare, "assets/images/new/HHC.svg", isLogin)); + // hmgServices.add(new HmgServices(4, TranslationBase.of(context).checkup, TranslationBase.of(context).comprehensive, "assets/images/new/comprehensive_checkup.svg", isLogin)); + // hmgServices.add(new HmgServices(2, TranslationBase.of(context).emergencyTitle, TranslationBase.of(context).emergencySubtitle, "assets/images/new/emergency.svg", isLogin)); + // hmgServices.add(new HmgServices(6, TranslationBase.of(context).ereferralTitle, TranslationBase.of(context).ereferralSubtitle, "assets/images/new/E_Referral.svg", isLogin)); + // hmgServices.add(new HmgServices(7, "H\u2082O", TranslationBase.of(context).dailyWater, "assets/images/new/h2o.svg", isLogin)); hmgServices.add(new HmgServices(8, TranslationBase.of(context).connectTitle, TranslationBase.of(context).connectSubtitle, "assets/images/new/reach_us.svg", isLogin)); } + initServices(bool isLogin){ + hmgServices.clear(); + // hmgServices.add(HmgServices(0, TranslationBase.of(context).book, TranslationBase.of(context).appointmentLabel, "assets/images/new/book appointment.svg", isLogin)); + hmgServices.add(HmgServices(31, TranslationBase.of(context).myAppointments, TranslationBase.of(context).medicalFile, "assets/images/new/bottom_nav/my_file.svg", isLogin)); + hmgServices.add(HmgServices(24, TranslationBase.of(context).myAppointments, TranslationBase.of(context).myAppointmentsList, "assets/images/new/services/appointment_list.svg", isLogin)); + hmgServices.add(HmgServices(25, TranslationBase.of(context).lab, TranslationBase.of(context).labSubtitle, "assets/images/new/services/lab_result.svg", isLogin)); + hmgServices.add(HmgServices(26, TranslationBase.of(context).radiology, TranslationBase.of(context).radiologySubtitle, "assets/images/new/services/radiology.svg", isLogin)); + hmgServices.add(HmgServices(27, TranslationBase.of(context).medicines, TranslationBase.of(context).medicinesSubtitle, "assets/images/new/services/medicine_prescription.svg", isLogin)); + // hmgServices.add(HmgServices(28, TranslationBase.of(context).vitalSigns, TranslationBase.of(context).vitalSignsSubtitle, "assets/images/new/services/vital_signs.svg", isLogin)); + hmgServices.add(HmgServices(29, TranslationBase.of(context).myMedical, TranslationBase.of(context).myMedicalSubtitle, "assets/images/new/services/active_medication.svg", isLogin)); + hmgServices.add(HmgServices(30, TranslationBase.of(context).myDoctor, TranslationBase.of(context).myDoctorSubtitle, "assets/images/new/services/my_doc.svg", isLogin)); + // hmgServices.add(HmgServices(31, TranslationBase.of(context).invoicesList, TranslationBase.of(context).myInvoice, "assets/images/new/services/invoice_list.svg", isLogin)); + // hmgServices.add(HmgServices(32, TranslationBase.of(context).anicllaryOrders, TranslationBase.of(context).myInvoice, "assets/images/new/services/ancillary.svg", isLogin)); + + // hmgServices.add(HmgServices(1, TranslationBase.of(context).liveCare, TranslationBase.of(context).onlineConsulting, "assets/images/new/Live_Care.svg", isLogin)); + // hmgServices.add(new HmgServices(8, TranslationBase.of(context).connectTitle, TranslationBase.of(context).connectSubtitle, "assets/images/new/reach_us.svg", isLogin)); + + } + @override Widget build(BuildContext context) { projectViewModel = Provider.of(context); - - if (projectViewModel.isPatientAdmitted || projectViewModel.patientHasAdmissionRequest) { - initialiseInPatientHmgServices(false); - } else { - initialiseHmgServices(false); - } - + initServices(false); var appoCountProvider = Provider.of(context); // var userProvider = Provider.of(context); List myMedicalList = Utils.myMedicalListHomePage(projectViewModel: projectViewModel, context: context, count: appoCountProvider.count, isLogin: projectViewModel.isLogin); @@ -127,109 +141,109 @@ class _HomePageFragment2State extends State { // height: MediaQuery.of(context).size.width / 2.6, ), ), - projectViewModel.isLogin - ? Column( - children: [ - Padding( - padding: projectViewModel.isArabic - ? EdgeInsets.only( - right: 20, - left: 8, - ) - : EdgeInsets.only( - left: 20, - right: 8, - ), - child: Row( - children: [ - Expanded( - child: Text( - TranslationBase.of(context).myMedicalFile, - style: TextStyle( - color: Colors.black, - fontSize: 16, - fontWeight: FontWeight.bold, - letterSpacing: -0.96, - height: 19 / 16, - ), - ), - ), - TextButton( - onPressed: () { - widget.onMedicalFileClick!(); - // navigateTo(context, MedicalProfilePageNew()); - }, - child: Text( - TranslationBase.of(context).viewMedicalFile, - style: TextStyle( - color: CustomColors.accentColor, - fontSize: 12, - letterSpacing: -0.72, - height: 23 / 12, - ), - ), - ), - ], - ), - ), - mHeight(4), - Container( - width: double.infinity, - height: MediaQuery.of(context).size.width * 0.26, - child: ListView.separated( - itemCount: myMedicalList.length, - padding: EdgeInsets.zero, - scrollDirection: Axis.horizontal, - physics: BouncingScrollPhysics(), - itemBuilder: (context, index) { - return projectViewModel.isArabic - ? Container( - child: myMedicalList[index], - width: MediaQuery.of(context).size.width * 0.26, - height: MediaQuery.of(context).size.width * 0.26, - margin: EdgeInsets.only(left: index == 4 ? 20 : 0, right: index == 0 ? 20 : 0), - ) - : Container( - child: myMedicalList[index], - width: MediaQuery.of(context).size.width * 0.26, - height: MediaQuery.of(context).size.width * 0.26, - margin: EdgeInsets.only(left: index == 0 ? 20 : 0, right: index == 4 ? 20 : 0), - ); - }, - separatorBuilder: (BuildContext context, int index) { - return mWidth(12); - }, - ), - ), - ], - ) - : Container(), + // projectViewModel.isLogin + // ? Column( + // children: [ + // Padding( + // padding: projectViewModel.isArabic + // ? EdgeInsets.only( + // right: 20, + // left: 8, + // ) + // : EdgeInsets.only( + // left: 20, + // right: 8, + // ), + // child: Row( + // children: [ + // Expanded( + // child: Text( + // TranslationBase.of(context).myMedicalFile, + // style: TextStyle( + // color: Colors.black, + // fontSize: 16, + // fontWeight: FontWeight.bold, + // letterSpacing: -0.96, + // height: 19 / 16, + // ), + // ), + // ), + // TextButton( + // onPressed: () { + // widget.onMedicalFileClick!(); + // // navigateTo(context, MedicalProfilePageNew()); + // }, + // child: Text( + // TranslationBase.of(context).viewMedicalFile, + // style: TextStyle( + // color: CustomColors.primaryColor, + // fontSize: 12, + // letterSpacing: -0.72, + // height: 23 / 12, + // ), + // ), + // ), + // ], + // ), + // ), + // mHeight(4), + // Container( + // width: double.infinity, + // height: MediaQuery.of(context).size.width * 0.26, + // child: ListView.separated( + // itemCount: myMedicalList.length, + // padding: EdgeInsets.zero, + // scrollDirection: Axis.horizontal, + // physics: BouncingScrollPhysics(), + // itemBuilder: (context, index) { + // return projectViewModel.isArabic + // ? Container( + // child: myMedicalList[index], + // width: MediaQuery.of(context).size.width * 0.26, + // height: MediaQuery.of(context).size.width * 0.26, + // margin: EdgeInsets.only(left: index == 4 ? 20 : 0, right: index == 0 ? 20 : 0), + // ) + // : Container( + // child: myMedicalList[index], + // width: MediaQuery.of(context).size.width * 0.26, + // height: MediaQuery.of(context).size.width * 0.26, + // margin: EdgeInsets.only(left: index == 0 ? 20 : 0, right: index == 4 ? 20 : 0), + // ); + // }, + // separatorBuilder: (BuildContext context, int index) { + // return mWidth(12); + // }, + // ), + // ), + // ], + // ) + // : Container(), mHeight(16), - Column( - children: [ - Divider( - height: 1, - color: Color(0xFFC7C7C7), - ), - Container( - width: double.infinity, - height: MediaQuery.of(context).size.width * 0.3, - padding: EdgeInsets.only(left: 20, right: 20, top: 14, bottom: 14), - color: Colors.white, - child: Row( - children: [ - offersButton(), - mWidth(10), - hmgButton(), - ], - ), - ), - Divider( - height: 1, - color: Color(0xFFC7C7C7), - ), - ], - ), + // Column( + // children: [ + // Divider( + // height: 1, + // color: Color(0xFFC7C7C7), + // ), + // Container( + // width: double.infinity, + // height: MediaQuery.of(context).size.width * 0.3, + // padding: EdgeInsets.only(left: 20, right: 20, top: 14, bottom: 14), + // color: Colors.white, + // child: Row( + // children: [ + // offersButton(), + // mWidth(10), + // hmgButton(), + // ], + // ), + // ), + // Divider( + // height: 1, + // color: Color(0xFFC7C7C7), + // ), + // ], + // ), mHeight(12), Column( children: [ @@ -247,7 +261,7 @@ class _HomePageFragment2State extends State { children: [ Expanded( child: Text( - TranslationBase.of(context).hMGService, + TranslationBase.of(context).allServices, style: TextStyle( color: Colors.black, fontSize: 16, @@ -257,28 +271,29 @@ class _HomePageFragment2State extends State { ), ), ), - TextButton( - onPressed: () { - // AppSharedPreferences().getAll().then((value){ - // debugPrint("ALL SHARED PREFERENCES!!!!!"); - // debugPrint(jsonEncode(value)); - // }); - Navigator.push(context, FadePage(page: AllHabibMedicalSevicePage2())); - projectViewModel.analytics.hmgServices.viewAll(); - }, - child: Text( - TranslationBase.of(context).viewAllServices, - style: TextStyle( - color: CustomColors.accentColor, - fontSize: 12, - letterSpacing: -0.72, - height: 23 / 12, - ), - ), - ), + // TextButton( + // onPressed: () { + // // AppSharedPreferences().getAll().then((value){ + // // debugPrint("ALL SHARED PREFERENCES!!!!!"); + // // debugPrint(jsonEncode(value)); + // // }); + // Navigator.push(context, FadePage(page: AllHabibMedicalSevicePage2())); + // projectViewModel.analytics.hmgServices.viewAll(); + // }, + // child: Text( + // TranslationBase.of(context).viewAllServices, + // style: TextStyle( + // color: CustomColors.accentColor, + // fontSize: 12, + // letterSpacing: -0.72, + // height: 23 / 12, + // ), + // ), + // ), ], ), ), + mHeight(12), projectViewModel.isPatientAdmitted || projectViewModel.patientHasAdmissionRequest ? Column( children: [ @@ -375,7 +390,7 @@ class _HomePageFragment2State extends State { width: double.infinity, height: double.infinity, // color: Color(0xFF2B353E), - decoration: containerRadius(CustomColors.accentColor, 20), + decoration: containerRadius(CustomColors.primaryColor, 20), ), Container( width: double.infinity, @@ -622,7 +637,7 @@ class _HomePageFragment2State extends State { return Container( width: MediaQuery.of(context).size.width * 0.06, height: MediaQuery.of(context).size.width * 0.06, - decoration: containerRadius(CustomColors.accentColor, 100), + decoration: containerRadius(CustomColors.primaryColor, 100), padding: EdgeInsets.all(4), child: SvgPicture.asset(icon), ); diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index ebe6e67b..1b657330 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -397,25 +397,27 @@ class _LandingPageState extends State with WidgetsBindingObserver { if (data != null) { Navigator.of(context).pushNamed(CONFIRM_LOGIN); } else { - // AppGlobal.context = context; - GifLoaderDialogUtils.showMyDialog(context); - authService.selectDeviceImei(DEVICE_TOKEN).then((value) async { - GifLoaderDialogUtils.hideDialog(context); - var data = await sharedPref.getObject(IMEI_USER_DATA); - if (value != null) { - setUserValues(value); - Navigator.of(context).pushNamed(CONFIRM_LOGIN); - } else { - GifLoaderDialogUtils.hideDialog(context); - Navigator.of(context).pushNamed( - WELCOME_LOGIN, - ); - } - }).catchError((err) { - GifLoaderDialogUtils.hideDialog(context); - Navigator.of(context).pushNamed(WELCOME_LOGIN); - }); + Navigator.of(context).pushNamed(LOGIN_TYPE); } + // AppGlobal.context = context; + // GifLoaderDialogUtils.showMyDialog(context); + // authService.selectDeviceImei(DEVICE_TOKEN).then((value) async { + // GifLoaderDialogUtils.hideDialog(context); + // var data = await sharedPref.getObject(IMEI_USER_DATA); + // if (value != null) { + // setUserValues(value); + // Navigator.of(context).pushNamed(CONFIRM_LOGIN); + // } else { + // GifLoaderDialogUtils.hideDialog(context); + // Navigator.of(context).pushNamed( + // WELCOME_LOGIN, + // ); + // } + // }).catchError((err) { + // GifLoaderDialogUtils.hideDialog(context); + // Navigator.of(context).pushNamed(WELCOME_LOGIN); + // }); + // } } dummyCall() async { @@ -559,7 +561,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { child: new Container( padding: EdgeInsets.all(4), decoration: new BoxDecoration( - color: CustomColors.accentColor, + color: CustomColors.primaryColor, borderRadius: BorderRadius.circular(20), ), constraints: BoxConstraints( @@ -650,20 +652,22 @@ class _LandingPageState extends State with WidgetsBindingObserver { ), RobotIcon() ])), - bottomNavigationBar: BottomNavBar( - changeIndex: changeCurrentTab, - index: currentTab, - ), - floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, + // bottomNavigationBar: BottomNavBar( + // changeIndex: changeCurrentTab, + // index: currentTab, + // ), + floatingActionButtonLocation: FloatingActionButtonLocation.endContained, floatingActionButton: (projectViewModel.havePrivilege(34) && currentTab == 0) - ? FloatingButton( - elevation: true, - onTap: () { - changeCurrentTab(2); - projectViewModel.analytics.appointment.book_appointment(); - }, - ) + ? Padding( + padding: const EdgeInsets.only(bottom: 50.0, right: 10), + child: FloatingButton( + elevation: true, + onTap: () { + changeCurrentTab(2); + }, + ), + ) : null); } diff --git a/lib/pages/landing/widgets/logged_slider_view.dart b/lib/pages/landing/widgets/logged_slider_view.dart index 98e4b252..a0e92424 100644 --- a/lib/pages/landing/widgets/logged_slider_view.dart +++ b/lib/pages/landing/widgets/logged_slider_view.dart @@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/extensions/string_extensions.dart'; import 'package:diplomaticquarterapp/models/slider_data.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart'; @@ -59,7 +60,7 @@ class LoggedSliderView extends StatelessWidget { Row( children: [ Container( - decoration: projectViewModel.isArabic ? containerColorRadiusLeft(Color(0xFFFBF2E31), 100) : containerColorRadiusRight(Color(0xFFFBF2E31), 100), + decoration: projectViewModel.isArabic ? containerColorRadiusLeft(appColor, 100) : containerColorRadiusRight(appColor, 100), padding: EdgeInsets.only(left: 20, right: 16, top: 6, bottom: 6), child: Text( TranslationBase.of(context).medicalFile, @@ -132,75 +133,75 @@ class LoggedSliderView extends StatelessWidget { ), ), mFlex(3), - Padding( - padding: const EdgeInsets.only(left: 20, right: 20), - child: Row( - children: [ - Expanded( - flex: 3, - child: Row( - children: [ - SvgPicture.asset( - 'assets/images/new/height.svg', - width: 11, - height: 11, - ), - mWidth(6), - Texts( - "${TranslationBase.of(context).height}: ${model.heightCm} ${TranslationBase.of(context).cm}", - color: Colors.white, - fontSize: 8, - ) - ], - ), - ), - SizedBox( - width: 3, - ), - Expanded( - flex: 3, - child: Row( - children: [ - SvgPicture.asset( - 'assets/images/new/weight.svg', - width: 11, - height: 11, - ), - mWidth(6), - Texts( - '${TranslationBase.of(context).weight}: ${model.weightKg} ${TranslationBase.of(context).kg}', - color: Colors.white, - fontSize: 8, - ) - ], - ), - ), - SizedBox( - width: 3, - ), - Expanded( - flex: 3, - child: Row( - children: [ - SvgPicture.asset( - 'assets/images/new/blood.svg', - width: 11, - height: 11, - ), - mWidth(6), - Texts( - '${TranslationBase.of(context).bloodType1} ${model.booldType}', - color: Colors.white, - fontSize: 7, - ) - ], - ), - ), - mFlex(1), - ], - ), - ), - mFlex(2), + // Padding( + // padding: const EdgeInsets.only(left: 20, right: 20), + // child: Row( + // children: [ + // Expanded( + // flex: 3, + // child: Row( + // children: [ + // SvgPicture.asset( + // 'assets/images/new/height.svg', + // width: 11, + // height: 11, + // ), + // mWidth(6), + // Texts( + // "${TranslationBase.of(context).height}: ${model.heightCm} ${TranslationBase.of(context).cm}", + // color: Colors.white, + // fontSize: 8, + // ) + // ], + // ), + // ), + // SizedBox( + // width: 3, + // ), + // Expanded( + // flex: 3, + // child: Row( + // children: [ + // SvgPicture.asset( + // 'assets/images/new/weight.svg', + // width: 11, + // height: 11, + // ), + // mWidth(6), + // Texts( + // '${TranslationBase.of(context).weight}: ${model.weightKg} ${TranslationBase.of(context).kg}', + // color: Colors.white, + // fontSize: 8, + // ) + // ], + // ), + // ), + // SizedBox( + // width: 3, + // ), + // Expanded( + // flex: 3, + // child: Row( + // children: [ + // SvgPicture.asset( + // 'assets/images/new/blood.svg', + // width: 11, + // height: 11, + // ), + // mWidth(6), + // Texts( + // '${TranslationBase.of(context).bloodType1} ${model.booldType}', + // color: Colors.white, + // fontSize: 7, + // ) + // ], + // ), + // ), + // mFlex(1), + // ], + // ), + // ), + // mFlex(2), ], ), ), diff --git a/lib/pages/landing/widgets/offer_view.dart b/lib/pages/landing/widgets/offer_view.dart index 82afbc4a..b4381e69 100644 --- a/lib/pages/landing/widgets/offer_view.dart +++ b/lib/pages/landing/widgets/offer_view.dart @@ -1,6 +1,8 @@ import 'package:diplomaticquarterapp/uitl/utils_new.dart'; import 'package:flutter/material.dart'; +import '../../../theme/theme_value.dart'; + class OfferView extends StatelessWidget { @override Widget build(BuildContext context) { @@ -21,7 +23,7 @@ class OfferView extends StatelessWidget { Text( "Kid's Offer", style: TextStyle( - color: Color(0xFFFBF2E31), + color: appColor, fontSize: 18, fontWeight: FontWeight.bold, ), @@ -40,14 +42,14 @@ class OfferView extends StatelessWidget { Text( "Only ", style: TextStyle( - color: Color(0xFFFBF2E31), + color: appColor, fontSize: 14, ), ), Text( "500 ", style: TextStyle( - color: Color(0xFFFBF2E31), + color: appColor, fontSize: 14, fontWeight: FontWeight.bold, ), @@ -55,7 +57,7 @@ class OfferView extends StatelessWidget { Text( "SAR ", style: TextStyle( - color: Color(0xFFFBF2E31), + color: appColor, fontSize: 14, ), ), diff --git a/lib/pages/landing/widgets/services_view.dart b/lib/pages/landing/widgets/services_view.dart index 5635a4a6..021404a2 100644 --- a/lib/pages/landing/widgets/services_view.dart +++ b/lib/pages/landing/widgets/services_view.dart @@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/analytics/google-analytics.dart'; import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/hmg_services.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/%E2%80%8B%20health_calculators.dart'; @@ -28,6 +29,7 @@ import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart'; import 'package:diplomaticquarterapp/pages/medical/medical_profile_page_new.dart'; import 'package:diplomaticquarterapp/pages/medical/smart_watch_health_data/smart_watch_instructions.dart'; +import 'package:diplomaticquarterapp/pages/medical/vital_sign/vital_sign_details_screen.dart'; import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; @@ -39,9 +41,16 @@ import 'package:diplomaticquarterapp/widgets/dialogs/covid_consent_dialog.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; import '../../../locator.dart'; +import '../../MyAppointments/MyAppointments.dart'; +import '../../medical/active_medications/ActiveMedicationsPage.dart'; +import '../../medical/doctor/doctor_home_page.dart'; +import '../../medical/labs/labs_home_page.dart'; +import '../../medical/prescriptions/prescriptions_home_page.dart'; +import '../../medical/radiology/radiology_home_page.dart'; import '../landing_page_pharmcy.dart'; class ServicesView extends StatelessWidget { @@ -49,14 +58,18 @@ class ServicesView extends StatelessWidget { int index; AuthenticatedUser authUser = new AuthenticatedUser(); AuthProvider authProvider = new AuthProvider(); - PharmacyModuleViewModel pharmacyModuleViewModel = locator(); + PharmacyModuleViewModel pharmacyModuleViewModel = + locator(); late LocationUtils locationUtils; bool isHomePage; + ProjectViewModel? projectViewModel; ServicesView(this.hmgServices, this.index, this.isHomePage); @override Widget build(BuildContext context) { + projectViewModel = Provider.of(context); + return InkWell( onTap: () { if (isHomePage) { @@ -68,7 +81,9 @@ class ServicesView extends StatelessWidget { child: Container( width: double.infinity, height: double.infinity, - decoration: containerRadiusWithGradientServices(20, lightColor: CustomColors.lightGreyColor, darkColor: CustomColors.darkGreyColor), + decoration: containerRadiusWithGradientServices(20, + lightColor: CustomColors.lightGreyColor, + darkColor: CustomColors.darkGreyColor), child: Stack( children: [ Container( @@ -113,7 +128,11 @@ class ServicesView extends StatelessWidget { Container( width: double.infinity, height: double.infinity, - padding: EdgeInsets.only(left: SizeConfig.widthMultiplier! * 3, right: SizeConfig.widthMultiplier! * 3, top: SizeConfig.widthMultiplier! * 3, bottom: SizeConfig.widthMultiplier! * 2), + padding: EdgeInsets.only( + left: SizeConfig.widthMultiplier! * 3, + right: SizeConfig.widthMultiplier! * 3, + top: SizeConfig.widthMultiplier! * 3, + bottom: SizeConfig.widthMultiplier! * 2), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -121,12 +140,18 @@ class ServicesView extends StatelessWidget { hmgServices.action == (isHomePage ? 5 : 8) ? Image.asset( hmgServices.icon, - height: index == 0 ? MediaQuery.of(context).size.width / 18 : MediaQuery.of(context).size.width / 18, + height: index == 0 + ? MediaQuery.of(context).size.width / 18 + : MediaQuery.of(context).size.width / 18, ) : Container( // color: Colors.yellow, - width: index == 4 ? MediaQuery.of(context).size.width / 12 : MediaQuery.of(context).size.width / 12, - height: index == 4 ? MediaQuery.of(context).size.width / 10 : MediaQuery.of(context).size.width / 12, + width: index == 4 + ? MediaQuery.of(context).size.width / 12 + : MediaQuery.of(context).size.width / 12, + height: index == 4 + ? MediaQuery.of(context).size.width / 10 + : MediaQuery.of(context).size.width / 12, child: SvgPicture.asset( hmgServices.icon, // width: MediaQuery.of(context).size.width / 12, @@ -179,7 +204,9 @@ class ServicesView extends StatelessWidget { locator().hmgServices.logServiceName('home health care'); } else if (hmgServices.action == 4) { Navigator.push(context, FadePage(page: CMCPage())); - locator().hmgServices.logServiceName('comprehensive medical checkup'); + locator() + .hmgServices + .logServiceName('comprehensive medical checkup'); } else if (hmgServices.action == 5) { Navigator.push(context, FadePage(page: PaymentService())); locator().hmgServices.logServiceName('online payments'); @@ -195,6 +222,44 @@ class ServicesView extends StatelessWidget { } else if (hmgServices.action == 23) { Navigator.push(context, FadePage(page: InPatientServicesHome())); locator().hmgServices.logServiceName('find us reach us'); + } else if (hmgServices.action == 31) { + Navigator.push(context, FadePage(page: MedicalProfilePageNew())); + locator().hmgServices.logServiceName('my medical file'); + } else if (hmgServices.action == 24 && + projectViewModel?.havePrivilege(5) == true) { + Navigator.push(context, FadePage(page: MyAppointments())); + locator().hmgServices.logServiceName('my appointment'); + } else if (hmgServices.action == 25) { + Navigator.push(context, FadePage(page: LabsHomePage())); + locator().hmgServices.logServiceName('lab result'); + } else if (hmgServices.action == 26 && + projectViewModel?.havePrivilege(7) == true) { + Navigator.push(context, FadePage(page: RadiologyHomePage())); + locator().hmgServices.logServiceName('radiology result'); + } else if (hmgServices.action == 27 && + projectViewModel?.havePrivilege(12) == true) { + Navigator.push(context, FadePage(page: HomePrescriptionsPage())); + locator().hmgServices.logServiceName('medicine prescription'); + } else if (hmgServices.action == 28 && + projectViewModel?.havePrivilege(25) == true) { + Navigator.push( + context, + FadePage(page: VitalSignDetailsScreen()), + ); + locator().hmgServices.logServiceName('vital signs'); + } else if (hmgServices.action == 29 && + projectViewModel?.havePrivilege(48) == true) { + Navigator.push(context, FadePage(page: ActiveMedicationsPage())); + locator().hmgServices.logServiceName('active medication'); + } else if (hmgServices.action == 30 && + projectViewModel?.havePrivilege(6) == true) { + Navigator.push( + context, + FadePage( + page: DoctorHomePage(), + ), + ); + locator().hmgServices.logServiceName('active medication'); } } @@ -212,7 +277,9 @@ class ServicesView extends StatelessWidget { locator().hmgServices.logServiceName('home health care'); } else if (hmgServices.action == 4) { Navigator.push(context, FadePage(page: CMCPage())); - locator().hmgServices.logServiceName('comprehensive medical checkup'); + locator() + .hmgServices + .logServiceName('comprehensive medical checkup'); } else if (hmgServices.action == 5) { // getPharmacyToken(context); Uri uri = Uri.parse(PHARMACY_REDIRECT_URL); @@ -267,15 +334,19 @@ class ServicesView extends StatelessWidget { Navigator.of(context).push( MaterialPageRoute( builder: (BuildContext context) => MyWebView( - title: "HMG News", - selectedUrl:"https://twitter.com/hmg" //"https://twitter.com/hashtag/مجموعة_د_سليمان_الحبيب_الطبية?src=hashtag_click&f=live", - ), + title: "HMG News", + selectedUrl: + "https://twitter.com/hmg" //"https://twitter.com/hashtag/مجموعة_د_سليمان_الحبيب_الطبية?src=hashtag_click&f=live", + ), ), ); locator().hmgServices.logServiceName('latest news'); } else if (hmgServices.action == 22) { Navigator.push(context, FadePage(page: ContactUsPage())); locator().hmgServices.logServiceName('find us reach us'); + } else if (hmgServices.action == 31) { + Navigator.push(context, FadePage(page: MedicalProfilePageNew())); + locator().hmgServices.logServiceName('my medical file'); } // if (hmgServices.action == 10) { @@ -409,7 +480,8 @@ class ServicesView extends StatelessWidget { title: TranslationBase.of(context).covidConsentHeader, message: TranslationBase.of(context).covidConsent, onTap: () async { - Navigator.push(context, FadePage(page: CovidDrivethruLocation())); + Navigator.push( + context, FadePage(page: CovidDrivethruLocation())); }, )); } else { diff --git a/lib/pages/landing/widgets/slider_view.dart b/lib/pages/landing/widgets/slider_view.dart index 286706aa..e47735f2 100644 --- a/lib/pages/landing/widgets/slider_view.dart +++ b/lib/pages/landing/widgets/slider_view.dart @@ -8,6 +8,8 @@ import 'package:diplomaticquarterapp/widgets/buttons/custom_text_button.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import '../../../theme/theme_value.dart'; + class SliderView extends StatefulWidget { VoidCallback onLoginClick; @@ -48,7 +50,7 @@ class _SliderViewState extends State { children: [ mFlex(3), Container( - decoration: projectViewModel.isArabic ? containerColorRadiusLeft(Color(0xFFFBF2E31), 100) : containerColorRadiusRight(Color(0xFFFBF2E31), 100), + decoration: projectViewModel.isArabic ? containerColorRadiusLeft(appColor, 100) : containerColorRadiusRight(appColor, 100), padding: EdgeInsets.only(left: projectViewModel.isArabic ? 16 : 20, right: projectViewModel.isArabic ? 20 : 16, top: 6, bottom: 6), child: Text( TranslationBase.of(context).medicalFile, @@ -98,7 +100,7 @@ class _SliderViewState extends State { child: CustomTextButton( shape: cardRadiusNew(8), //shape: OutlinedBorder(), - backgroundColor: Color(0xFFFBF2E31), + backgroundColor: appColor, elevation: 0, onPressed: () { diff --git a/lib/pages/livecare/live_care_payment_page.dart b/lib/pages/livecare/live_care_payment_page.dart index b6c0561d..a3b55bd1 100644 --- a/lib/pages/livecare/live_care_payment_page.dart +++ b/lib/pages/livecare/live_care_payment_page.dart @@ -91,7 +91,7 @@ class _LiveCarePatmentPageState extends State { style: TextStyle( fontSize: 16.0, fontWeight: FontWeight.bold, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, letterSpacing: -0.66, ), ), @@ -255,7 +255,7 @@ class _LiveCarePatmentPageState extends State { fontSize: 12.0, fontWeight: FontWeight.w600, letterSpacing: -0.48, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), ), ), diff --git a/lib/pages/livecare/widgets/LiveCareHistoryCard.dart b/lib/pages/livecare/widgets/LiveCareHistoryCard.dart index eecbfea6..7cd0bfeb 100644 --- a/lib/pages/livecare/widgets/LiveCareHistoryCard.dart +++ b/lib/pages/livecare/widgets/LiveCareHistoryCard.dart @@ -47,7 +47,7 @@ class _LiveCareHistoryCardState extends State { return Container( margin: EdgeInsets.only(left: 12, right: 12, top: widget.isFirstOrLast == 0 ? 12 : 6, bottom: widget.isFirstOrLast == 1 ? 12 : 6), decoration: BoxDecoration( - color: CustomColors.accentColor, + color: CustomColors.primaryColor, borderRadius: BorderRadius.all( Radius.circular(10.0), ), diff --git a/lib/pages/livecare/widgets/clinic_card.dart b/lib/pages/livecare/widgets/clinic_card.dart index 5c5c4aaa..24cce39f 100644 --- a/lib/pages/livecare/widgets/clinic_card.dart +++ b/lib/pages/livecare/widgets/clinic_card.dart @@ -63,7 +63,7 @@ class _State extends State { ), child: Container( decoration: BoxDecoration( - color: widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor, + color: widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.primaryColor, borderRadius: BorderRadius.all( Radius.circular(6.0), ), @@ -110,7 +110,7 @@ class _State extends State { width: 4, height: 4, decoration: containerRadius( - widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor, + widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.primaryColor, 100, ), ), @@ -120,7 +120,7 @@ class _State extends State { style: TextStyle( fontSize: 10, fontWeight: FontWeight.w600, - color: widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor, + color: widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.primaryColor, letterSpacing: -0.48, ), ), diff --git a/lib/pages/livecare/widgets/clinic_list.dart b/lib/pages/livecare/widgets/clinic_list.dart index 0ab1e1c6..cacdf53b 100644 --- a/lib/pages/livecare/widgets/clinic_list.dart +++ b/lib/pages/livecare/widgets/clinic_list.dart @@ -776,7 +776,7 @@ class _clinic_listState extends State { minWidth: MediaQuery.of(context).size.width * 0.7, height: 45.0, child: CustomTextButton( - backgroundColor: CustomColors.accentColor, + backgroundColor: CustomColors.primaryColor, disabledForegroundColor: Color(0xFFbcc2c4).withOpacity(0.38), disabledBackgroundColor: Color(0xFFbcc2c4).withOpacity(0.12), elevation: 0, diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index 608943ac..fa4c86ee 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -109,6 +109,7 @@ class _ConfirmLogin extends State { @override void initState() { + AppGlobal.context = context; _getAvailableBiometrics(); setDefault(); super.initState(); @@ -307,7 +308,7 @@ class _ConfirmLogin extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Image.asset( - 'assets/images/habib-logo.png', + 'assets/images/new/ic_logo.png', height: 90, width: 90, ), diff --git a/lib/pages/login/login-type.dart b/lib/pages/login/login-type.dart index a9e309bc..77af9766 100644 --- a/lib/pages/login/login-type.dart +++ b/lib/pages/login/login-type.dart @@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/pages/login/forgot-password.dart'; import 'package:diplomaticquarterapp/pages/login/login.dart'; import 'package:diplomaticquarterapp/pages/login/register_new.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/habib_logo_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; @@ -68,26 +69,26 @@ class LoginType extends StatelessWidget { ], ), ), - SizedBox( - height: 43, - width: double.infinity, - child: TextButton( - onPressed: () { - Navigator.of(context).push(FadePage(page: RegisterNew())); - locator().loginRegistration.register_now(); - }, - child: Text( - TranslationBase.of(context).registerNow, - style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.48), - ), - style: TextButton.styleFrom( - backgroundColor: Color(0xffD02127), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(6), - ), - ), - ), - ), + // SizedBox( + // height: 43, + // width: double.infinity, + // child: TextButton( + // onPressed: () { + // Navigator.of(context).push(FadePage(page: RegisterNew())); + // locator().loginRegistration.register_now(); + // }, + // child: Text( + // TranslationBase.of(context).registerNow, + // style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.48), + // ), + // style: TextButton.styleFrom( + // backgroundColor: appColor, + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(6), + // ), + // ), + // ), + // ), ]), ), ); diff --git a/lib/pages/login/register.dart b/lib/pages/login/register.dart index a010150d..28ba999b 100644 --- a/lib/pages/login/register.dart +++ b/lib/pages/login/register.dart @@ -10,6 +10,7 @@ import 'package:diplomaticquarterapp/pages/login/confirm-login.dart'; import 'package:diplomaticquarterapp/pages/login/login-type.dart'; import 'package:diplomaticquarterapp/pages/login/login.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; @@ -160,7 +161,8 @@ class _Register extends State { child: DefaultButton(TranslationBase.of(context).cancel, () { Navigator.of(context).pop(); locator().loginRegistration.registration_cancel(step: 'enter details'); - }, textColor: Colors.white, color: Color(0xffD02127))), + }, textColor: Colors.white, + color: appColor)), ), Expanded( child: Padding( diff --git a/lib/pages/login/welcome.dart b/lib/pages/login/welcome.dart index 8b9e282f..ad8754b3 100644 --- a/lib/pages/login/welcome.dart +++ b/lib/pages/login/welcome.dart @@ -84,7 +84,7 @@ class _WelcomeLogin extends State { Navigator.of(context).push(FadePage(page: RegisterNew())), locator().loginRegistration.visited_alhabib_group(false), }, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, textColor: Colors.white, ), ), diff --git a/lib/pages/medical/ask_doctor/ViewDoctorResponsesPage.dart b/lib/pages/medical/ask_doctor/ViewDoctorResponsesPage.dart index b96a6992..4efcfcd2 100644 --- a/lib/pages/medical/ask_doctor/ViewDoctorResponsesPage.dart +++ b/lib/pages/medical/ask_doctor/ViewDoctorResponsesPage.dart @@ -119,7 +119,7 @@ class _ViewDoctorResponsesPageState extends State { () { openResponseRateDialog(context); }, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), ), ], @@ -216,7 +216,7 @@ class _ViewDoctorResponsesPageState extends State { rateDoctorResponse(); } }, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), ), ], @@ -303,7 +303,7 @@ class _ViewDoctorResponsesPageState extends State { decoration: InputDecoration( isDense: true, hintText: _hintText, - fillColor: CustomColors.accentColor, + fillColor: CustomColors.primaryColor, hintStyle: TextStyle( fontSize: isEnable ? 14 : 24, height: 21 / 14, diff --git a/lib/pages/medical/ask_doctor/request_type.dart b/lib/pages/medical/ask_doctor/request_type.dart index 2dece140..afbb14f8 100644 --- a/lib/pages/medical/ask_doctor/request_type.dart +++ b/lib/pages/medical/ask_doctor/request_type.dart @@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/core/viewModels/medical/ask_doctor_view_mod import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/balance/new_text_Field.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; @@ -117,7 +118,7 @@ class _RequestTypePageState extends State { } }) }, - color: Color(0xffD02127), + color: appColor, textColor: Colors.white, disabledColor: Color(0xffEAEAEA), ), diff --git a/lib/pages/medical/balance/advance_payment_page.dart b/lib/pages/medical/balance/advance_payment_page.dart index 19e4551c..69308022 100644 --- a/lib/pages/medical/balance/advance_payment_page.dart +++ b/lib/pages/medical/balance/advance_payment_page.dart @@ -10,6 +10,7 @@ import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStat import 'package:diplomaticquarterapp/pages/ToDoList/payment_method_select.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; @@ -350,7 +351,7 @@ class _AdvancePaymentPageState extends State { }); projectViewModel.analytics.advancePayments.wallet_payment_details(); }, - color: Color(0xffD02127), + color: appColor, textColor: Colors.white, disabledColor: Color(0xffEAEAEA), ), diff --git a/lib/pages/medical/prescriptions/prescription_details_inp.dart b/lib/pages/medical/prescriptions/prescription_details_inp.dart index b446fed2..b46690cf 100644 --- a/lib/pages/medical/prescriptions/prescription_details_inp.dart +++ b/lib/pages/medical/prescriptions/prescription_details_inp.dart @@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/extensions/string_extensions.dart'; import 'package:diplomaticquarterapp/models/header_model.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/reminder_dialog.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/CalendarUtils.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; @@ -206,7 +207,7 @@ class PrescriptionDetailsPageINP extends StatelessWidget { return; }, iconData: Icons.notifications_active, - color: Color(0xffD02127), + color: appColor, fontSize: 13.0, //textColor: Color(0xff2B353E), ), diff --git a/lib/pages/medical/prescriptions/prescription_details_page.dart b/lib/pages/medical/prescriptions/prescription_details_page.dart index 4ee85086..5e7f1cb4 100644 --- a/lib/pages/medical/prescriptions/prescription_details_page.dart +++ b/lib/pages/medical/prescriptions/prescription_details_page.dart @@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/extensions/string_extensions.dart'; import 'package:diplomaticquarterapp/models/header_model.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/reminder_dialog.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/CalendarUtils.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; @@ -233,7 +234,7 @@ class _PrescriptionDetailsPageState extends State { } }, iconData: Icons.notifications_active, - color: Color(0xffD02127), + color: appColor, fontSize: 13.0, //textColor: Color(0xff2B353E), ), diff --git a/lib/services/payfort_services/payfort_service.dart b/lib/services/payfort_services/payfort_service.dart index 5dba1b46..3a1f037f 100644 --- a/lib/services/payfort_services/payfort_service.dart +++ b/lib/services/payfort_services/payfort_service.dart @@ -54,8 +54,9 @@ class PayfortService extends BaseService { "Pat_Token": result.tokenName, "IsRefund": false, "RemmeberMe": false, - "Reconciliation_Reference": result.reconciliationReference, + // "Reconciliation_Reference": result.reconciliationReference, "LanguageID": 1, + "PatientID": patientID }; diff --git a/lib/splashPage.dart b/lib/splashPage.dart index 515c7f54..255e5fbd 100644 --- a/lib/splashPage.dart +++ b/lib/splashPage.dart @@ -97,7 +97,7 @@ class _SplashScreenState extends State { Padding( padding: EdgeInsets.symmetric(horizontal: 53), child: Image.asset( - 'assets/images/new/hmg_logo.png', + 'assets/images/new/ic_logo.png', fit: BoxFit.fitWidth, width: MediaQuery.of(context).size.width, ), diff --git a/lib/theme/colors.dart b/lib/theme/colors.dart index 328af105..833a4a4a 100644 --- a/lib/theme/colors.dart +++ b/lib/theme/colors.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:flutter/material.dart'; class CustomColors { @@ -11,6 +12,7 @@ class CustomColors { static const Color black = Color(0xFF141414); static const Color white = Color(0xFFFFFFFF); static const Color accentColor = Color(0xFFD02127); + static const Color primaryColor = appColor; static const Color lightGreyColor = Color(0xFFE2E2E2); static const Color devider = Color(0xFFE5E5E5); static const Color darkGreyColor = Color(0xFFC9C9C9); diff --git a/lib/theme/theme_value.dart b/lib/theme/theme_value.dart index 5cf871ab..9ee0c2db 100644 --- a/lib/theme/theme_value.dart +++ b/lib/theme/theme_value.dart @@ -10,13 +10,27 @@ import 'package:flutter/services.dart'; final bluePrimary = Color(0xFF00000); final blueAccent = Color(0xFFFF9800); final blueBackground = Color(0xFFFFFFFF); - +const MaterialColor appColor = MaterialColor( + 0xFF045531, + { + 50: Color(0xFFFFEBEE), + 100: Color(0xFF2E6049), + 200: Color(0xFF185339), + 300: Color(0xFF125939), + 400: Color(0xE6085734), + 500: Color(0xFF045531), + 600: Color(0xFF024024), + 700: Color(0xFF034226), + 800: Color(0xFF022C1A), + 900: Color(0xFF011C10), + }, +); defaultTheme({fontName}) { return ThemeData( fontFamily: fontName, useMaterial3: false, //projectProvider.isArabic ? 'Cairo' : 'WorkSans', - primarySwatch: Colors.red, + primarySwatch: appColor, visualDensity: VisualDensity.adaptivePlatformDensity, brightness: Brightness.light, pageTransitionsTheme: const PageTransitionsTheme( @@ -60,7 +74,7 @@ invertThemes({fontName}) { return ThemeData( fontFamily: fontName, //projectProvider.isArabic ? 'Cairo' : 'WorkSans', - primarySwatch: Colors.red, + primarySwatch: appColor, useMaterial3: false, visualDensity: VisualDensity.adaptivePlatformDensity, brightness: Brightness.dark, @@ -98,7 +112,7 @@ bwThemes({fontName}) { return ThemeData( fontFamily: fontName, //projectProvider.isArabic ? 'Cairo' : 'WorkSans', - primarySwatch: Colors.red, + primarySwatch: appColor, useMaterial3: false, visualDensity: VisualDensity.adaptivePlatformDensity, brightness: Brightness.dark, @@ -113,14 +127,14 @@ bwThemes({fontName}) { hintColor: Colors.grey[400], textTheme: TextTheme( - bodyText1: TextStyle(color: Colors.red[900]), - headline1: TextStyle(color: Colors.red[900]), + bodyText1: TextStyle(color: appColor[900]), + headline1: TextStyle(color: appColor[900]), headline2: TextStyle(color: Colors.white), - bodyText2: TextStyle(color: Colors.red[900]), - subtitle1: TextStyle(color: Colors.red[900]), + bodyText2: TextStyle(color: appColor[900]), + subtitle1: TextStyle(color: appColor[900]), ), - tabBarTheme: TabBarTheme(labelColor: Colors.red[900]), + tabBarTheme: TabBarTheme(labelColor: appColor[900]), disabledColor: Colors.grey[800], errorColor: Color.fromRGBO(235, 80, 60, 1.0), @@ -148,7 +162,7 @@ dimTheme({fontName}) { return ThemeData( fontFamily: fontName, //projectProvider.isArabic ? 'Cairo' : 'WorkSans', - primarySwatch: Colors.red, + primarySwatch: appColor, visualDensity: VisualDensity.adaptivePlatformDensity, brightness: Brightness.dark, useMaterial3: false, diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 46f4807c..36dc648e 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -157,7 +157,7 @@ class TranslationBase { String get welcomeTo => localizedValues['welcome-to'][locale.languageCode]; - String get drSulaimanText => localizedValues['dr-sulaiman-text'][locale.languageCode]; + String get kingKhalidUniversity => localizedValues['king-khalid-university'][locale.languageCode]; String get patientApp => localizedValues['patient-app'][locale.languageCode]; @@ -567,6 +567,8 @@ class TranslationBase { String get myMedicalFile => localizedValues['MyMedicalFile'][locale.languageCode]; + String get myMedicalFiles => localizedValues['MyMedicalFiles'][locale.languageCode]; + String get myMedicalFileSubTitle => localizedValues['myMedicalFileSubTitle'][locale.languageCode]; String get viewMore => localizedValues['viewMore'][locale.languageCode]; @@ -2963,6 +2965,7 @@ class TranslationBase { String get selectHospitalBloodDonation => localizedValues["selectHospitalBloodDonation"][locale.languageCode]; String get wecare => localizedValues["wecare"][locale.languageCode]; String get myinstructions => localizedValues["myinstructions"][locale.languageCode]; + String get allServices => localizedValues["allServices"][locale.languageCode]; } diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index 9b59e200..dbc9605b 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -76,11 +76,14 @@ class Utils { } /// Check The Internet Connection - static Future checkConnection({bool bypassConnectionCheck = false}) async { + static Future checkConnection( + {bool bypassConnectionCheck = false}) async { if (bypassConnectionCheck) return true; //return true; - ConnectivityResult connectivityResult = await (Connectivity().checkConnectivity()); - if ((connectivityResult == ConnectivityResult.mobile) || (connectivityResult == ConnectivityResult.wifi)) { + ConnectivityResult connectivityResult = + await (Connectivity().checkConnectivity()); + if ((connectivityResult == ConnectivityResult.mobile) || + (connectivityResult == ConnectivityResult.wifi)) { return true; } else { return false; @@ -101,7 +104,8 @@ class Utils { FocusScope.of(context).unfocus(); } - static showPermissionConsentDialog(BuildContext context, String message, VoidCallback? onTap) { + static showPermissionConsentDialog( + BuildContext context, String message, VoidCallback? onTap) { showDialog( context: context, builder: (cxt) => CovidConsentDialog( @@ -154,13 +158,27 @@ class Utils { } } - static String getAppointmentTransID(int projectID, int clinicID, int appoNo, {bool isAddMilliseconds = true}) { + static String getAppointmentTransID(int projectID, int clinicID, int appoNo, + {bool isAddMilliseconds = true}) { String currentMillis = DateTime.now().millisecondsSinceEpoch.toString(); - return projectID.toString() + '-' + clinicID.toString() + '-' + appoNo.toString() + (isAddMilliseconds ? '-' + currentMillis.substring(currentMillis.length - 5, currentMillis.length) : ""); + return projectID.toString() + + '-' + + clinicID.toString() + + '-' + + appoNo.toString() + + (isAddMilliseconds + ? '-' + + currentMillis.substring( + currentMillis.length - 5, currentMillis.length) + : ""); } static String getAdvancePaymentTransID(int projectID, int fileNumber) { - return projectID.toString() + '-' + fileNumber.toString() + '-' + DateTime.now().millisecondsSinceEpoch.toString(); + return projectID.toString() + + '-' + + fileNumber.toString() + + '-' + + DateTime.now().millisecondsSinceEpoch.toString(); } bool validateIDBox(String value, int type) { @@ -219,14 +237,23 @@ class Utils { } static validEmail(email) { - return RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+").hasMatch(email); + return RegExp( + r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+") + .hasMatch(email); } - static List myMedicalList({ProjectViewModel? projectViewModel, BuildContext? context, bool? isLogin, count, Function? onWeCareClick}) { + static List myMedicalList( + {ProjectViewModel? projectViewModel, + BuildContext? context, + bool? isLogin, + count, + Function? onWeCareClick}) { List medical = []; medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(5) ? Navigator.push(context, FadePage(page: MyAppointments())) : null, + onTap: () => projectViewModel.havePrivilege(5) + ? Navigator.push(context, FadePage(page: MyAppointments())) + : null, child: isLogin! ? Stack(children: [ Container( @@ -245,7 +272,8 @@ class Utils { left: 8, top: 4, child: badge_import.Badge( - badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false), + badgeAnimation: badge_import.BadgeAnimation.fade( + toAnimate: false), badgeStyle: badge_import.BadgeStyle( elevation: 0, shape: badge_import.BadgeShape.circle, @@ -255,7 +283,11 @@ class Utils { position: badge_import.BadgePosition.topEnd(), badgeContent: Container( padding: EdgeInsets.all(2.0), - child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), + child: Text(count.toString(), + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 12.0)), ), ), ) @@ -266,7 +298,8 @@ class Utils { top: 4, child: badge_import.Badge( position: badge_import.BadgePosition.topEnd(), - badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false), + badgeAnimation: badge_import.BadgeAnimation.fade( + toAnimate: false), badgeStyle: badge_import.BadgeStyle( elevation: 0, shape: badge_import.BadgeShape.circle, @@ -275,7 +308,11 @@ class Utils { ), badgeContent: Container( padding: EdgeInsets.all(2.0), - child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), + child: Text(count.toString(), + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 12.0)), ), ), ) @@ -290,19 +327,21 @@ class Utils { ), )); - if (projectViewModel.havePrivilege(10)) { - medical.add(InkWell( - onTap: () => Navigator.push(context, FadePage(page: LabsHomePage())), - child: MedicalProfileItem( - title: TranslationBase.of(context).lab, - imagePath: 'lab_result.svg', - subTitle: TranslationBase.of(context).labSubtitle, - ), - )); - } + // if (projectViewModel.havePrivilege(10)) { + medical.add(InkWell( + onTap: () => Navigator.push(context, FadePage(page: LabsHomePage())), + child: MedicalProfileItem( + title: TranslationBase.of(context).lab, + imagePath: 'lab_result.svg', + subTitle: TranslationBase.of(context).labSubtitle, + ), + )); + // } medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(7) ? Navigator.push(context, FadePage(page: RadiologyHomePage())) : null, + onTap: () => projectViewModel.havePrivilege(7) + ? Navigator.push(context, FadePage(page: RadiologyHomePage())) + : null, child: MedicalProfileItem( title: TranslationBase.of(context).radiology, imagePath: 'radiology.svg', @@ -312,7 +351,9 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(12) ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) : null, + onTap: () => projectViewModel.havePrivilege(12) + ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) + : null, child: MedicalProfileItem( title: TranslationBase.of(context).medicines, imagePath: 'medicine_prescription.svg', @@ -321,24 +362,25 @@ class Utils { ), )); - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(25) - ? Navigator.push( - context, - FadePage(page: VitalSignDetailsScreen()), - ) - : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).vitalSigns, - imagePath: 'vital_signs.svg', - subTitle: TranslationBase.of(context).vitalSignsSubtitle, - isEnable: projectViewModel.havePrivilege(25), - ), - )); + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(25) + // ? Navigator.push( + // context, + // FadePage(page: VitalSignDetailsScreen()), + // ) + // : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).vitalSigns, + // imagePath: 'vital_signs.svg', + // subTitle: TranslationBase.of(context).vitalSignsSubtitle, + // isEnable: projectViewModel.havePrivilege(25), + // ), + // )); medical.add(InkWell( onTap: () { - if (projectViewModel.havePrivilege(48)) Navigator.push(context, FadePage(page: ActiveMedicationsPage())); + if (projectViewModel.havePrivilege(48)) + Navigator.push(context, FadePage(page: ActiveMedicationsPage())); }, child: MedicalProfileItem( title: TranslationBase.of(context).myMedical, @@ -357,245 +399,257 @@ class Utils { ), ) : null, - child: - MedicalProfileItem(title: TranslationBase.of(context).myDoctor, imagePath: 'my_doc.svg', subTitle: TranslationBase.of(context).myDoctorSubtitle, isEnable: projectViewModel.havePrivilege(6)), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(14) ? Navigator.push(context, FadePage(page: MyInvoices())) : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).invoicesList, - imagePath: 'invoice_list.svg', - subTitle: TranslationBase.of(context).myInvoice, - isEnable: projectViewModel.havePrivilege(14), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(85) ? Navigator.push(context, FadePage(page: AnicllaryOrders())) : null, - // onTap: () => Navigator.push(context, FadePage(page: AnicllaryOrders())), - child: MedicalProfileItem( - title: TranslationBase.of(context).anicllaryOrders, - imagePath: 'ancillary.svg', - isPngImage: false, - subTitle: TranslationBase.of(context).myInvoice, - isEnable: projectViewModel.havePrivilege(85), - ), - )); - - medical.add(InkWell( - onTap: () => onWeCareClick!(), - child: MedicalProfileItem( - title: TranslationBase.of(context).wecare, - imagePath: 'assets/images/new-design/virtual_tour_icon.png', - isPngImage: true, - subTitle: TranslationBase.of(context).service, - isEnable: projectViewModel.havePrivilege(105), - ), - )); - - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: DentalInstructionsPage())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).myinstructions, - imagePath: 'medical_instructions.svg', - isPngImage: false, - subTitle: TranslationBase.of(context).service, - isEnable: projectViewModel.havePrivilege(106), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(14) ? Navigator.push(context, FadePage(page: EyeMeasurementsPage())) : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).eye, - imagePath: 'eye_measurement.svg', - subTitle: TranslationBase.of(context).eyeSubtitle, - isEnable: projectViewModel.havePrivilege(14), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(22) - ? Navigator.push( - context, - FadePage( - page: InsuranceCard( - appointmentNo: 0, - ))) - : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).insurance, - imagePath: 'insurance_card.svg', - subTitle: TranslationBase.of(context).insuranceSubtitle, - isEnable: projectViewModel.havePrivilege(22), - ), - )); - - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: InsuranceUpdate())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).updateInsurance, - imagePath: 'insurance_card.svg', - subTitle: TranslationBase.of(context).updateInsuranceSubtitle, - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(18) - ? Navigator.push( - context, - FadePage( - page: InsuranceApproval( - appointmentNo: 0, - ))) - : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).insuranceApproval, - imagePath: 'insurance_approval.svg', - subTitle: TranslationBase.of(context).insuranceApprovalSubtitle, - isEnable: projectViewModel.havePrivilege(18), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(23) ? Navigator.push(context, FadePage(page: AllergiesPage())) : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).allergies, - imagePath: 'allergies_diagnosed.svg', - subTitle: TranslationBase.of(context).allergiesSubtitle, - isEnable: projectViewModel.havePrivilege(23), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(26) ? Navigator.push(context, FadePage(page: MyVaccines())) : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).myVaccines, - imagePath: 'vaccine_list.svg', - subTitle: TranslationBase.of(context).myVaccinesSubtitle, - isEnable: projectViewModel.havePrivilege(26), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(20) ? Navigator.push(context, FadePage(page: HomeReportPage())) : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).medical, - imagePath: 'medical_report.svg', - subTitle: TranslationBase.of(context).medicalSubtitle, - isEnable: projectViewModel.havePrivilege(20), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(19) ? Navigator.push(context, FadePage(page: MonthlyReportsPage())) : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).monthly, - imagePath: 'monthly_report.svg', - subTitle: TranslationBase.of(context).monthlySubtitle, - isEnable: projectViewModel.havePrivilege(19), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(16) ? Navigator.push(context, FadePage(page: PatientSickLeavePage())) : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).sick, - imagePath: 'sick_leave.svg', - subTitle: TranslationBase.of(context).sickSubtitle, - isEnable: projectViewModel.havePrivilege(16), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(47) ? Navigator.push(context, FadePage(page: MyBalancePage())) : null, child: MedicalProfileItem( - title: TranslationBase.of(context).myBalance, - imagePath: 'balance_credit.svg', - subTitle: TranslationBase.of(context).myBalanceSubtitle, - isEnable: projectViewModel.havePrivilege(47), - ), + title: TranslationBase.of(context).myDoctor, + imagePath: 'my_doc.svg', + subTitle: TranslationBase.of(context).myDoctorSubtitle, + isEnable: projectViewModel.havePrivilege(6)), )); - // medical.add(MedicalProfileItem( - // title: TranslationBase.of(context).patientCall, - // imagePath: 'medical_history_icon.png', - // subTitle: TranslationBase.of(context).patientCallSubtitle, - // isEnable: projectViewModel.havePrivilege(61), + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(14) + // ? Navigator.push(context, FadePage(page: MyInvoices())) + // : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).invoicesList, + // imagePath: 'invoice_list.svg', + // subTitle: TranslationBase.of(context).myInvoice, + // isEnable: projectViewModel.havePrivilege(14), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(85) + // ? Navigator.push(context, FadePage(page: AnicllaryOrders())) + // : null, + // // onTap: () => Navigator.push(context, FadePage(page: AnicllaryOrders())), + // child: MedicalProfileItem( + // title: TranslationBase.of(context).anicllaryOrders, + // imagePath: 'ancillary.svg', + // isPngImage: false, + // subTitle: TranslationBase.of(context).myInvoice, + // isEnable: projectViewModel.havePrivilege(85), + // ), // )); - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(24) ? Navigator.push(context, FadePage(page: MyTrackers())) : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).myTrackers, - imagePath: 'tracker.svg', - subTitle: TranslationBase.of(context).myTrackersSubtitle, - isEnable: projectViewModel.havePrivilege(24), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(30) ? Navigator.push(context, FadePage(page: SmartWatchInstructions())) : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).smartWatchesSubtitle, - imagePath: 'smart_watch.svg', - subTitle: TranslationBase.of(context).smartWatches, - isEnable: projectViewModel.havePrivilege(30), - ), - )); - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(28) ? Navigator.push(context, FadePage(page: AskDoctorHomPage())) : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).askYourSubtitle, imagePath: 'ask_doctor.svg', subTitle: TranslationBase.of(context).askYour, isEnable: projectViewModel.havePrivilege(28)), - )); - - if (projectViewModel.havePrivilege(32) || true) { - medical.add(InkWell( - onTap: () { - if (Platform.isAndroid) { - showPermissionConsentDialog(context, TranslationBase.of(context).wifiPermission, () { - connectWifi(projectViewModel, context); - }); - } else { - connectWifi(projectViewModel, context); - } - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).internet, - imagePath: 'internet_connection.svg', - subTitle: TranslationBase.of(context).internetSubtitle, - ), - )); - } - - medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(40) ? launch('whatsapp://send?phone=18885521858&text=') : null, - child: MedicalProfileItem( - title: TranslationBase.of(context).chatbot, - imagePath: 'chatbot.svg', - subTitle: TranslationBase.of(context).chatbotSubtitle, - isEnable: projectViewModel.havePrivilege(40), - ), - )); + // medical.add(InkWell( + // onTap: () => onWeCareClick!(), + // child: MedicalProfileItem( + // title: TranslationBase.of(context).wecare, + // imagePath: 'assets/images/new-design/virtual_tour_icon.png', + // isPngImage: true, + // subTitle: TranslationBase.of(context).service, + // isEnable: projectViewModel.havePrivilege(105), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () { + // Navigator.push(context, FadePage(page: DentalInstructionsPage())); + // }, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).myinstructions, + // imagePath: 'medical_instructions.svg', + // isPngImage: false, + // subTitle: TranslationBase.of(context).service, + // isEnable: projectViewModel.havePrivilege(106), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(14) ? Navigator.push(context, FadePage(page: EyeMeasurementsPage())) : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).eye, + // imagePath: 'eye_measurement.svg', + // subTitle: TranslationBase.of(context).eyeSubtitle, + // isEnable: projectViewModel.havePrivilege(14), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(22) + // ? Navigator.push( + // context, + // FadePage( + // page: InsuranceCard( + // appointmentNo: 0, + // ))) + // : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).insurance, + // imagePath: 'insurance_card.svg', + // subTitle: TranslationBase.of(context).insuranceSubtitle, + // isEnable: projectViewModel.havePrivilege(22), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () { + // Navigator.push(context, FadePage(page: InsuranceUpdate())); + // }, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).updateInsurance, + // imagePath: 'insurance_card.svg', + // subTitle: TranslationBase.of(context).updateInsuranceSubtitle, + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(18) + // ? Navigator.push( + // context, + // FadePage( + // page: InsuranceApproval( + // appointmentNo: 0, + // ))) + // : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).insuranceApproval, + // imagePath: 'insurance_approval.svg', + // subTitle: TranslationBase.of(context).insuranceApprovalSubtitle, + // isEnable: projectViewModel.havePrivilege(18), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(23) ? Navigator.push(context, FadePage(page: AllergiesPage())) : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).allergies, + // imagePath: 'allergies_diagnosed.svg', + // subTitle: TranslationBase.of(context).allergiesSubtitle, + // isEnable: projectViewModel.havePrivilege(23), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(26) ? Navigator.push(context, FadePage(page: MyVaccines())) : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).myVaccines, + // imagePath: 'vaccine_list.svg', + // subTitle: TranslationBase.of(context).myVaccinesSubtitle, + // isEnable: projectViewModel.havePrivilege(26), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(20) ? Navigator.push(context, FadePage(page: HomeReportPage())) : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).medical, + // imagePath: 'medical_report.svg', + // subTitle: TranslationBase.of(context).medicalSubtitle, + // isEnable: projectViewModel.havePrivilege(20), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(19) ? Navigator.push(context, FadePage(page: MonthlyReportsPage())) : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).monthly, + // imagePath: 'monthly_report.svg', + // subTitle: TranslationBase.of(context).monthlySubtitle, + // isEnable: projectViewModel.havePrivilege(19), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(16) ? Navigator.push(context, FadePage(page: PatientSickLeavePage())) : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).sick, + // imagePath: 'sick_leave.svg', + // subTitle: TranslationBase.of(context).sickSubtitle, + // isEnable: projectViewModel.havePrivilege(16), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(47) ? Navigator.push(context, FadePage(page: MyBalancePage())) : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).myBalance, + // imagePath: 'balance_credit.svg', + // subTitle: TranslationBase.of(context).myBalanceSubtitle, + // isEnable: projectViewModel.havePrivilege(47), + // ), + // )); + // + // // medical.add(MedicalProfileItem( + // // title: TranslationBase.of(context).patientCall, + // // imagePath: 'medical_history_icon.png', + // // subTitle: TranslationBase.of(context).patientCallSubtitle, + // // isEnable: projectViewModel.havePrivilege(61), + // // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(24) ? Navigator.push(context, FadePage(page: MyTrackers())) : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).myTrackers, + // imagePath: 'tracker.svg', + // subTitle: TranslationBase.of(context).myTrackersSubtitle, + // isEnable: projectViewModel.havePrivilege(24), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(30) ? Navigator.push(context, FadePage(page: SmartWatchInstructions())) : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).smartWatchesSubtitle, + // imagePath: 'smart_watch.svg', + // subTitle: TranslationBase.of(context).smartWatches, + // isEnable: projectViewModel.havePrivilege(30), + // ), + // )); + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(28) ? Navigator.push(context, FadePage(page: AskDoctorHomPage())) : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).askYourSubtitle, imagePath: 'ask_doctor.svg', subTitle: TranslationBase.of(context).askYour, isEnable: projectViewModel.havePrivilege(28)), + // )); + // + // if (projectViewModel.havePrivilege(32) || true) { + // medical.add(InkWell( + // onTap: () { + // if (Platform.isAndroid) { + // showPermissionConsentDialog(context, TranslationBase.of(context).wifiPermission, () { + // connectWifi(projectViewModel, context); + // }); + // } else { + // connectWifi(projectViewModel, context); + // } + // }, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).internet, + // imagePath: 'internet_connection.svg', + // subTitle: TranslationBase.of(context).internetSubtitle, + // ), + // )); + // } + // + // medical.add(InkWell( + // onTap: () => projectViewModel.havePrivilege(40) ? launch('whatsapp://send?phone=18885521858&text=') : null, + // child: MedicalProfileItem( + // title: TranslationBase.of(context).chatbot, + // imagePath: 'chatbot.svg', + // subTitle: TranslationBase.of(context).chatbotSubtitle, + // isEnable: projectViewModel.havePrivilege(40), + // ), + // )); return medical; } - static getPatientWifiCredentials(String patientID, Function(String username, String password) successCallback) { + static getPatientWifiCredentials(String patientID, + Function(String username, String password) successCallback) { final body = {"PatientID": patientID}; - locator().post(WIFI_CREDENTIALS, body: body, onSuccess: (dynamic response, int statusCode) { + locator().post(WIFI_CREDENTIALS, body: body, + onSuccess: (dynamic response, int statusCode) { print(response); var data = response["Hmg_SMS_Get_By_ProjectID_And_PatientIDList"]; if (data is List && data.first != null) { final username = data.first['UserName']; final password = data.first['Password']; - if (username != null && password != null && username.isNotEmpty && password.isNotEmpty) { + if (username != null && + password != null && + username.isNotEmpty && + password.isNotEmpty) { successCallback(username, password); } } @@ -614,12 +668,18 @@ class Utils { // projectViewModel.platformBridge().connectHMGInternetWifi(patientID).then((value) => {GifLoaderDialogUtils.hideDialog(context)}).catchError((err) { // print(err.toString()); // }); - projectViewModel.platformBridge().connectHMGGuestWifi(GUEST_SSID).then((value) async { + projectViewModel + .platformBridge() + .connectHMGGuestWifi(GUEST_SSID) + .then((value) async { if (value == 0) { GifLoaderDialogUtils.hideDialog(context); } else { getPatientWifiCredentials(patientID, (username, password) async { - final result = await projectViewModel.platformBridge().connectHMGInternetWifi(PATIENT_SSID, username, password).catchError((err) => print(err.toString())); + final result = await projectViewModel + .platformBridge() + .connectHMGInternetWifi(PATIENT_SSID, username, password) + .catchError((err) => print(err.toString())); GifLoaderDialogUtils.hideDialog(context); if (result == 1) { // Success @@ -632,7 +692,8 @@ class Utils { } else { AlertDialogBox( context: context, - confirmMessage: "Please login with your account first to use this feature", + confirmMessage: + "Please login with your account first to use this feature", okText: "OK", okFunction: () { AlertDialogBox.closeAlertDialog(context); @@ -641,11 +702,17 @@ class Utils { }); } - static List myMedicalListHomePage({ProjectViewModel? projectViewModel, BuildContext? context, bool? isLogin, count}) { + static List myMedicalListHomePage( + {ProjectViewModel? projectViewModel, + BuildContext? context, + bool? isLogin, + count}) { List medical = []; medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(5) ? Navigator.push(context!, FadePage(page: MyAppointments())) : null, + onTap: () => projectViewModel.havePrivilege(5) + ? Navigator.push(context!, FadePage(page: MyAppointments())) + : null, child: isLogin! ? Stack(children: [ MedicalProfileItem( @@ -661,7 +728,8 @@ class Utils { top: 4, child: badge_import.Badge( position: badge_import.BadgePosition.topEnd(), - badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false), + badgeAnimation: badge_import.BadgeAnimation.fade( + toAnimate: false), badgeStyle: badge_import.BadgeStyle( elevation: 0, shape: badge_import.BadgeShape.circle, @@ -670,7 +738,11 @@ class Utils { ), badgeContent: Container( padding: EdgeInsets.all(2.0), - child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), + child: Text(count.toString(), + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 12.0)), ), ), ) @@ -680,7 +752,8 @@ class Utils { right: 8, top: 4, child: badge_import.Badge( - badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false), + badgeAnimation: badge_import.BadgeAnimation.fade( + toAnimate: false), badgeStyle: badge_import.BadgeStyle( elevation: 0, shape: badge_import.BadgeShape.circle, @@ -690,7 +763,11 @@ class Utils { position: badge_import.BadgePosition.topEnd(), badgeContent: Container( padding: EdgeInsets.all(2.0), - child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), + child: Text(count.toString(), + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 12.0)), ), ), ) @@ -706,7 +783,9 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(10) ? Navigator.push(context, FadePage(page: LabsHomePage())) : null, + onTap: () => projectViewModel.havePrivilege(10) + ? Navigator.push(context, FadePage(page: LabsHomePage())) + : null, child: MedicalProfileItem( title: TranslationBase.of(context).lab, imagePath: 'lab_result.svg', @@ -716,7 +795,9 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(7) ? Navigator.push(context, FadePage(page: RadiologyHomePage())) : null, + onTap: () => projectViewModel.havePrivilege(7) + ? Navigator.push(context, FadePage(page: RadiologyHomePage())) + : null, child: MedicalProfileItem( title: TranslationBase.of(context).radiology, imagePath: 'radiology.svg', @@ -726,7 +807,9 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(12) ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) : null, + onTap: () => projectViewModel.havePrivilege(12) + ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) + : null, child: MedicalProfileItem( title: TranslationBase.of(context).medicines, imagePath: 'medicine_prescription.svg', @@ -744,19 +827,24 @@ class Utils { ), ) : null, - child: - MedicalProfileItem(title: TranslationBase.of(context).myDoctor, imagePath: 'my_doc.svg', subTitle: TranslationBase.of(context).myDoctorSubtitle, isEnable: projectViewModel.havePrivilege(6)), + child: MedicalProfileItem( + title: TranslationBase.of(context).myDoctor, + imagePath: 'my_doc.svg', + subTitle: TranslationBase.of(context).myDoctorSubtitle, + isEnable: projectViewModel.havePrivilege(6)), )); return medical; } - static Widget loadNetworkImage({required String url, BoxFit fitting = BoxFit.cover}) { + static Widget loadNetworkImage( + {required String url, BoxFit fitting = BoxFit.cover}) { return CachedNetworkImage( placeholderFadeInDuration: Duration(milliseconds: 250), fit: fitting, imageUrl: url, - placeholder: (context, url) => Container(child: Center(child: CircularProgressIndicator())), + placeholder: (context, url) => + Container(child: Center(child: CircularProgressIndicator())), errorWidget: (context, url, error) { return Icon( Icons.error, @@ -774,7 +862,11 @@ class Utils { } static navigateToCartPage() { - Navigator.pushAndRemoveUntil(locator()!.navigatorKey!.currentContext!, MaterialPageRoute(builder: (context) => LandingPagePharmacy(currentTab: 3)), (Route r) => false); + Navigator.pushAndRemoveUntil( + locator()!.navigatorKey!.currentContext!, + MaterialPageRoute( + builder: (context) => LandingPagePharmacy(currentTab: 3)), + (Route r) => false); } static Widget tableColumnTitle(String text, {bool showDivider = true}) { @@ -786,7 +878,12 @@ class Utils { Text( text, maxLines: 1, - style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.48, height: 18 / 12), + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color(0xff2E303A), + letterSpacing: -0.48, + height: 18 / 12), ), SizedBox(height: 5), if (showDivider) @@ -799,18 +896,29 @@ class Utils { ); } - static Widget tableColumnValue(String text, {bool isLast = false, bool isCapitable = true, ProjectViewModel? mProjectViewModel}) { - ProjectViewModel projectViewModel = mProjectViewModel ?? Provider.of(AppGlobal.context); + static Widget tableColumnValue(String text, + {bool isLast = false, + bool isCapitable = true, + ProjectViewModel? mProjectViewModel}) { + ProjectViewModel projectViewModel = + mProjectViewModel ?? Provider.of(AppGlobal.context); return Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ SizedBox(height: 12), Text( - isCapitable && !projectViewModel.isArabic ? text.toLowerCase().capitalizeFirstofEach : text, + isCapitable && !projectViewModel.isArabic + ? text.toLowerCase().capitalizeFirstofEach + : text, maxLines: 2, overflow: TextOverflow.ellipsis, - style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10), + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color(0xff575757), + letterSpacing: -0.4, + height: 16 / 10), ), SizedBox(height: 12), if (!isLast) @@ -824,7 +932,9 @@ class Utils { } static Future isGoogleServicesAvailable() async { - GooglePlayServicesAvailability availability = await GoogleApiAvailability.instance.checkGooglePlayServicesAvailability(); + GooglePlayServicesAvailability availability = await GoogleApiAvailability + .instance + .checkGooglePlayServicesAvailability(); String status = availability.toString().split('.').last; if (status == "success") { return true; @@ -840,7 +950,8 @@ class Utils { final lat1Radians = _toRadians(lat1); final lat2Radians = _toRadians(lat2); - final a = _haversin(dLat) + cos(lat1Radians) * cos(lat2Radians) * _haversin(dLon); + final a = + _haversin(dLat) + cos(lat1Radians) * cos(lat2Radians) * _haversin(dLon); final c = 2 * asin(sqrt(a)); return r * c; @@ -850,7 +961,8 @@ class Utils { static num _haversin(double radians) => pow(sin(radians / 2), 2); - static Widget tableColumnValueWithUnderLine(String text, {bool isLast = false, bool isCapitable = true}) { + static Widget tableColumnValueWithUnderLine(String text, + {bool isLast = false, bool isCapitable = true}) { return Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, @@ -861,7 +973,13 @@ class Utils { isCapitable ? text.toLowerCase().capitalizeFirstofEach : text, maxLines: 1, minFontSize: 6, - style: TextStyle(decoration: TextDecoration.underline, fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xffD02127), letterSpacing: -0.48, height: 18 / 12), + style: TextStyle( + decoration: TextDecoration.underline, + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color(0xffD02127), + letterSpacing: -0.48, + height: 18 / 12), ), SizedBox(height: 10), if (!isLast) @@ -878,7 +996,8 @@ class Utils { return crypto.md5.convert(utf8.encode(input)).toString(); } - static bool isVidaPlusProject(ProjectViewModel projectViewModel, int projectID) { + static bool isVidaPlusProject( + ProjectViewModel projectViewModel, int projectID) { bool isVidaPlus = false; projectViewModel.vidaPlusProjectList.forEach((element) { if (element.projectID == projectID) { @@ -898,7 +1017,8 @@ class Utils { return isHMCProject; } - static ProjectDetailListModel getProjectDetailObj(ProjectViewModel projectViewModel, int projectID) { + static ProjectDetailListModel getProjectDetailObj( + ProjectViewModel projectViewModel, int projectID) { ProjectDetailListModel projectDetailListModel = ProjectDetailListModel(); projectViewModel.projectDetailListModel.forEach((element) { if (element.projectID == projectID) { @@ -908,10 +1028,16 @@ class Utils { return projectDetailListModel; } - //static String generateSignature() {} +//static String generateSignature() {} } -Widget applyShadow({Color color = Colors.grey, double shadowOpacity = 0.5, double spreadRadius = 2, double blurRadius = 7, Offset offset = const Offset(2, 2), required Widget child}) { +Widget applyShadow( + {Color color = Colors.grey, + double shadowOpacity = 0.5, + double spreadRadius = 2, + double blurRadius = 7, + Offset offset = const Offset(2, 2), + required Widget child}) { return Container( decoration: BoxDecoration( boxShadow: [ @@ -928,7 +1054,8 @@ Widget applyShadow({Color color = Colors.grey, double shadowOpacity = 0.5, doubl } Future userData() async { - var userData = AuthenticatedUser.fromJson(await AppSharedPreferences().getObject(MAIN_USER)); + var userData = AuthenticatedUser.fromJson( + await AppSharedPreferences().getObject(MAIN_USER)); return userData; } @@ -940,9 +1067,13 @@ extension IndexedIterable on Iterable { } } -openAppStore({String? androidPackageName, String? iOSAppID, bool isHuawei = false}) async { +openAppStore( + {String? androidPackageName, + String? iOSAppID, + bool isHuawei = false}) async { if (Platform.isAndroid) { - assert(!(androidPackageName == null), "Should have valid value in androidPackageName parameter"); + assert(!(androidPackageName == null), + "Should have valid value in androidPackageName parameter"); if (isHuawei) { launchUrl(Uri.parse("appmarket://details?id=com.ejada.hmg")); } else { @@ -950,7 +1081,8 @@ openAppStore({String? androidPackageName, String? iOSAppID, bool isHuawei = fals } } else if (Platform.isIOS) { assert((iOSAppID == null), "Should have valid value in iOSAppID parameter"); - launchUrl(Uri.parse("https://itunes.apple.com/kr/app/apple-store/$iOSAppID)")); + launchUrl( + Uri.parse("https://itunes.apple.com/kr/app/apple-store/$iOSAppID)")); } } @@ -973,7 +1105,11 @@ String labelFrom({required String className}) { extension StringExtension on String { String capitalize() { - return this.splitMapJoin(RegExp(r'\w+'), onMatch: (m) => '${m.group(0)}'.substring(0, 1).toUpperCase() + '${m.group(0)}'.substring(1).toLowerCase(), onNonMatch: (n) => ' '); + return this.splitMapJoin(RegExp(r'\w+'), + onMatch: (m) => + '${m.group(0)}'.substring(0, 1).toUpperCase() + + '${m.group(0)}'.substring(1).toLowerCase(), + onNonMatch: (n) => ' '); } } diff --git a/lib/widgets/Loader/gif_loader_container.dart b/lib/widgets/Loader/gif_loader_container.dart index ccc986c7..7ca49939 100644 --- a/lib/widgets/Loader/gif_loader_container.dart +++ b/lib/widgets/Loader/gif_loader_container.dart @@ -1,4 +1,6 @@ +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; import 'package:gif_view/gif_view.dart'; class GifLoaderContainer extends StatefulWidget { @@ -42,9 +44,8 @@ class _GifLoaderContainerState extends State with TickerProv //progress-loading.gif child: Container( // margin: EdgeInsets.only(bottom: 40), - child: GifView( - controller: controller, - image: AssetImage("assets/images/progress-loading-red.gif"), //NetworkImage("http://img.mp.itc.cn/upload/20161107/5cad975eee9e4b45ae9d3c1238ccf91e.jpg"), + child: CircularProgressIndicator( + color: appColor, ), ), ), diff --git a/lib/widgets/bottom_navigation/bottom_nav_bar.dart b/lib/widgets/bottom_navigation/bottom_nav_bar.dart index c5bd76a3..2aec3558 100644 --- a/lib/widgets/bottom_navigation/bottom_nav_bar.dart +++ b/lib/widgets/bottom_navigation/bottom_nav_bar.dart @@ -57,15 +57,15 @@ class _BottomNavBarState extends State { currentIndex: 1, name: TranslationBase.of(context).medicalFile, ), - BottomNavigationItem( - icon: "assets/images/new/bottom_nav/family_files.svg", - activeIcon: "assets/images/new/bottom_nav/family_files.svg", - changeIndex: _changeIndex, - index: widget.index, - currentIndex: 3, - name: TranslationBase.of(context).myFamily, - isDisabled: projectViewModel.isLoginChild, - ), + // BottomNavigationItem( + // icon: "assets/images/new/bottom_nav/family_files.svg", + // activeIcon: "assets/images/new/bottom_nav/family_files.svg", + // changeIndex: _changeIndex, + // index: widget.index, + // currentIndex: 3, + // name: TranslationBase.of(context).myFamily, + // isDisabled: projectViewModel.isLoginChild, + // ), if (widget.index == 0) (widget.showHomeIcon) ? BottomNavigationItem( @@ -94,15 +94,15 @@ class _BottomNavBarState extends State { // currentIndex: 2, // name: TranslationBase.of(context).bookAppo, // ), - if (/*widget.index == 0 && */ projectViewModel.havePrivilege(34)) - BottomNavigationItem( - icon: "assets/images/new/bottom_nav/todo.svg", - activeIcon: "assets/images/new/bottom_nav/todo.svg", - changeIndex: _changeIndex, - index: widget.index, - currentIndex: 4, - name: TranslationBase.of(context).todoList, - ), + // if (/*widget.index == 0 && */ projectViewModel.havePrivilege(34)) + // BottomNavigationItem( + // icon: "assets/images/new/bottom_nav/todo.svg", + // activeIcon: "assets/images/new/bottom_nav/todo.svg", + // changeIndex: _changeIndex, + // index: widget.index, + // currentIndex: 4, + // name: TranslationBase.of(context).todoList, + // ), if (projectViewModel.havePrivilege(77)) BottomNavigationItem( icon: "assets/images/new/bottom_nav/help.svg", diff --git a/lib/widgets/buttons/defaultButton.dart b/lib/widgets/buttons/defaultButton.dart index 4b2b50fb..86ed8dc7 100644 --- a/lib/widgets/buttons/defaultButton.dart +++ b/lib/widgets/buttons/defaultButton.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; +import '../../theme/theme_value.dart'; + extension WithContainer on Widget { Widget get insideContainer => Container(color: Colors.white, padding: EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21), child: this); @@ -21,7 +23,7 @@ class DefaultButton extends StatelessWidget { final bool isTextExpanded; final int count; - DefaultButton(this.text, this.onPress, {this.color, this.isTextExpanded = true, this.svgIcon, this.disabledColor, this.count = 0, this.textColor = Colors.white, this.iconData, this.fontSize}); + DefaultButton(this.text, this.onPress, {this.color = appColor, this.isTextExpanded = true, this.svgIcon, this.disabledColor, this.count = 0, this.textColor = Colors.white, this.iconData, this.fontSize}); @override Widget build(BuildContext context) { @@ -71,7 +73,7 @@ class DefaultButton extends StatelessWidget { ], ), style: TextButton.styleFrom( - backgroundColor: color ?? const Color(0xffD02127), + backgroundColor: color ?? appColor, disabledForegroundColor: disabledColor, disabledBackgroundColor: disabledColor, shape: RoundedRectangleBorder( diff --git a/lib/widgets/buttons/floatingActionButton.dart b/lib/widgets/buttons/floatingActionButton.dart index f7d41fb6..debb7d1a 100644 --- a/lib/widgets/buttons/floatingActionButton.dart +++ b/lib/widgets/buttons/floatingActionButton.dart @@ -1,8 +1,12 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/services/permission/permission_service.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:provider/provider.dart'; +import '../../uitl/translations_delegate_base.dart'; + /// FloatingButton widget /// [onTap] button function /// [elevation] color elevation value @@ -70,27 +74,42 @@ class _FloatingButtonState extends State child: AnimatedContainer( duration: Duration(milliseconds: 150), margin: EdgeInsets.only(bottom: 4), - decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(70.0)), - color: Theme.of(context).primaryColor, - boxShadow: [ - BoxShadow( - color: Color.fromRGBO( - 120, 71, 80, widget.elevation ? 0.28 : 0.0), - spreadRadius: - _buttonSize < 1.0 ? -(1 - _buttonSize) * 50 : 0.0, - offset: Offset(0, 7.0), - blurRadius: 70.0) - ]), - child: Image.asset( - projectViewModel.isArabic - ? 'assets/images/book_appointment_ar.png' - : 'assets/images/appointment_booking_en.png', - // fit: BoxFit.cover, - width: 90, - height: 90, - ), - )), - )); + + child: Container( + width: 100, + height: 100, + decoration: BoxDecoration( + // borderRadius: BorderRadius.all(Radius.circular(70.0)), + color: appColor, + shape: BoxShape.circle, + + ), + child: Padding( + padding: const EdgeInsets.all(18), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SvgPicture.asset( + "assets/images/new/book appointment.svg", + width: 50, + height: 30, + colorFilter: ColorFilter.mode(Colors.white, BlendMode.srcIn) + ), + Text( + TranslationBase.of(context).book, + textAlign: TextAlign.center, + style: TextStyle(fontSize: 11, fontWeight: FontWeight.w600, color: Colors.white,), + ), Text( + TranslationBase.of(context).appointmentLabel, + textAlign: TextAlign.center, + style: TextStyle(fontSize: 8, fontWeight: FontWeight.w400, color: Colors.white,), + ), + ], + ), + ), + ) + ), + ))); } } diff --git a/lib/widgets/data_display/medical/doctor_card.dart b/lib/widgets/data_display/medical/doctor_card.dart index 90a93a12..7b2fb5c9 100644 --- a/lib/widgets/data_display/medical/doctor_card.dart +++ b/lib/widgets/data_display/medical/doctor_card.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/extensions/string_extensions.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; @@ -96,7 +97,7 @@ class DoctorCard extends StatelessWidget { : isLiveCareAppointment != null && isLiveCareAppointment == true ? Color(0xff2E303A) : isInOutPatient != null && isInOutPatient == false - ? Color(0xffD02127) + ? appColor : Color(0xffa9a089), borderRadius: BorderRadius.only( topLeft: projectViewModel!.isArabic ? Radius.circular(0) : Radius.circular(10), @@ -210,15 +211,15 @@ class DoctorCard extends StatelessWidget { ratingWidget: RatingWidget( full: Icon( Icons.star, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), half: Icon( Icons.star_half, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), empty: Icon( Icons.star_border, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), ), unratedColor: Colors.grey[500], diff --git a/lib/widgets/data_display/medical/time_line_new_widget.dart b/lib/widgets/data_display/medical/time_line_new_widget.dart index f6414f4b..4fce23ed 100644 --- a/lib/widgets/data_display/medical/time_line_new_widget.dart +++ b/lib/widgets/data_display/medical/time_line_new_widget.dart @@ -23,6 +23,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:provider/provider.dart'; +import '../../../theme/theme_value.dart'; + class TimeLineView extends StatefulWidget { bool isLogged, isArabic; List appoitmentAllHistoryResultList; @@ -304,7 +306,7 @@ class _TimeLineViewState extends State { child: CustomTextButton( shape: cardRadiusNew(8), elevation: 0, - backgroundColor: Color(0xFFFBF2E31), + backgroundColor: appColor, onPressed: () { // onLoginClick(); login(); diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 1b525e21..a123035c 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -105,65 +105,58 @@ class _AppDrawerState extends State { child: ListView( padding: EdgeInsets.zero, children: [ - Container( - height: SizeConfig.screenHeight! * .30, - child: InkWell( - child: Padding( - padding: const EdgeInsets.all(14.0), - child: Column( - children: [ - Container( - width: double.infinity, - padding: EdgeInsets.only(top: 12), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - SvgPicture.asset( - "assets/images/new/logo.svg", - height: 60, - width: 60, - ), - IconButton( - icon: Icon(Icons.clear), - onPressed: () { - Navigator.pop(context); - }, - ) - ], - ), + InkWell( + child: Padding( + padding: const EdgeInsets.all(14.0), + child: Column( + children: [ + Container( + width: double.infinity, + padding: EdgeInsets.only(top: 12), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Image.asset( + 'assets/images/new/ic_logo.png', + fit: BoxFit.fitWidth, + height: 60, + width: 60, + ), + IconButton( + icon: Icon(Icons.clear), + onPressed: () { + Navigator.pop(context); + }, + ) + ], ), - mHeight(12), - Container( - width: double.infinity, - margin: EdgeInsets.only(top: 12), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Text( - (user != null && projectProvider!.isLogin) ? user!.firstName! + ' ' + user!.lastName! : TranslationBase.of(context).cantSeeProfile, - style: TextStyle(color: Color(0xff2E303A), fontWeight: FontWeight.bold, fontSize: 20, letterSpacing: -1.2, height: 35 / 20), - ), - Text( - (user != null && projectProvider!.isLogin) - ? TranslationBase.of(context).fileNumber + ": " + user!.patientID.toString() - : TranslationBase.of(context).loginRegisterNow, - style: TextStyle( - color: Color(0xff2E303A), - fontSize: 16, - letterSpacing: -0.96, - height: 1, - ), - ), - mHeight(20.0), + ), + SizedBox( + width: double.infinity, + // margin: EdgeInsets.only(top: 12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text( + (user != null && projectProvider!.isLogin) ? user!.firstName! + ' ' + user!.lastName! : TranslationBase.of(context).cantSeeProfile, + style: TextStyle(color: Color(0xff2E303A), fontWeight: FontWeight.bold, fontSize: 20, letterSpacing: -1.2, height: 35 / 20), + ), + Text( (user != null && projectProvider!.isLogin) - ? Image.network("https://api.qrserver.com/v1/create-qr-code/?size=250x250&data=${user!.patientID.toString()}", fit: BoxFit.fill, height: 73.5, width: 73.5) - : Container(), - ], - ), + ? TranslationBase.of(context).fileNumber + ": " + user!.patientID.toString() + : TranslationBase.of(context).loginRegisterNow, + style: TextStyle( + color: Color(0xff2E303A), + fontSize: 16, + letterSpacing: -0.96, + height: 1, + ), + ), + ], ), - ], - ), + ), + ], ), ), ), @@ -172,11 +165,11 @@ class _AppDrawerState extends State { mainAxisAlignment: MainAxisAlignment.start, children: [ (user != null && projectProvider!.isLogin) - ? Container() + ? SizedBox.shrink() : InkWell( child: DrawerItem( TranslationBase.of(context).arabicChange, - Padding(child: Image.asset('assets/images/lang.png'), padding: EdgeInsets.all(3)), + Image.asset('assets/images/lang.png'), isImageIcon: true, bottomLine: false, projectProvider: projectProvider, @@ -199,139 +192,6 @@ class _AppDrawerState extends State { ? Column( mainAxisAlignment: MainAxisAlignment.start, children: [ - (user!.isFamily == null || user!.isFamily == false) - ? InkWell( - child: DrawerItem(TranslationBase.of(context).family, SvgPicture.asset("assets/images/new/family_files.svg"), - isImageIcon: true, - bottomLine: false, - textColor: Theme.of(context).textTheme.bodyText1!.color, - iconColor: Theme.of(context).textTheme.bodyText1!.color, - sideArrow: true, - letterSpacing: -0.84, - projectProvider: projectProvider), - onTap: () { - Navigator.of(context).pop(); - Navigator.of(context).pushNamed( - MY_FAMILIY, - ); - - locator().hamburgerMenu.logMenuItemClick('my family'); - }, - ) - : SizedBox(), - FutureBuilder( - future: getFamilyFiles(), // async work - builder: (BuildContext context, AsyncSnapshot snapshot) { - switch (snapshot.connectionState) { - case ConnectionState.waiting: - return Padding(padding: EdgeInsets.all(10), child: CircularProgressIndicator()); - default: - if (snapshot.hasError) - return Padding(padding: EdgeInsets.all(10), child: Text(snapshot.error.toString())); - else - return Container( - child: Column( - children: [ - user!.isFamily == true - ? Container( - padding: EdgeInsets.only(bottom: 5, left: 4), - child: InkWell( - onTap: () { - switchUser(mainUser, context); - }, - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: SvgPicture.asset("assets/images/new/family_files.svg"), - ), - Expanded( - flex: 7, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - mainUser!.firstName! + ' ' + mainUser!.lastName!, - color: Color(0xff2E303A), //Theme.of(context).textTheme.bodyText1.color, - fontWeight: FontWeight.w600, - fontSize: 12, - letterSpacing: -0.33, - ), - AppText( - TranslationBase.of(context).fileno + ": " + mainUser!.patientID.toString(), - color: Color(0xff989898), - fontSize: 12, - letterSpacing: -0.33, - ), - Container( - height: 1, - margin: EdgeInsets.only(top: 7.5), - color: Color(0xffEDEDED), - ), - ], - ), - ), - ], - ), - ), - ) - : SizedBox(), - Column( - mainAxisAlignment: MainAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: snapshot.data!.getAllSharedRecordsByStatusList!.map((result) { - return result.status == 3 - ? Container( - padding: EdgeInsets.only(bottom: 5), - child: InkWell( - onTap: () { - switchUser(result, context); - }, - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: Icon(Icons.person, color: result.responseID == user!.patientID ? Colors.transparent : Colors.transparent), - ), - Expanded( - flex: 7, - child: Padding( - padding: EdgeInsets.only(left: 5, right: 5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - result.patientName!, - color: result.responseID == user!.patientID ? Color(0xffC5272D) : Color(0xff2B353E), - fontWeight: FontWeight.w600, - fontSize: 11, - letterSpacing: -0.33, - ), - AppText( - TranslationBase.of(context).fileno + ": " + result.responseID.toString(), - color: result.responseID == user!.patientID ? Color(0xffC5272D) : Color(0xff989898), - fontSize: 11, - letterSpacing: -0.33, - ), - Divider( - color: Colors.grey[400], - ), - ], - ), - ), - ), - ], - ), - ), - ) - : SizedBox(); - }).toList()) - ], - )); - } - }, - ), - mHeight(20), InkWell( child: DrawerItem(TranslationBase.of(context).arabicChange, Padding(child: Image.asset('assets/images/lang.png'), padding: EdgeInsets.only(left: 3, right: 3, top: 3, bottom: projectProvider!.isArabic ? 3 : 0)), @@ -368,73 +228,7 @@ class _AppDrawerState extends State { // readQRCode(); // }, // ), - InkWell( - child: Stack( - children: [ - DrawerItem( - TranslationBase.of(context).notification, - SvgPicture.asset("assets/images/new/notifications.svg"), - isImageIcon: true, - bottomLine: false, - letterSpacing: -0.84, - fontSize: 14, - projectProvider: projectProvider, - count: toDoProvider!.notificationsCount != "0" && !projectProvider!.isLoginChild - ? new Container( - padding: EdgeInsets.all(4), - margin: EdgeInsets.all(2), - decoration: new BoxDecoration( - color: CustomColors.accentColor, - borderRadius: BorderRadius.circular(20), - ), - constraints: BoxConstraints( - minWidth: 20, - minHeight: 20, - ), - child: new Text( - toDoProvider!.notificationsCount.toString(), - style: new TextStyle( - color: Colors.white, - fontSize: projectProvider!.isArabic ? 8 : 9, - ), - textAlign: TextAlign.center, - ), - // ), - ) - : SizedBox(), - ), - ], - ), - onTap: () { - //NotificationsPage - // Navigator.of(context).pop(); - if (!projectProvider!.isLoginChild) Navigator.push(context, FadePage(page: NotificationsPage())); - locator().hamburgerMenu.logMenuItemClick('notifications'); - }, - ), - if (projectProvider!.havePrivilege(3)) - InkWell( - child: DrawerItem(TranslationBase.of(context).appsetting, SvgPicture.asset("assets/images/new/app_setting.svg"), - isImageIcon: true, bottomLine: false, letterSpacing: -0.84, fontSize: 14, projectProvider: projectProvider), - onTap: () { - Navigator.of(context).pushNamed( - SETTINGS, - ); - locator().hamburgerMenu.logMenuItemClick('app settings'); - }, - ), - InkWell( - child: DrawerItem(TranslationBase.of(context).rateApp, Icons.star, bottomLine: false, letterSpacing: -0.84, fontSize: 14, projectProvider: projectProvider), - onTap: () { - openAppReviewDialog(); - locator().hamburgerMenu.logMenuItemClick('rate our app'); - // if (Platform.isIOS) { - // launchUrl(Uri.parse("https://apps.apple.com/sa/app/dr-suliaman-alhabib/id733503978")); - // } else { - // launchUrl(Uri.parse("https://play.google.com/store/apps/details?id=com.ejada.hmg&hl=en")); - // } - }, - ), + InkWell( child: DrawerItem(TranslationBase.of(context).logout, SvgPicture.asset("assets/images/new/logout.svg"), isImageIcon: true, bottomLine: false, letterSpacing: -0.84, fontSize: 14, projectProvider: projectProvider), @@ -451,21 +245,21 @@ class _AppDrawerState extends State { login(); }, ), - InkWell( - child: DrawerItem(TranslationBase.of(context).privacyPolicy, Icons.web, letterSpacing: -0.84, fontSize: 14, bottomLine: false), - onTap: () { - if (projectProvider!.isArabic) - launch("https://hmg.com/ar/Pages/Privacy.aspx"); - else - launch("https://hmg.com/en/Pages/Privacy.aspx"); - }, - ), - InkWell( - child: DrawerItem(TranslationBase.of(context).termsConditions, Icons.web, letterSpacing: -0.84, fontSize: 14, bottomLine: false), - onTap: () { - Navigator.of(context).push(FadePage(page: UserAgreementPage())); - }, - ) + // InkWell( + // child: DrawerItem(TranslationBase.of(context).privacyPolicy, Icons.web, letterSpacing: -0.84, fontSize: 14, bottomLine: false), + // onTap: () { + // if (projectProvider!.isArabic) + // launch("https://hmg.com/ar/Pages/Privacy.aspx"); + // else + // launch("https://hmg.com/en/Pages/Privacy.aspx"); + // }, + // ), + // InkWell( + // child: DrawerItem(TranslationBase.of(context).termsConditions, Icons.web, letterSpacing: -0.84, fontSize: 14, bottomLine: false), + // onTap: () { + // Navigator.of(context).push(FadePage(page: UserAgreementPage())); + // }, + // ) ], )) ], diff --git a/lib/widgets/habib_logo_widget.dart b/lib/widgets/habib_logo_widget.dart index 84aaa076..bd65516b 100644 --- a/lib/widgets/habib_logo_widget.dart +++ b/lib/widgets/habib_logo_widget.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; @@ -8,8 +9,8 @@ class HabibLogoWidget extends StatelessWidget { Widget build(BuildContext context) { return Row( children: [ - SvgPicture.asset( - "assets/images/new/hmg_icon.svg", + Image.asset( + 'assets/images/new/ic_logo.png', height: 62, width: 62, ), @@ -25,12 +26,12 @@ class HabibLogoWidget extends StatelessWidget { style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.72, height: 23 / 12), ), Text( - TranslationBase.of(context).drSulaimanText, + TranslationBase.of(context).kingKhalidUniversity, style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 23 / 24), ), Text( TranslationBase.of(context).patientApp, - style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xffD02127), letterSpacing: -0.72), + style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: appColor, letterSpacing: -0.72), ), SizedBox(height: 2), ], diff --git a/lib/widgets/new_design/doctor_header.dart b/lib/widgets/new_design/doctor_header.dart index e3495561..55884f70 100644 --- a/lib/widgets/new_design/doctor_header.dart +++ b/lib/widgets/new_design/doctor_header.dart @@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/models/Appointments/DoctorRateDetails.dart' import 'package:diplomaticquarterapp/models/header_model.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; +import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; @@ -139,15 +140,15 @@ class DoctorHeader extends StatelessWidget { ratingWidget: RatingWidget( full: Icon( Icons.star, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), half: Icon( Icons.star_half, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), empty: Icon( Icons.star_border, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), ), unratedColor: Colors.grey[500], @@ -178,7 +179,7 @@ class DoctorHeader extends StatelessWidget { child: Container( padding: EdgeInsets.only(top: 10, bottom: 10, right: 15, left: 15), decoration: BoxDecoration( - color: Color(0XFFD02127), borderRadius: projectViewModel.isArabic ? BorderRadius.only(topRight: Radius.circular(10)) : BorderRadius.only(topLeft: Radius.circular(10))), + color: appColor, borderRadius: projectViewModel.isArabic ? BorderRadius.only(topRight: Radius.circular(10)) : BorderRadius.only(topLeft: Radius.circular(10))), child: Row( mainAxisSize: MainAxisSize.min, children: [ @@ -304,15 +305,15 @@ class DoctorHeader extends StatelessWidget { ratingWidget: RatingWidget( full: Icon( Icons.star, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), half: Icon( Icons.star_half, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), empty: Icon( Icons.star_border, - color: CustomColors.accentColor, + color: CustomColors.primaryColor, ), ), unratedColor: Colors.grey[500], diff --git a/lib/widgets/new_design/my_tab_view.dart b/lib/widgets/new_design/my_tab_view.dart index 911f8da8..6e3f97a9 100644 --- a/lib/widgets/new_design/my_tab_view.dart +++ b/lib/widgets/new_design/my_tab_view.dart @@ -1,6 +1,8 @@ import 'package:diplomaticquarterapp/core/enum/filter_type.dart'; import 'package:flutter/material.dart'; +import '../../theme/theme_value.dart'; + class MyTabView extends StatelessWidget { final String title; final FilterType value; @@ -36,7 +38,7 @@ class MyTabView extends StatelessWidget { Container( margin: EdgeInsets.only(top: 13), height: 3, - color: value == groupValue ? Color(0xffD02127) : Colors.transparent, + color: value == groupValue ? appColor : Colors.transparent, ) ], ), diff --git a/lib/widgets/others/not_auh_page.dart b/lib/widgets/others/not_auh_page.dart index 063878bb..b31672ad 100644 --- a/lib/widgets/others/not_auh_page.dart +++ b/lib/widgets/others/not_auh_page.dart @@ -17,6 +17,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:provider/provider.dart'; import '../../splashPage.dart'; +import '../../theme/theme_value.dart'; class NotAutPage extends StatefulWidget { final String title; @@ -114,7 +115,7 @@ class _NotAutPageState extends State { style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.48), ), style: TextButton.styleFrom( - backgroundColor: Color(0xffD02127), + backgroundColor: appColor, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(6), ), @@ -334,23 +335,8 @@ class _NotAutPageState extends State { if (data != null) { Navigator.of(context).pushNamed(CONFIRM_LOGIN); } else { - GifLoaderDialogUtils.showMyDialog(context); - authService.selectDeviceImei(DEVICE_TOKEN).then((SelectDeviceIMEIRES? value) { - GifLoaderDialogUtils.hideDialog(context); - if (value != null) { - sharedPref.setObject(IMEI_USER_DATA, value); - Navigator.of(context).pushNamed(CONFIRM_LOGIN); - } else { - Navigator.of(context).pushNamed( - WELCOME_LOGIN, - ); - } - }).catchError((err) { - GifLoaderDialogUtils.hideDialog(context); - Navigator.of(context).pushNamed( - WELCOME_LOGIN, - ); - }); + Navigator.of(context).pushNamed(LOGIN_TYPE); + } } }