diff --git a/assets/images/DQ/doctor_information_icon.svg b/assets/images/DQ/doctor_information_icon.svg new file mode 100644 index 00000000..0d0fe955 --- /dev/null +++ b/assets/images/DQ/doctor_information_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/DQ/doctor_qualification_icon.svg b/assets/images/DQ/doctor_qualification_icon.svg new file mode 100644 index 00000000..ab4723c4 --- /dev/null +++ b/assets/images/DQ/doctor_qualification_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/DQ/medical_card_bg.svg b/assets/images/DQ/medical_card_bg.svg new file mode 100644 index 00000000..389559af --- /dev/null +++ b/assets/images/DQ/medical_card_bg.svg @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/call_down.svg b/assets/images/call_down.svg new file mode 100644 index 00000000..bd4f7f61 --- /dev/null +++ b/assets/images/call_down.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/call_on.svg b/assets/images/call_on.svg new file mode 100644 index 00000000..2f54c0e8 --- /dev/null +++ b/assets/images/call_on.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/new-design/HMG_logo.svg b/assets/images/new-design/HMG_logo.svg new file mode 100644 index 00000000..0e4895c3 --- /dev/null +++ b/assets/images/new-design/HMG_logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/new-design/alert_icon.svg b/assets/images/new-design/alert_icon.svg new file mode 100644 index 00000000..51bc9f3c --- /dev/null +++ b/assets/images/new-design/alert_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/new-design/applepay.svg b/assets/images/new-design/applepay.svg new file mode 100644 index 00000000..8e0df8c7 --- /dev/null +++ b/assets/images/new-design/applepay.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/new-design/check_icon.svg b/assets/images/new-design/check_icon.svg new file mode 100644 index 00000000..911df584 --- /dev/null +++ b/assets/images/new-design/check_icon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/images/new-design/ionic-ios-checkmark-circle.svg b/assets/images/new-design/ionic-ios-checkmark-circle.svg new file mode 100644 index 00000000..e38612b7 --- /dev/null +++ b/assets/images/new-design/ionic-ios-checkmark-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/new-design/liveCare_logo_icon.svg b/assets/images/new-design/liveCare_logo_icon.svg new file mode 100644 index 00000000..15bdcff8 --- /dev/null +++ b/assets/images/new-design/liveCare_logo_icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/new-design/liveCare_logo_icon_white_check.svg b/assets/images/new-design/liveCare_logo_icon_white_check.svg new file mode 100644 index 00000000..52bce9b5 --- /dev/null +++ b/assets/images/new-design/liveCare_logo_icon_white_check.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/new-design/liveCare_mobile_care.svg b/assets/images/new-design/liveCare_mobile_care.svg new file mode 100644 index 00000000..6167aa3e --- /dev/null +++ b/assets/images/new-design/liveCare_mobile_care.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Online Consultation + + + + + + + + + + + + + + + + diff --git a/assets/images/new-design/passport.svg b/assets/images/new-design/passport.svg new file mode 100644 index 00000000..a3a060f0 --- /dev/null +++ b/assets/images/new-design/passport.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/new-design/track_icon.svg b/assets/images/new-design/track_icon.svg new file mode 100644 index 00000000..a4aa9a0f --- /dev/null +++ b/assets/images/new-design/track_icon.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/images/new-design/update_rocket_image.svg b/assets/images/new-design/update_rocket_image.svg new file mode 100644 index 00000000..6ce85004 --- /dev/null +++ b/assets/images/new-design/update_rocket_image.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/new-design/video_icon_green_right.svg b/assets/images/new-design/video_icon_green_right.svg new file mode 100644 index 00000000..7f35ea42 --- /dev/null +++ b/assets/images/new-design/video_icon_green_right.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/images/new/DriveThru.svg b/assets/images/new/DriveThru.svg new file mode 100644 index 00000000..faa727b7 --- /dev/null +++ b/assets/images/new/DriveThru.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/new/InPatient.svg b/assets/images/new/InPatient.svg new file mode 100644 index 00000000..d865a66c --- /dev/null +++ b/assets/images/new/InPatient.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/assets/images/new/WalkIn.svg b/assets/images/new/WalkIn.svg new file mode 100644 index 00000000..c60829cb --- /dev/null +++ b/assets/images/new/WalkIn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/new/add-to-cart.svg b/assets/images/new/add-to-cart.svg new file mode 100644 index 00000000..f01f6033 --- /dev/null +++ b/assets/images/new/add-to-cart.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/images/new/ancillary.svg b/assets/images/new/ancillary.svg new file mode 100644 index 00000000..bde8d0e1 --- /dev/null +++ b/assets/images/new/ancillary.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/new/body_parts/male/full_neck.svg b/assets/images/new/body_parts/male/full_neck.svg new file mode 100644 index 00000000..33b755e8 --- /dev/null +++ b/assets/images/new/body_parts/male/full_neck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/new/body_parts/male/half_neck.svg b/assets/images/new/body_parts/male/half_neck.svg new file mode 100644 index 00000000..26b6bc32 --- /dev/null +++ b/assets/images/new/body_parts/male/half_neck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/new/bottom_nav/help.svg b/assets/images/new/bottom_nav/help.svg new file mode 100644 index 00000000..31d49e71 --- /dev/null +++ b/assets/images/new/bottom_nav/help.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/new/bottom_nav/home.svg b/assets/images/new/bottom_nav/home.svg new file mode 100644 index 00000000..b363bbc0 --- /dev/null +++ b/assets/images/new/bottom_nav/home.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/new/bottom_nav/my_file.svg b/assets/images/new/bottom_nav/my_file.svg new file mode 100644 index 00000000..fc5c0096 --- /dev/null +++ b/assets/images/new/bottom_nav/my_file.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/new/car_icon.svg b/assets/images/new/car_icon.svg new file mode 100644 index 00000000..f6062e65 --- /dev/null +++ b/assets/images/new/car_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/new/cart_old.svg b/assets/images/new/cart_old.svg new file mode 100644 index 00000000..334b86ba --- /dev/null +++ b/assets/images/new/cart_old.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/new/cloudy.svg b/assets/images/new/cloudy.svg new file mode 100644 index 00000000..88ccdf85 --- /dev/null +++ b/assets/images/new/cloudy.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/new/copy.svg b/assets/images/new/copy.svg new file mode 100644 index 00000000..c34c96d4 --- /dev/null +++ b/assets/images/new/copy.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/assets/images/new/drive-thru.svg b/assets/images/new/drive-thru.svg new file mode 100644 index 00000000..3bbb8368 --- /dev/null +++ b/assets/images/new/drive-thru.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/new/emergency_services.svg b/assets/images/new/emergency_services.svg new file mode 100644 index 00000000..ab63f29b --- /dev/null +++ b/assets/images/new/emergency_services.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/new/emergency_services_back.svg b/assets/images/new/emergency_services_back.svg new file mode 100644 index 00000000..13d9f2d2 --- /dev/null +++ b/assets/images/new/emergency_services_back.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/new/hospital-visit.svg b/assets/images/new/hospital-visit.svg new file mode 100644 index 00000000..df4d481a --- /dev/null +++ b/assets/images/new/hospital-visit.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/images/new/inpatient/admission.svg b/assets/images/new/inpatient/admission.svg new file mode 100644 index 00000000..3c946928 --- /dev/null +++ b/assets/images/new/inpatient/admission.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/new/inpatient/admission_notice.svg b/assets/images/new/inpatient/admission_notice.svg new file mode 100644 index 00000000..befcf08f --- /dev/null +++ b/assets/images/new/inpatient/admission_notice.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/images/new/inpatient/advance_payment.svg b/assets/images/new/inpatient/advance_payment.svg new file mode 100644 index 00000000..fe41e6ef --- /dev/null +++ b/assets/images/new/inpatient/advance_payment.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/new/inpatient/birth_notification.svg b/assets/images/new/inpatient/birth_notification.svg new file mode 100644 index 00000000..7e0c720e --- /dev/null +++ b/assets/images/new/inpatient/birth_notification.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/new/inpatient/general_instructions.svg b/assets/images/new/inpatient/general_instructions.svg new file mode 100644 index 00000000..9f42040d --- /dev/null +++ b/assets/images/new/inpatient/general_instructions.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/new/inpatient/help_pro.svg b/assets/images/new/inpatient/help_pro.svg new file mode 100644 index 00000000..90b7f300 --- /dev/null +++ b/assets/images/new/inpatient/help_pro.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/new/inpatient/meal_plan.svg b/assets/images/new/inpatient/meal_plan.svg new file mode 100644 index 00000000..e5fd1e58 --- /dev/null +++ b/assets/images/new/inpatient/meal_plan.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/images/new/inpatient/medical_instructions.svg b/assets/images/new/inpatient/medical_instructions.svg new file mode 100644 index 00000000..dc060b34 --- /dev/null +++ b/assets/images/new/inpatient/medical_instructions.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/new/inpatient/receive_prescription.svg b/assets/images/new/inpatient/receive_prescription.svg new file mode 100644 index 00000000..21cadf7c --- /dev/null +++ b/assets/images/new/inpatient/receive_prescription.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/images/new/payment.svg b/assets/images/new/payment.svg new file mode 100644 index 00000000..c49fee35 --- /dev/null +++ b/assets/images/new/payment.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/new/payment/Apple_Pay.svg b/assets/images/new/payment/Apple_Pay.svg new file mode 100755 index 00000000..0c6ecafe --- /dev/null +++ b/assets/images/new/payment/Apple_Pay.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/new/payment/instalmt.svg b/assets/images/new/payment/instalmt.svg new file mode 100644 index 00000000..76fe7a0a --- /dev/null +++ b/assets/images/new/payment/instalmt.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/new/pendingPayment.svg b/assets/images/new/pendingPayment.svg new file mode 100644 index 00000000..79f29f05 --- /dev/null +++ b/assets/images/new/pendingPayment.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/new/pharma.svg b/assets/images/new/pharma.svg new file mode 100644 index 00000000..c3071ac4 --- /dev/null +++ b/assets/images/new/pharma.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/images/new/pharmaicon.svg b/assets/images/new/pharmaicon.svg new file mode 100644 index 00000000..af0f0e29 --- /dev/null +++ b/assets/images/new/pharmaicon.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/images/new/qr_code.svg b/assets/images/new/qr_code.svg new file mode 100644 index 00000000..a8674f00 --- /dev/null +++ b/assets/images/new/qr_code.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/new/services/ancillary.svg b/assets/images/new/services/ancillary.svg new file mode 100644 index 00000000..bde8d0e1 --- /dev/null +++ b/assets/images/new/services/ancillary.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/new/services/cholesterol.svg b/assets/images/new/services/cholesterol.svg new file mode 100644 index 00000000..e5686e15 --- /dev/null +++ b/assets/images/new/services/cholesterol.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/new/services/contactless.svg b/assets/images/new/services/contactless.svg new file mode 100644 index 00000000..4eb2d478 --- /dev/null +++ b/assets/images/new/services/contactless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/new/services/fat.svg b/assets/images/new/services/fat.svg new file mode 100644 index 00000000..552715b9 --- /dev/null +++ b/assets/images/new/services/fat.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/new/services/location.svg b/assets/images/new/services/location.svg new file mode 100644 index 00000000..e727476f --- /dev/null +++ b/assets/images/new/services/location.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/new/services/pendingPayment.svg b/assets/images/new/services/pendingPayment.svg new file mode 100644 index 00000000..79f29f05 --- /dev/null +++ b/assets/images/new/services/pendingPayment.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/new/services/qr_code.svg b/assets/images/new/services/qr_code.svg new file mode 100644 index 00000000..55b70919 --- /dev/null +++ b/assets/images/new/services/qr_code.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/new/services/reminder_icon.svg b/assets/images/new/services/reminder_icon.svg new file mode 100644 index 00000000..9d73af2d --- /dev/null +++ b/assets/images/new/services/reminder_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/new/services/sugar-blood-level.svg b/assets/images/new/services/sugar-blood-level.svg new file mode 100644 index 00000000..f1c103f7 --- /dev/null +++ b/assets/images/new/services/sugar-blood-level.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/new/ultrasound.svg b/assets/images/new/ultrasound.svg new file mode 100644 index 00000000..bc434530 --- /dev/null +++ b/assets/images/new/ultrasound.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/images/new/virtual.svg b/assets/images/new/virtual.svg new file mode 100644 index 00000000..d0819a89 --- /dev/null +++ b/assets/images/new/virtual.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/new/workplace-icon.svg b/assets/images/new/workplace-icon.svg new file mode 100644 index 00000000..4a2c73a0 --- /dev/null +++ b/assets/images/new/workplace-icon.svg @@ -0,0 +1 @@ +workplace \ No newline at end of file diff --git a/assets/images/nfc/contactless.svg b/assets/images/nfc/contactless.svg new file mode 100644 index 00000000..4eb2d478 --- /dev/null +++ b/assets/images/nfc/contactless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index ea96fe5f..fab8f735 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ get triageQuestionsModelList => _edOnlineServices.triageQuestionsModelList; - ErPatientShareModel get erPatientShareModel => _edOnlineServices.erPatientShareModel!; + ErPatientShareModel? get erPatientShareModel => _edOnlineServices.erPatientShareModel; Future getHospitals() async { if (_hospitalService.hospitals.isEmpty) { diff --git a/lib/core/viewModels/er/rrt-view-model.dart b/lib/core/viewModels/er/rrt-view-model.dart index a130ba20..5c502077 100644 --- a/lib/core/viewModels/er/rrt-view-model.dart +++ b/lib/core/viewModels/er/rrt-view-model.dart @@ -22,7 +22,7 @@ class RRTService extends BaseService {} class _RRTServiceData { List pendingOrders = []; List completedOrders = []; - ServicePrice? servicePrice; + ServicePrice servicePrice = ServicePrice(); // RRTProcedureList rrtProcedureList; } diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart index de4733c2..98b01d2a 100644 --- a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart +++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart @@ -27,7 +27,10 @@ class NewCMCStepThreePage extends StatefulWidget { final CMCInsertPresOrderRequestModel cmcInsertPresOrderRequestModel; final CMCViewModel model; - NewCMCStepThreePage({Key? key, required this.model, required this.cmcInsertPresOrderRequestModel}); + NewCMCStepThreePage( + {Key? key, + required this.model, + required this.cmcInsertPresOrderRequestModel}); @override _NewCMCStepThreePageState createState() => _NewCMCStepThreePageState(); @@ -38,7 +41,7 @@ class _NewCMCStepThreePageState extends State { String? projectDropdownValue; late List projectsList = []; - late HospitalsModel selectedHospital; + HospitalsModel? selectedHospital; final GlobalKey projectDropdownKey = GlobalKey(); bool isLocationSelected = false; @@ -55,12 +58,15 @@ class _NewCMCStepThreePageState extends State { markers.add( Marker( markerId: MarkerId( - widget.cmcInsertPresOrderRequestModel.latitude.hashCode.toString(), + widget.cmcInsertPresOrderRequestModel.latitude.hashCode + .toString(), ), - position: LatLng(widget.cmcInsertPresOrderRequestModel.latitude!, widget.cmcInsertPresOrderRequestModel.longitude!)), + position: LatLng(widget.cmcInsertPresOrderRequestModel.latitude!, + widget.cmcInsertPresOrderRequestModel.longitude!)), ); _kGooglePlex = CameraPosition( - target: LatLng(widget.cmcInsertPresOrderRequestModel.latitude!, widget.cmcInsertPresOrderRequestModel.longitude!), + target: LatLng(widget.cmcInsertPresOrderRequestModel.latitude!, + widget.cmcInsertPresOrderRequestModel.longitude!), zoom: 14.4746, ); } @@ -79,7 +85,10 @@ class _NewCMCStepThreePageState extends State { isShowAppBar: true, description: TranslationBase.of(context).infoCMC, imagesInfo: [ - ImagesInfo(imageAr: 'https://hmgwebservices.com/Images/MobileApp/CMC/ar/0.png', imageEn: 'https://hmgwebservices.com/Images/MobileApp/CMC/en/0.png'), + ImagesInfo( + imageAr: 'https://hmgwebservices.com/Images/MobileApp/CMC/ar/0.png', + imageEn: + 'https://hmgwebservices.com/Images/MobileApp/CMC/en/0.png'), ], appBarTitle: TranslationBase.of(context).comprehensiveMedicalCheckup, showNewAppBar: true, @@ -120,7 +129,8 @@ class _NewCMCStepThreePageState extends State { width: double.infinity, decoration: containerRadius(Colors.white, 12), margin: EdgeInsets.only(top: 12), - padding: EdgeInsets.only(left: 0, right: 0, top: 0, bottom: 12), + padding: EdgeInsets.only( + left: 0, right: 0, top: 0, bottom: 12), child: Row( children: [ Flexible( @@ -140,23 +150,34 @@ class _NewCMCStepThreePageState extends State { child: DropdownButtonHideUnderline( child: DropdownButton( key: projectDropdownKey, - hint: new Text(TranslationBase.of(context).selectHospital), + hint: new Text( + TranslationBase.of(context) + .selectHospital), value: selectedHospital, iconSize: 0, isExpanded: true, - style: TextStyle(fontSize: 14, letterSpacing: -0.56, color: Colors.black), + style: TextStyle( + fontSize: 14, + letterSpacing: -0.56, + color: Colors.black), items: projectsList.map((item) { - return new DropdownMenuItem( + return new DropdownMenuItem< + HospitalsModel>( value: item, child: new Text(item.name!), ); }).toList(), - onChanged: (newValue) async { + onChanged: + (HospitalsModel? newValue) async { setState(() { selectedHospital = newValue!; - projectDropdownValue = newValue.mainProjectID.toString(); + projectDropdownValue = newValue + .mainProjectID + .toString(); isLocationSelected = true; - widget.cmcInsertPresOrderRequestModel.projectID = newValue.mainProjectID; + widget.cmcInsertPresOrderRequestModel + .projectID = + newValue.mainProjectID; // getDoctorsList(context); }); }, @@ -180,7 +201,8 @@ class _NewCMCStepThreePageState extends State { children: [ Container( height: 200, - decoration: containerColorRadiusBorder(Colors.white, 12, Colors.grey), + decoration: containerColorRadiusBorder( + Colors.white, 12, Colors.grey), clipBehavior: Clip.antiAlias, child: Container( decoration: cardRadius(12), @@ -188,13 +210,17 @@ class _NewCMCStepThreePageState extends State { margin: const EdgeInsets.all(0), child: Image.network( "https://maps.googleapis.com/maps/api/staticmap?center=" + - selectedHospital.latitude.toString() + + selectedHospital!.latitude + .toString() + "," + - selectedHospital.longitude.toString() + + selectedHospital!.longitude + .toString() + "&zoom=16&size=600x300&maptype=roadmap&markers=color:red%7C" + - selectedHospital.latitude.toString() + + selectedHospital!.latitude + .toString() + "," + - selectedHospital.longitude.toString() + + selectedHospital!.longitude + .toString() + "&key=AIzaSyCyDbWUM9d_sBUGIE8PcuShzPaqO08NSC8", width: double.infinity, height: double.infinity, @@ -214,11 +240,16 @@ class _NewCMCStepThreePageState extends State { decoration: cardRadius(1000), margin: EdgeInsets.all(12), child: Padding( - padding: const EdgeInsets.only(left: 12, right: 12, top: 6, bottom: 6), + padding: const EdgeInsets.only( + left: 12, + right: 12, + top: 6, + bottom: 6), child: Row( children: [ Padding( - padding: const EdgeInsets.all(3.0), + padding: + const EdgeInsets.all(3.0), child: SvgPicture.asset( "assets/images/new/direction.svg", width: 13, @@ -227,7 +258,8 @@ class _NewCMCStepThreePageState extends State { ), mWidth(6), Text( - TranslationBase.of(context).getDirections, + TranslationBase.of(context) + .getDirections, style: TextStyle( color: Colors.black, fontSize: 11, @@ -259,15 +291,22 @@ class _NewCMCStepThreePageState extends State { ), ), ...List.generate( - widget.cmcInsertPresOrderRequestModel.patientERCMCInsertServicesList!.length, + widget.cmcInsertPresOrderRequestModel + .patientERCMCInsertServicesList!.length, (index) => Container( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( projectViewModel.isArabic - ? widget.cmcInsertPresOrderRequestModel.patientERCMCInsertServicesList![index].selectedServiceNameAR! - : widget.cmcInsertPresOrderRequestModel.patientERCMCInsertServicesList![index].selectedServiceName!, + ? widget + .cmcInsertPresOrderRequestModel + .patientERCMCInsertServicesList![index] + .selectedServiceNameAR! + : widget + .cmcInsertPresOrderRequestModel + .patientERCMCInsertServicesList![index] + .selectedServiceName!, style: TextStyle( fontSize: 12, fontWeight: FontWeight.bold, @@ -301,7 +340,8 @@ class _NewCMCStepThreePageState extends State { ? null : () async { GifLoaderDialogUtils.showMyDialog(context); - String requestId = await widget.model.insertCMCOrderRC(order: widget.cmcInsertPresOrderRequestModel); + String requestId = await widget.model.insertCMCOrderRC( + order: widget.cmcInsertPresOrderRequestModel); GifLoaderDialogUtils.hideDialog(context); if (widget.model.state != ViewState.ErrorLocal) { showCMCConfirmDialog( @@ -353,9 +393,11 @@ class _NewCMCStepThreePageState extends State { getDirections() { if (isLocationSelected) { - MapsLauncher.launchCoordinates(double.parse(selectedHospital.latitude!), double.parse(selectedHospital.longitude!), selectedHospital.name); + MapsLauncher.launchCoordinates(double.parse(selectedHospital!.latitude!), + double.parse(selectedHospital!.longitude!), selectedHospital!.name); } else { - Utils.showErrorToast("Please select address from the dropdown menu to get directions"); + Utils.showErrorToast( + "Please select address from the dropdown menu to get directions"); } } diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_tow_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_tow_page.dart index 5c422118..dfccb11b 100644 --- a/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_tow_page.dart +++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_tow_page.dart @@ -30,20 +30,32 @@ class NewHomeHealthCareStepTowPage extends StatefulWidget { final Function(PickResult)? onPick; final double? latitude; final double? longitude; - final PatientERInsertPresOrderRequestModel? patientERInsertPresOrderRequestModel; + final PatientERInsertPresOrderRequestModel? + patientERInsertPresOrderRequestModel; final Function? changePageViewIndex; final HomeHealthCareViewModel model; - const NewHomeHealthCareStepTowPage({Key? key, this.onPick, this.latitude, this.longitude, this.patientERInsertPresOrderRequestModel, this.changePageViewIndex, required this.model}) : super(key: key); + const NewHomeHealthCareStepTowPage( + {Key? key, + this.onPick, + this.latitude, + this.longitude, + this.patientERInsertPresOrderRequestModel, + this.changePageViewIndex, + required this.model}) + : super(key: key); @override - _NewHomeHealthCareStepTowPageState createState() => _NewHomeHealthCareStepTowPageState(); + _NewHomeHealthCareStepTowPageState createState() => + _NewHomeHealthCareStepTowPageState(); } -class _NewHomeHealthCareStepTowPageState extends State { +class _NewHomeHealthCareStepTowPageState + extends State { double latitude = 0; double longitude = 0; - late AddressInfo _selectedAddress; + AddressInfo? _selectedAddress; + bool showCurrentLocation = false; final Set markers = new Set(); late AppMap appMap; @@ -76,7 +88,8 @@ class _NewHomeHealthCareStepTowPageState extends State confirmSelectLocationDialog(widget.model.addressesList), + onTap: () => + confirmSelectLocationDialog(widget.model.addressesList), child: Container( padding: EdgeInsets.all(8), width: double.infinity, @@ -200,9 +216,9 @@ class _NewHomeHealthCareStepTowPageState extends State with TickerProviderStateMixin { await getFamilyFiles(); this.user = data; - setState(() {}); + //setState(() {}); } } @@ -578,10 +578,11 @@ class _MyFamily extends State with TickerProviderStateMixin { approvedRecordsList.add(element); } }); + GifLoaderDialogUtils.hideDialog(context); } catch (ex) { familySharedRecords = GetAllSharedRecordsByStatusResponse(getAllSharedRecordsByStatusList: []); } - GifLoaderDialogUtils.hideDialog(context); + } Future getUserViewRequest() async { diff --git a/lib/pages/ErService/EdOnline/EdOnlineSelectedHospitalPage.dart b/lib/pages/ErService/EdOnline/EdOnlineSelectedHospitalPage.dart index 76f77823..be28d40b 100644 --- a/lib/pages/ErService/EdOnline/EdOnlineSelectedHospitalPage.dart +++ b/lib/pages/ErService/EdOnline/EdOnlineSelectedHospitalPage.dart @@ -17,14 +17,20 @@ class EdOnlineSelectedHospitalPage extends StatefulWidget { final Function changePageViewIndex; TriageInformationRequest triageInformationRequest; - EdOnlineSelectedHospitalPage({Key? key, required this.changePageViewIndex, required this.triageInformationRequest}) : super(key: key); + EdOnlineSelectedHospitalPage( + {Key? key, + required this.changePageViewIndex, + required this.triageInformationRequest}) + : super(key: key); @override - _EdOnlineSelectedHospitalPageState createState() => _EdOnlineSelectedHospitalPageState(); + _EdOnlineSelectedHospitalPageState createState() => + _EdOnlineSelectedHospitalPageState(); } -class _EdOnlineSelectedHospitalPageState extends State { - late HospitalsModel selectedProject; +class _EdOnlineSelectedHospitalPageState + extends State { + HospitalsModel? selectedProject; final GlobalKey locationDropdownKey = GlobalKey(); late ProjectViewModel projectViewModel; int _selected = 0; @@ -42,13 +48,18 @@ class _EdOnlineSelectedHospitalPageState extends State( + child: DropdownButton( onTap: () { print("Clicked"); }, @@ -77,21 +88,39 @@ class _EdOnlineSelectedHospitalPageState extends State( + style: TextStyle( + fontSize: 14, + letterSpacing: -0.56, + color: Colors.black, + fontFamily: projectViewModel.isArabic + ? 'Cairo' + : 'Poppins'), + items: + model.hospitals.map((HospitalsModel item) { + return DropdownMenuItem( value: item, child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [Text(item.name! + " - " + item.distanceInKilometers.toString() + " " + TranslationBase.of(context).km_)], + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text(item.name! + + " - " + + item.distanceInKilometers + .toString() + + " " + + TranslationBase.of(context).km_) + ], ), ); }).toList(), - onChanged: (newValue) { - setState(() { - selectedProject = newValue!; - widget.triageInformationRequest.selectedHospital = selectedProject; - }); + onChanged: (HospitalsModel? newValue) { + if (newValue != null) { + setState(() { + selectedProject = newValue; + widget.triageInformationRequest + .selectedHospital = selectedProject; + }); + } }, ), ), @@ -147,7 +176,8 @@ class _EdOnlineSelectedHospitalPageState extends State { child: _getNormalText(TranslationBase.of(context).patientShareToDo), ), Expanded( - child: _getNormalText(model.erPatientShareModel.patientShare!.toStringAsFixed(2) ?? "0", isBold: true), + child: _getNormalText(model.erPatientShareModel!.patientShare!.toStringAsFixed(2) ?? "0", isBold: true), ) ], ), @@ -85,7 +85,7 @@ class _EdPaymentInformationPageState extends State { child: _getNormalText(TranslationBase.of(context).patientTaxToDo), ), Expanded( - child: _getNormalText(model.erPatientShareModel.patientTaxAmount!.toStringAsFixed(2) ?? "0", isBold: true), + child: _getNormalText(model.erPatientShareModel!.patientTaxAmount!.toStringAsFixed(2) ?? "0", isBold: true), ) ], ), @@ -100,7 +100,7 @@ class _EdPaymentInformationPageState extends State { child: _getNormalText(TranslationBase.of(context).patientShareTotalToDo), ), Expanded( - child: _getNormalText(model.erPatientShareModel.patientShareWithTax!.toStringAsFixed(2) ?? "0", isBold: true), + child: _getNormalText(model.erPatientShareModel!.patientShareWithTax!.toStringAsFixed(2) ?? "0", isBold: true), ) ], ), @@ -132,14 +132,14 @@ class _EdPaymentInformationPageState extends State { Navigator.push(context, FadePage(page: PaymentMethod( onSelectedMethod: (String metohd, [String? selectedInstallmentPlan]) { setState(() {}); - }, patientShare: model.erPatientShareModel.patientShareWithTax!, isFromAdvancePayment: true, + }, patientShare: model.erPatientShareModel!.patientShareWithTax!, isFromAdvancePayment: true, ))).then( (value) { print(value); if (value != null) { AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList(); appo.projectID = widget.selectedHospital!.iD; - openPayment(value[0], projectViewModel.user, model.erPatientShareModel.patientShareWithTax!, appo); + openPayment(value[0], projectViewModel.user, model.erPatientShareModel!.patientShareWithTax!, appo); } }, ); diff --git a/lib/pages/ErService/rapid-response-team/rrt-main-screen.dart b/lib/pages/ErService/rapid-response-team/rrt-main-screen.dart index f5c041df..891acf45 100644 --- a/lib/pages/ErService/rapid-response-team/rrt-main-screen.dart +++ b/lib/pages/ErService/rapid-response-team/rrt-main-screen.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/rrt-view-model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; +import 'package:diplomaticquarterapp/models/rrt/service_price.dart'; import 'package:diplomaticquarterapp/pages/ErService/rapid-response-team/rrt-logs-page.dart'; import 'package:diplomaticquarterapp/pages/ErService/rapid-response-team/rrt-request-page.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; @@ -127,7 +128,7 @@ class RRTMainScreenState extends State with SingleTickerProviderS onPageChanged: onPageChanged, controller: pageController, children: [ - RRTRequestPage(servicePrice: viewModel.rrtServiceData.servicePrice!, pendingOrders: viewModel.rrtServiceData.pendingOrders, viewModel: viewModel), + RRTRequestPage(servicePrice: viewModel.rrtServiceData.servicePrice, pendingOrders: viewModel.rrtServiceData.pendingOrders, viewModel: viewModel), RRTLogPage(orders: viewModel.rrtServiceData.completedOrders), ], ); diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index 3c320d76..4072f102 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -169,7 +169,7 @@ class _SendFeedbackPageState extends State { ), ), SizedBox(height: 12), - if (appointHistory != null && messageType == MessageType.ComplaintOnAnAppointment) + if (appointHistory != null && appointHistory?.doctorTitle!=null && messageType == MessageType.ComplaintOnAnAppointment) InkWell( onTap: () { setState(() { @@ -178,15 +178,15 @@ class _SendFeedbackPageState extends State { }, child: DoctorCard( onTap: null, - isInOutPatient: appointHistory!.isInOutPatient!, - name: appointHistory!.doctorTitle! + " " + appointHistory!.doctorNameObj!, + isInOutPatient: appointHistory?.isInOutPatient, + name: "${appointHistory?.doctorTitle} ${appointHistory!.doctorNameObj}", // billNo: _appointmentResult.invoiceNo, profileUrl: appointHistory!.doctorImageURL, subName: appointHistory!.projectName, isLiveCareAppointment: appointHistory!.isLiveCareAppointment, - date: DateUtil.convertStringToDate(appointHistory!.appointmentDate!), - rating: appointHistory!.actualDoctorRate! + 0.0, - appointmentTime: appointHistory!.startTime!.substring(0, 5), + date: DateUtil.convertStringToDate(appointHistory?.appointmentDate) , + rating: appointHistory?.actualDoctorRate!=null ? appointHistory?.actualDoctorRate +0.0 : 0.0, + appointmentTime: appointHistory?.startTime?.substring(0, 5), ), ), SizedBox(height: 12), diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index a14a3bf5..24baa3d5 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -218,32 +218,35 @@ class _LandingPageState extends State with WidgetsBindingObserver { return; } } +Future.delayed(Duration(seconds: 0),(){ + setState(() { - setState(() { - if (tab == 5) { - IS_VOICE_COMMAND_CLOSED = false; - triggerRobot(); + if (tab == 5) { + IS_VOICE_COMMAND_CLOSED = false; + triggerRobot(); - // pageController.jumpToPage(tab); + // pageController.jumpToPage(tab); + } else { + if (currentTab > 0 && tab == 2) { + pageController.jumpToPage(0); + currentTab = tab; + } else if (tab != 0) { + // if (tab == 4 && projectViewModel.isLogin && model.count == 0) { + // AppToast.showErrorToast(message: TranslationBase.of(context).noBookedAppo); + // } else { + pageController.jumpToPage(tab); + currentTab = tab; + // } } else { - if (currentTab > 0 && tab == 2) { - pageController.jumpToPage(0); - currentTab = tab; - } else if (tab != 0) { - // if (tab == 4 && projectViewModel.isLogin && model.count == 0) { - // AppToast.showErrorToast(message: TranslationBase.of(context).noBookedAppo); - // } else { - pageController.jumpToPage(tab); - currentTab = tab; - // } - } else { - pageController.jumpToPage(tab); - currentTab = tab; - } - - // currentTab = tab; + pageController.jumpToPage(tab); + currentTab = tab; } - }); + + // currentTab = tab; + } + }); + +}); projectViewModel.analytics.bottomTabNavigation.log(tabIndex: tab, isLoggedIn: projectViewModel.isLogin); } @@ -644,7 +647,8 @@ class _LandingPageState extends State with WidgetsBindingObserver { authService.getDashboard().then((value) => { setState(() { if (value != null) { - notificationCount = value['List_PatientDashboard'].isNotEmpty ?? value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 + notificationCount = value['List_PatientDashboard'].isNotEmpty ?? + value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); model.setState(model.count, true, notificationCount); diff --git a/lib/pages/livecare/incoming_call.dart b/lib/pages/livecare/incoming_call.dart index 1cb1293f..49bc7e97 100644 --- a/lib/pages/livecare/incoming_call.dart +++ b/lib/pages/livecare/incoming_call.dart @@ -59,11 +59,7 @@ class _IncomingCallState extends State with SingleTickerProviderSt return AppScaffold( isShowAppBar: false, isShowDecPage: false, - body: FutureBuilder( - future: _initializeControllerFuture, - builder: (context, snapshot) { - // if (snapshot.connectionState == ConnectionState.done) { - return Stack( + body: Stack( alignment: FractionalOffset.center, children: [ // new Positioned.fill( @@ -192,12 +188,10 @@ class _IncomingCallState extends State with SingleTickerProviderSt ), ), // ), - ], - ); + ] // } else { // return const Center(child: CircularProgressIndicator()); // } - }, ), ); } diff --git a/lib/pages/livecare/widgets/clinic_list.dart b/lib/pages/livecare/widgets/clinic_list.dart index b525dde1..7c4cadc2 100644 --- a/lib/pages/livecare/widgets/clinic_list.dart +++ b/lib/pages/livecare/widgets/clinic_list.dart @@ -328,11 +328,11 @@ class _clinic_listState extends State { }); } - openPayment(List paymentMethod, AuthenticatedUser authenticatedUser, num amount, AppoitmentAllHistoryResultList appo) { + openPayment(List paymentMethod, AuthenticatedUser authenticatedUser, num amount, AppoitmentAllHistoryResultList appo) { browser = new MyInAppBrowser(onExitCallback: onBrowserExit, appo: appo, onLoadStartCallback: onBrowserLoadStart, context: context); - selectedPaymentMethod = paymentMethod[0]; - selectedInstallmentPlan = paymentMethod[1]; + selectedPaymentMethod = paymentMethod[0]!; + selectedInstallmentPlan = paymentMethod[1]!; this.amount = amount.toString(); browser.openPaymentBrowser( @@ -341,7 +341,7 @@ class _clinic_listState extends State { widget.isPharmacyLiveCare ? widget.pharmacyLiveCareQRCode : Utils.getAppointmentTransID(appo.projectID!, appo.clinicID!, appo.appointmentNo!), "12", authenticatedUser.emailAddress!, - paymentMethod[0], + paymentMethod[0]!, authenticatedUser.patientType, authenticatedUser.firstName!, authenticatedUser.patientID, diff --git a/lib/uitl/date_uitl.dart b/lib/uitl/date_uitl.dart index b97c00a5..074d2910 100644 --- a/lib/uitl/date_uitl.dart +++ b/lib/uitl/date_uitl.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; class DateUtil { /// convert String To Date function /// [date] String we want to convert - static DateTime convertStringToDate(String date) { + static DateTime convertStringToDate(String? date) { if (date != null) { const start = "/Date("; const end = "+0300)"; diff --git a/lib/uitl/location_util.dart b/lib/uitl/location_util.dart index ed7a4030..eb9dd72f 100644 --- a/lib/uitl/location_util.dart +++ b/lib/uitl/location_util.dart @@ -128,8 +128,8 @@ class LocationUtils { heading: 0.0, speed: 0.0, speedAccuracy: 1, - altitudeAccuracy: 0, - headingAccuracy: 0, + // altitudeAccuracy: 0, + // headingAccuracy: 0, // Added by Aamir ), ); diff --git a/lib/uitl/push-notification-handler.dart b/lib/uitl/push-notification-handler.dart index 7ee12788..9e8864ba 100644 --- a/lib/uitl/push-notification-handler.dart +++ b/lib/uitl/push-notification-handler.dart @@ -54,8 +54,20 @@ Future backgroundMessageHandler(dynamic message) async { )); } } -// Push Notification Background <--| + +@pragma('vm:entry-point') +Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { + // await FirebaseMessaging.initializeApp(options: DefaultFirebaseOptions.currentPlatform); + // await setupFlutterNotifications(); + // showFlutterNotification(message); + // If you're going to use other Firebase services in the background, such as Firestore, + // make sure you call `initializeApp` before using other Firebase services. + print('Handling a background message ${message.messageId}'); +} + +// Push Notification Background <--| +late AndroidNotificationChannel channel; RemoteMessage toFirebaseRemoteMessage(h_push.RemoteMessage message) { final payload_data = jsonDecode(message.data!); final fire_message = RemoteMessage( @@ -167,6 +179,7 @@ class PushNotificationHandler { init(BuildContext context) async { this.context = context; + // VoIP Callbacks voIPKit.getVoIPToken().then((value) { print('🎈 example: getVoIPToken: $value'); @@ -231,6 +244,22 @@ class PushNotificationHandler { // if (Platform.isAndroid && (!await FlutterHmsGmsAvailability.isHmsAvailable)) { if (Platform.isAndroid) { try { + + + channel = const AndroidNotificationChannel( + 'high_importance_channel', // id + 'High Importance Notifications', // title + description: + 'This channel is used for important notifications.', // description + importance: Importance.high, + ); + await flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + AndroidFlutterLocalNotificationsPlugin>() + ?.createNotificationChannel(channel); + + + if (!(await Utils.isGoogleServicesAvailable())) { h_push.Push.enableLogger(); final result = await h_push.Push.setAutoInitEnabled(true); @@ -298,6 +327,8 @@ class PushNotificationHandler { newMessage(message); }); + // FirebaseMessaging.onBackgroundMessage(backgroundMessageHandler); + FirebaseMessaging.instance.onTokenRefresh.listen((fcm_token) { print("Push Notification onTokenRefresh: " + fcm_token); onToken(fcm_token); @@ -308,7 +339,7 @@ class PushNotificationHandler { onToken(token!); }); - FirebaseMessaging.onBackgroundMessage(backgroundMessageHandler); + FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler); } newMessage(RemoteMessage remoteMessage) async { diff --git a/lib/widgets/app_map/google_huawei_map.dart b/lib/widgets/app_map/google_huawei_map.dart index 35d3a24a..fdd7c739 100644 --- a/lib/widgets/app_map/google_huawei_map.dart +++ b/lib/widgets/app_map/google_huawei_map.dart @@ -14,21 +14,25 @@ class AppMap extends StatefulWidget { late Map initialCamera; AppMapState? _state; - late Function? onMapCreated; - late Function? onCameraIdle; + Function? onMapCreated; + Function? onCameraIdle; - AppMap(this.initialCamera, { required this.onCameraMove, this.onMapCreated, this.onCameraIdle}); + AppMap(this.initialCamera, + {required this.onCameraMove, this.onMapCreated, this.onCameraIdle}); @override State createState() => _state = AppMapState(); - moveTo({ required googlemap.CameraPosition cameraPostion}) { + moveTo({required googlemap.CameraPosition cameraPostion}) { if (_state!.isHuawei) { final cameraJson = cameraPostion.toMap(); final camera = hmsMap.CameraPosition.fromMap(cameraJson); - _state?._huaweiMapController.animateCamera(hmsMap.CameraUpdate.newCameraPosition(camera)); + _state?._huaweiMapController + .animateCamera(hmsMap.CameraUpdate.newCameraPosition(camera)); } else { - _state?.googleMapController.animateCamera(googlemap.CameraUpdate.newCameraPosition(cameraPostion as googlemap.CameraPosition)); + _state?.googleMapController.animateCamera( + googlemap.CameraUpdate.newCameraPosition( + cameraPostion as googlemap.CameraPosition)); } } } @@ -36,7 +40,8 @@ class AppMap extends StatefulWidget { class AppMapState extends State { bool isHuawei = false; - Completer _googleMapControllerComp = Completer(); + Completer _googleMapControllerComp = + Completer(); late googlemap.GoogleMapController googleMapController; Completer _huaweiMapControllerComp = Completer(); @@ -74,7 +79,8 @@ class AppMapState extends State { zoomControlsEnabled: true, myLocationButtonEnabled: true, myLocationEnabled: true, - initialCameraPosition: googlemap.CameraPosition.fromMap!(widget.initialCamera)!, + initialCameraPosition: + googlemap.CameraPosition.fromMap!(widget.initialCamera)!, onCameraMove: (camera) { widget.onCameraMove; }, @@ -83,9 +89,9 @@ class AppMapState extends State { _googleMapControllerComp.complete(controller); widget.onMapCreated!(); }, - onCameraIdle: () { + onCameraIdle: () { print("onCameraIdle"); - widget.onCameraIdle!(); + widget.onCameraIdle; }, ); } @@ -96,7 +102,8 @@ class AppMapState extends State { zoomControlsEnabled: false, myLocationButtonEnabled: true, myLocationEnabled: true, - initialCameraPosition: hmsMap.CameraPosition.fromMap(widget.initialCamera), + initialCameraPosition: + hmsMap.CameraPosition.fromMap(widget.initialCamera), onCameraMove: (camera) => widget.onCameraMove!, onMapCreated: (controller) { _huaweiMapController = controller; diff --git a/lib/widgets/data_display/medical/doctor_card.dart b/lib/widgets/data_display/medical/doctor_card.dart index 82aeda33..c9c43293 100644 --- a/lib/widgets/data_display/medical/doctor_card.dart +++ b/lib/widgets/data_display/medical/doctor_card.dart @@ -95,9 +95,9 @@ class DoctorCard extends StatelessWidget { color: Utils.isHMCProject(projectViewModel, projectID) ? Color(0xff3FACC8) - : isLiveCareAppointment! + : isLiveCareAppointment !=null && isLiveCareAppointment==true ? Color(0xff2E303A) - : !isInOutPatient! + : isInOutPatient !=null && isInOutPatient ==false ? Color(0xffD02127) : Color(0xffa9a089), borderRadius: BorderRadius.only( @@ -112,9 +112,9 @@ class DoctorCard extends StatelessWidget { ? RotatedBox( quarterTurns: 3, child: Text( - isLiveCareAppointment! + isLiveCareAppointment !=null && isLiveCareAppointment==true ? TranslationBase.of(context).liveCare.toLowerCase().capitalizeFirstofEach - : !isInOutPatient! + : isInOutPatient!=null && isInOutPatient ==false ? TranslationBase.of(context).inPatient.toLowerCase().capitalizeFirstofEach : TranslationBase.of(context).outpatient.toLowerCase().capitalizeFirstofEach, style: TextStyle(fontSize: 10, fontWeight: FontWeight.w700, color: Colors.white, letterSpacing: -0.2, height: 16 / 10), @@ -183,7 +183,7 @@ class DoctorCard extends StatelessWidget { mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center, children: [ - MyRichText(isSortByClinic! ? TranslationBase.of(context).branch : TranslationBase.of(context).clinic + ":", subName!, projectViewModel!.isArabic), + MyRichText(isSortByClinic! ? TranslationBase.of(context).branch : TranslationBase.of(context).clinic + ":", subName ??"", projectViewModel!.isArabic), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ diff --git a/lib/widgets/in_app_browser/InAppBrowser.dart b/lib/widgets/in_app_browser/InAppBrowser.dart index ab822a4c..089e9eee 100644 --- a/lib/widgets/in_app_browser/InAppBrowser.dart +++ b/lib/widgets/in_app_browser/InAppBrowser.dart @@ -35,9 +35,9 @@ class MyInAppBrowser extends InAppBrowser { // static String APPLE_PAY_PAYFORT_URL = 'https://hmgwebservices.com/PayFortWebLive/PayFortApi/MakeApplePayRequest'; // Payfort Payment Gateway URL LIVE static String APPLE_PAY_PAYFORT_URL = 'https://hmgwebservices.com/PayFortWebLive/PayFortApi/MakeApplePayRequest'; // Payfort Payment Gateway URL UAT - // static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT + static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT - static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE + // static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE // static String SERVICE_URL = 'https://uat.hmgwebservices.com/payfortforvidaplus/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL UAT VIDA PLUS diff --git a/lib/widgets/others/app_scaffold_widget.dart b/lib/widgets/others/app_scaffold_widget.dart index 5d5ced79..883e2de3 100644 --- a/lib/widgets/others/app_scaffold_widget.dart +++ b/lib/widgets/others/app_scaffold_widget.dart @@ -230,10 +230,10 @@ class _AppScaffoldState extends State { appBar: isUserNotLogin ? null : widget.isShowPharmacyAppbar - ? PreferredSize(preferredSize: Size.fromHeight(70), child: pharmacyAppbar()) + ? PreferredSize(preferredSize: Size.fromHeight(60), child: pharmacyAppbar()) : (widget.showNewAppBar ? PreferredSize( - preferredSize: Size.fromHeight(70), + preferredSize: Size.fromHeight(60), child: NewAppBarWidget( title: widget.appBarTitle, showTitle: widget.showNewAppBarTitle, @@ -248,7 +248,7 @@ class _AppScaffoldState extends State { )) : (widget.isShowAppBar ? widget.customAppBar != null - ? PreferredSize(preferredSize: Size.fromHeight(70), child: widget.customAppBar!) + ? PreferredSize(preferredSize: Size.fromHeight(60), child: widget.customAppBar!) : appBar = AppBarWidget( appBarTitle: widget.appBarTitle, appBarIcons: widget.appBarIcons,