diff --git a/assets/images/svg/tamara.svg b/assets/images/svg/tamara.svg index acc21074..714a8083 100644 --- a/assets/images/svg/tamara.svg +++ b/assets/images/svg/tamara.svg @@ -1,4 +1 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/lib/config/config.dart b/lib/config/config.dart index efd74c46..384d6f9f 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -408,14 +408,14 @@ var UPDATE_COVID_QUESTIONNAIRE = 'Services/Doctors.svc/REST/COVID19_Questionnar var CHANNEL = 3; var GENERAL_ID = 'Cs2020@2016\$2958'; var IP_ADDRESS = '10.20.10.20'; -var VERSION_ID = 8.8; +var VERSION_ID = 8.9; var SETUP_ID = '91877'; var LANGUAGE = 2; // var PATIENT_OUT_SA = 0; var SESSION_ID = 'TMRhVmkGhOsvamErw'; var IS_DENTAL_ALLOWED_BACKEND = false; -// var PATIENT_TYPE = 1; -// var PATIENT_TYPE_ID = 1; +var PATIENT_TYPE = 1; +var PATIENT_TYPE_ID = 1; var DEVICE_TOKEN = ""; var IS_VOICE_COMMAND_CLOSED = true; var IS_TEXT_COMPLETED = false; diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index 6e86cbbc..74e217d0 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -14,7 +14,6 @@ import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart' import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:provider/provider.dart'; @@ -95,21 +94,21 @@ class BaseAppClient { ? body['PatientType'] : user['PatientType'] != null ? user['PatientType'] - : null - : null; + : PATIENT_TYPE + : PATIENT_TYPE; body['PatientTypeID'] = body.containsKey('PatientTypeID') ? body['PatientTypeID'] != null ? body['PatientTypeID'] : user['PatientType'] != null ? user['PatientType'] - : null - : null; + : PATIENT_TYPE_ID + : PATIENT_TYPE_ID; if (user != null) { body['TokenID'] = body['TokenID'] != null ? body['TokenID'] : token; body['PatientID'] = body['PatientID'] != null ? body['PatientID'] : user['PatientID']; - body['PatientOutSA'] = user['OutSA']; + body['PatientOutSA'] = body.containsKey('PatientOutSA') ? body['PatientOutSA'] != null ? body['PatientOutSA'] diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/cmc_location_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/cmc_location_page.dart index 0dbc255d..fbef90e6 100644 --- a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/cmc_location_page.dart +++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/cmc_location_page.dart @@ -20,11 +20,13 @@ import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; + +// import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; import 'package:geocoding/geocoding.dart'; import 'package:geolocator/geolocator.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart'; +import 'package:huawei_hmsavailability/huawei_hmsavailability.dart'; import 'package:provider/provider.dart'; class CMCLocationPage extends StatefulWidget { @@ -53,9 +55,11 @@ class _CMCLocationPageState extends State { ); LatLng currentPostion; AppSharedPreferences sharedPref = AppSharedPreferences(); + HmsApiAvailability hmsApiAvailability; @override void initState() { + hmsApiAvailability = HmsApiAvailability(); checkIsHuawei(); appMap = AppMap( @@ -87,7 +91,9 @@ class _CMCLocationPageState extends State { } checkIsHuawei() async { - isHuawei = await FlutterHmsGmsAvailability.isHmsAvailable; + await hmsApiAvailability.isHMSAvailable().then((value) { + isHuawei = value == 0 ? true : false; + }); print(isHuawei); setState(() {}); } diff --git a/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/location_page.dart b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/location_page.dart index 81f2d03f..c0554578 100644 --- a/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/location_page.dart +++ b/lib/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/location_page.dart @@ -18,11 +18,12 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; +// import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; import 'package:geocoding/geocoding.dart'; import 'package:geolocator/geolocator.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart'; +import 'package:huawei_hmsavailability/huawei_hmsavailability.dart'; import 'package:provider/provider.dart'; class LocationPage extends StatefulWidget { @@ -56,9 +57,11 @@ class _LocationPageState extends State { // Completer mapController = Completer(); Placemark selectedPlace; + HmsApiAvailability hmsApiAvailability; @override void initState() { + hmsApiAvailability = HmsApiAvailability(); latitude = widget.latitude; longitude = widget.longitude; checkIsHuawei(); @@ -223,7 +226,12 @@ class _LocationPageState extends State { } checkIsHuawei() async { - isHuawei = await FlutterHmsGmsAvailability.isHmsAvailable; + // isHuawei = await FlutterHmsGmsAvailability.isHmsAvailable; + // print(isHuawei); + // setState(() {}); + await hmsApiAvailability.isHMSAvailable().then((value) { + isHuawei = value == 0 ? true : false; + }); print(isHuawei); setState(() {}); } diff --git a/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart b/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart index b6a54120..616a5d7d 100644 --- a/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart +++ b/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart @@ -432,7 +432,7 @@ class _AnicllaryOrdersState extends State with SingleTic selectedPaymentMethod = method; print(selectedPaymentMethod); openPayment(selectedPaymentMethod, projectViewModel.authenticatedUserObject.user, double.parse(getTotalValue()), null); - }, + }, patientShare: double.parse(getTotalValue()), )); } diff --git a/lib/pages/BookAppointment/BookSuccess.dart b/lib/pages/BookAppointment/BookSuccess.dart index 552ea2b1..3b0b804b 100644 --- a/lib/pages/BookAppointment/BookSuccess.dart +++ b/lib/pages/BookAppointment/BookSuccess.dart @@ -300,7 +300,11 @@ class _BookSuccessState extends State { appo.serviceID = widget.patientShareResponse.serviceID; appo.isLiveCareAppointment = widget.patientShareResponse.isLiveCareAppointment; appo.doctorID = widget.patientShareResponse.doctorID; - confirmAppointment(appo); + if (appo.isLiveCareAppointment) { + navigateToHome(context); + } else { + confirmAppointment(appo); + } }, child: Text(widget.patientShareResponse.isLiveCareAppointment ? TranslationBase.of(context).confirmLiveCare : TranslationBase.of(context).confirm, style: TextStyle(fontSize: 16.0)), ), @@ -539,6 +543,7 @@ class _BookSuccessState extends State { appo.clinicName = widget.patientShareResponse.clinicName; appo.projectName = widget.patientShareResponse.projectName; appo.appointmentNo = widget.patientShareResponse.appointmentNo; + appo.isLiveCareAppointment = widget.patientShareResponse.isLiveCareAppointment; Navigator.push( context, diff --git a/lib/pages/BookAppointment/components/SearchByClinic.dart b/lib/pages/BookAppointment/components/SearchByClinic.dart index 0c7a9546..7371eac6 100644 --- a/lib/pages/BookAppointment/components/SearchByClinic.dart +++ b/lib/pages/BookAppointment/components/SearchByClinic.dart @@ -239,7 +239,8 @@ class _SearchByClinicState extends State { Navigator.push(context, FadePage(page: LaserClinic())); } else if (!isDentalSelectedAndSupported()) { projectDropdownValue = ""; - getDoctorsList(context); + if(!nearestAppo) + getDoctorsList(context); } else {} }); projectViewModel.analytics.appointment.book_appointment_select_clinic(appointment_type: 'regular', clinic: clincs.clinicDescription); diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart index d7a06604..910d05b2 100644 --- a/lib/pages/ToDoList/ToDo.dart +++ b/lib/pages/ToDoList/ToDo.dart @@ -965,7 +965,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { service.markAppointmentForTamara(appo.projectID, appo.appointmentNo.toString()).then((res) { GifLoaderDialogUtils.hideDialog(context); if (appo.isLiveCareAppointment) - addVIDARequestInsert("0", tamaraOrderID, apptData); + addVIDARequestInsert("0", tamaraOrderID, appo); else getAppoQR(context, appo); // autoGenerateInvoiceTamara(appo); @@ -1053,7 +1053,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { service.addAdvancedNumberRequest(advanceNumber, paymentReference, appointmentID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (appo.isLiveCareAppointment) - addVIDARequestInsert(advanceNumber, paymentReference, apptData); + addVIDARequestInsert(advanceNumber, paymentReference, appo); else getAppoQR(context, appo); }).catchError((err) { @@ -1062,12 +1062,12 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { }); } - addVIDARequestInsert(String advanceNumber, String paymentReference, dynamic apptData) { + addVIDARequestInsert(String advanceNumber, String paymentReference, AppoitmentAllHistoryResultList appo) { GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); - service.addVIDARequest(advanceNumber, paymentReference, apptData, context).then((res) { + service.insertVIDARequest(appo.appointmentNo, appo.clinicID, appo.projectID, appo.serviceID, appo.doctorID, appo.appointmentDate, context).then((res) { GifLoaderDialogUtils.hideDialog(context); - print(res); + getPatientAppointmentHistory(); }).catchError((err) { GifLoaderDialogUtils.hideDialog(context); print(err); diff --git a/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart b/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart index 7884b37e..76b83d2f 100644 --- a/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart +++ b/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart @@ -73,7 +73,7 @@ class _ScheduleClinicCardState extends State { children: [ Container( child: Text( - widget.clinicsHaveScheduleList.clinicDesc, + widget.clinicsHaveScheduleList.clinicDesc ?? "", style: TextStyle( fontSize: 16.0, color: Colors.black, diff --git a/lib/pages/livecare/widgets/clinic_list.dart b/lib/pages/livecare/widgets/clinic_list.dart index e4599fd3..5e797980 100644 --- a/lib/pages/livecare/widgets/clinic_list.dart +++ b/lib/pages/livecare/widgets/clinic_list.dart @@ -308,7 +308,7 @@ class _clinic_listState extends State { }); } - openPayment(List paymentMethod, AuthenticatedUser authenticatedUser, double 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]; diff --git a/lib/pages/medical/balance/confirm_payment_page.dart b/lib/pages/medical/balance/confirm_payment_page.dart index 4dbf6b8f..34b4bb57 100644 --- a/lib/pages/medical/balance/confirm_payment_page.dart +++ b/lib/pages/medical/balance/confirm_payment_page.dart @@ -22,7 +22,6 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart'; -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:pay/pay.dart'; @@ -212,7 +211,7 @@ class _ConfirmPaymentPageState extends State { TranslationBase.of(context).confirm.toUpperCase(), () { if (widget.advanceModel.fileNumber == projectViewModel.user.patientID.toString()) { - openPayment(widget.selectedPaymentMethod, widget.authenticatedUser, double.parse(widget.advanceModel.amount), null); + openPayment(widget.selectedPaymentMethod, widget.authenticatedUser, double.parse(widget.advanceModel.amount), null); } else { GifLoaderDialogUtils.showMyDialog(context); model.sendActivationCodeForAdvancePayment(patientID: int.parse(widget.advanceModel.fileNumber), projectID: widget.advanceModel.hospitalsModel.iD).then((value) { diff --git a/lib/pages/medical/prescriptions/prescription_items_page.dart b/lib/pages/medical/prescriptions/prescription_items_page.dart index 94cd6969..c772dc52 100644 --- a/lib/pages/medical/prescriptions/prescription_items_page.dart +++ b/lib/pages/medical/prescriptions/prescription_items_page.dart @@ -27,12 +27,13 @@ import 'PrescriptionIDeliveryAddressPage.dart'; class PrescriptionItemsPage extends StatelessWidget { final Prescriptions prescriptions; + ProjectViewModel projectViewModel; PrescriptionItemsPage({Key key, this.prescriptions}); @override Widget build(BuildContext context) { - ProjectViewModel projectViewModel = Provider.of(context); + projectViewModel = Provider.of(context); return BaseView( onModelReady: (model) => model.getPrescriptionReport(prescriptions: prescriptions), builder: (_, model, widget) => AppScaffold( @@ -416,7 +417,7 @@ class PrescriptionItemsPage extends StatelessWidget { showDialog( context: context, builder: (cxt) => ConfirmSendEmailDialog( - email: model.user.emailAddress, + email: projectViewModel.user.emailAddress, onTapSendEmail: () { model.sendPrescriptionEmail( appointmentDate: prescriptions.appointmentDate, diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index 03174df8..9a0fbfea 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -990,6 +990,7 @@ class DoctorsListService extends BaseService { "PatientType": authUser.patientType, "DeviceToken": await sharedPref.getString(PUSH_TOKEN), "VoipToken": await sharedPref.getString(ONESIGNAL_APNS_TOKEN), + "IsVoip": Platform.isIOS ? true : false }; // request.DeviceToken = this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false); diff --git a/lib/services/family_files/family_files_provider.dart b/lib/services/family_files/family_files_provider.dart index 2907153f..7a41f6b9 100644 --- a/lib/services/family_files/family_files_provider.dart +++ b/lib/services/family_files/family_files_provider.dart @@ -264,7 +264,8 @@ class FamilyFilesProvider with ChangeNotifier { request['PatientIdentificationID'] = ''; request['IsSilentLogin'] = true; request['PatientID'] = switchUser.responseID; //['PatientID']; - request['ZipCode'] = currentUser.outSA == 1 ? "971" : "966"; + request['ZipCode'] = switchUser.familyRegionID != null ? switchUser.familyRegionID == 1 ? "966" : "971" : "966"; + // request['ZipCode'] = currentUser.outSA == 1 ? "971" : "966"; request['activationCode'] = '0000'; request['isRegister'] = false; } diff --git a/lib/uitl/location_util.dart b/lib/uitl/location_util.dart index 4c744f52..437a5819 100644 --- a/lib/uitl/location_util.dart +++ b/lib/uitl/location_util.dart @@ -6,9 +6,9 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; import 'package:flutter/cupertino.dart'; -import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; import 'package:geolocator/geolocator.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:huawei_hmsavailability/huawei_hmsavailability.dart'; import 'package:huawei_location/location/fused_location_provider_client.dart'; import 'package:huawei_location/location/location.dart'; import 'package:huawei_location/location/location_callback.dart'; @@ -22,11 +22,12 @@ class LocationUtils { bool isShowConfirmDialog; BuildContext context; + bool isHuawei; - LocationUtils({@required this.isShowConfirmDialog, @required this.context}); + LocationUtils({@required this.isShowConfirmDialog, @required this.context, @required this.isHuawei = false}); void getCurrentLocation({Function(LatLng) callBack}) async { - if (Platform.isAndroid && (await FlutterHmsGmsAvailability.isHmsAvailable)) { + if (Platform.isAndroid && isHuawei) { _getHMSCurrentLocation(callBack); } else { Geolocator.isLocationServiceEnabled().then((value) { diff --git a/lib/uitl/push-notification-handler.dart b/lib/uitl/push-notification-handler.dart index 28571187..34d8eb2c 100644 --- a/lib/uitl/push-notification-handler.dart +++ b/lib/uitl/push-notification-handler.dart @@ -16,9 +16,10 @@ import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart' as fir; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; +// import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; import 'package:flutter_ios_voip_kit/call_state_type.dart'; import 'package:flutter_ios_voip_kit/flutter_ios_voip_kit.dart'; +import 'package:huawei_hmsavailability/huawei_hmsavailability.dart'; import 'package:huawei_push/huawei_push.dart' as h_push; import 'app_shared_preferences.dart'; @@ -113,6 +114,7 @@ class PushNotificationHandler { final BuildContext context; static PushNotificationHandler _instance; final voIPKit = FlutterIOSVoIPKit.instance; + HmsApiAvailability hmsApiAvailability; Timer timeOutTimer; bool isTalking = false; @@ -158,6 +160,7 @@ class PushNotificationHandler { } init() async { + hmsApiAvailability = new HmsApiAvailability(); // VoIP Callbacks voIPKit.getVoIPToken().then((value) { print('🎈 example: getVoIPToken: $value'); @@ -217,9 +220,14 @@ class PushNotificationHandler { }); }; - if (Platform.isAndroid && (!await FlutterHmsGmsAvailability.isHmsAvailable)) { - final fcmToken = await FirebaseMessaging.instance.getToken(); - if (fcmToken != null) onToken(fcmToken); + // if (Platform.isAndroid && (!await FlutterHmsGmsAvailability.isHmsAvailable)) { + if (Platform.isAndroid) { + await hmsApiAvailability.isHMSAvailable().then((value) async { + if(value != 0) { + final fcmToken = await FirebaseMessaging.instance.getToken(); + if (fcmToken != null) onToken(fcmToken); + } + }); } if (Platform.isIOS) { @@ -227,27 +235,33 @@ class PushNotificationHandler { if (permission.authorizationStatus == AuthorizationStatus.denied) return; } - if (Platform.isAndroid && (await FlutterHmsGmsAvailability.isHmsAvailable)) { - // 'Android HMS' (Handle Huawei Push_Kit Streams) + // 'Android HMS' (Handle Huawei Push_Kit Streams) + // if (Platform.isAndroid) { + // if (Platform.isAndroid && (await FlutterHmsGmsAvailability.isHmsAvailable)) { - h_push.Push.enableLogger(); - final result = await h_push.Push.setAutoInitEnabled(true); + await hmsApiAvailability.isHMSAvailable().then((value) async { + if(value == 0) { + h_push.Push.enableLogger(); + final result = await h_push.Push.setAutoInitEnabled(true); - h_push.Push.onNotificationOpenedApp.listen((message) { - newMessage(toFirebaseRemoteMessage(message)); - }, onError: (e) => print(e.toString())); + h_push.Push.onNotificationOpenedApp.listen((message) { + newMessage(toFirebaseRemoteMessage(message)); + }, onError: (e) => print(e.toString())); - h_push.Push.onMessageReceivedStream.listen((message) { - newMessage(toFirebaseRemoteMessage(message)); - }, onError: (e) => print(e.toString())); + h_push.Push.onMessageReceivedStream.listen((message) { + newMessage(toFirebaseRemoteMessage(message)); + }, onError: (e) => print(e.toString())); - h_push.Push.getTokenStream.listen((token) { - onToken(token); - }, onError: (e) => print(e.toString())); - await h_push.Push.getToken(''); + h_push.Push.getTokenStream.listen((token) { + onToken(token); + }, onError: (e) => print(e.toString())); + await h_push.Push.getToken(''); - h_push.Push.registerBackgroundMessageHandler(backgroundMessageHandler); - } else { + h_push.Push.registerBackgroundMessageHandler(backgroundMessageHandler); + } + }); + + // } else { // 'Android GMS or iOS' (Handle Firebase Messaging Streams FirebaseMessaging.instance.getInitialMessage().then((RemoteMessage message) async { @@ -293,7 +307,7 @@ class PushNotificationHandler { }); FirebaseMessaging.onBackgroundMessage(backgroundMessageHandler); - } + // } } subscribeFCMTopic() async { diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index 4fa4057a..6710c6a6 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -44,7 +44,8 @@ import 'package:diplomaticquarterapp/widgets/dialogs/covid_consent_dialog.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; + +// import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -827,11 +828,14 @@ extension IndexedIterable on Iterable { } } -openAppStore({String androidPackageName, String iOSAppID}) async { +openAppStore({String androidPackageName, String iOSAppID, bool isHuawei = false}) async { if (Platform.isAndroid) { assert(!(androidPackageName == null), "Should have valid value in androidPackageName parameter"); - if ((await FlutterHmsGmsAvailability.isGmsAvailable)) launch("market://details?id=com.ejada.hmg"); - if ((await FlutterHmsGmsAvailability.isHmsAvailable)) launch("appmarket://details?id=com.ejada.hmg"); + if (isHuawei) { + launch("appmarket://details?id=com.ejada.hmg"); + } else { + launch("market://details?id=com.ejada.hmg"); + } } else if (Platform.isIOS) { assert((iOSAppID == null), "Should have valid value in iOSAppID parameter"); launch("https://itunes.apple.com/kr/app/apple-store/$iOSAppID)"); diff --git a/lib/widgets/app_map/google_huawei_map.dart b/lib/widgets/app_map/google_huawei_map.dart index 2ff86acd..a0496091 100644 --- a/lib/widgets/app_map/google_huawei_map.dart +++ b/lib/widgets/app_map/google_huawei_map.dart @@ -3,8 +3,9 @@ import 'dart:async'; import 'package:diplomaticquarterapp/services/pharmacy_services/writeReview_service.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; +// import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:huawei_hmsavailability/huawei_hmsavailability.dart'; import 'package:huawei_map/map.dart' as hmsMap; class AppMap extends StatefulWidget { @@ -40,13 +41,19 @@ class AppMapState extends State { Completer _huaweiMapControllerComp = Completer(); hmsMap.HuaweiMapController _huaweiMapController; + HmsApiAvailability hmsApiAvailability; + checkIsHuawei() async { - isHuawei = await FlutterHmsGmsAvailability.isHmsAvailable; + await hmsApiAvailability.isHMSAvailable().then((value) { + isHuawei = value == 0 ? true : false; + }); + print(isHuawei); setState(() {}); } @override void initState() { + hmsApiAvailability = HmsApiAvailability(); checkIsHuawei(); } diff --git a/lib/widgets/in_app_browser/InAppBrowser.dart b/lib/widgets/in_app_browser/InAppBrowser.dart index 1b78d3c0..ece78840 100644 --- a/lib/widgets/in_app_browser/InAppBrowser.dart +++ b/lib/widgets/in_app_browser/InAppBrowser.dart @@ -145,7 +145,7 @@ class MyInAppBrowser extends InAppBrowser { this.openUrlRequest(urlRequest: URLRequest(url: Uri.parse(full_url)), options: _InAppBrowserOptions); } - openPaymentBrowser(double amount, String orderDesc, String transactionID, String projId, String emailId, String paymentMethod, dynamic patientType, String patientName, dynamic patientID, + openPaymentBrowser(num amount, String orderDesc, String transactionID, String projId, String emailId, String paymentMethod, dynamic patientType, String patientName, dynamic patientID, AuthenticatedUser authenticatedUser, InAppBrowser browser, bool isLiveCareAppo, var servID, var LiveServID, [var appoDate, var appoNo, var clinicID, var doctorID, var installments]) async { this.browser = browser; @@ -266,7 +266,7 @@ class MyInAppBrowser extends InAppBrowser { this.browser.openUrlRequest(urlRequest: URLRequest(url: Uri.parse(url)), options: _InAppBrowserOptions); } - Future generateURL(double amount, String orderDesc, String transactionID, String projId, String emailId, String paymentMethod, dynamic patientType, String patientName, dynamic patientID, + Future generateURL(num amount, String orderDesc, String transactionID, String projId, String emailId, String paymentMethod, dynamic patientType, String patientName, dynamic patientID, AuthenticatedUser authUser, bool isLiveCareAppo, var servID, var LiveServID, [var appoDate, var appoNo, var clinicID, var doctorID, var patientData]) async { getDeviceToken(); @@ -323,8 +323,8 @@ class MyInAppBrowser extends InAppBrowser { return 'data:text/html;base64,' + base64Str; } - Future generateTamaraURL(double amount, String orderDesc, String transactionID, String projId, String emailId, String paymentMethod, dynamic patientType, String patientName, - dynamic patientID, AuthenticatedUser authUser, bool isLiveCareAppo, var servID, var LiveServID, + Future generateTamaraURL(num amount, String orderDesc, String transactionID, String projId, String emailId, String paymentMethod, dynamic patientType, String patientName, dynamic patientID, + AuthenticatedUser authUser, bool isLiveCareAppo, var servID, var LiveServID, [var appoDate, var appoNo, var clinicID, var doctorID, var patientData, var installments]) async { getDeviceToken(); String currentLanguageID = await getLanguageID() == 'ar' ? 'AR' : 'EN'; @@ -339,7 +339,7 @@ class MyInAppBrowser extends InAppBrowser { form = form.replaceFirst('PROJECT_ID_VALUE', projId); form = form.replaceFirst('PAYMENT_OPTION_VALUE', paymentMethod); form = form.replaceFirst('LANG_VALUE', currentLanguageID); - form = form.replaceFirst('SERVICE_URL_VALUE', "https://mdlaboratories.com/tamara/Home/Checkout"); + form = form.replaceFirst('SERVICE_URL_VALUE', "https://mdlaboratories.com/tamaralive/Home/Checkout"); form = form.replaceFirst('INSTALLMENTS_VALUE', installments); form = form.replaceFirst('CUSTNATIONALID_VALUE', authUser.patientIdentificationNo); diff --git a/lib/widgets/pickupLocation/PickupLocationFromMap.dart b/lib/widgets/pickupLocation/PickupLocationFromMap.dart index f9bd92d2..e94739fb 100644 --- a/lib/widgets/pickupLocation/PickupLocationFromMap.dart +++ b/lib/widgets/pickupLocation/PickupLocationFromMap.dart @@ -9,10 +9,11 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; +// import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; import 'package:geocoding/geocoding.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart'; +import 'package:huawei_hmsavailability/huawei_hmsavailability.dart'; import 'package:provider/provider.dart'; class PickupLocationFromMap extends StatefulWidget { @@ -38,13 +39,16 @@ class _PickupLocationFromMapState extends State { double latitude = 0; double longitude = 0; + HmsApiAvailability hmsApiAvailability; + static CameraPosition kGooglePlex = CameraPosition( - target: LatLng(37.42796133580664, -122.085749655962), + target: LatLng(24.126613,45.081137), zoom: 14.4746, ); @override void initState() { + hmsApiAvailability = HmsApiAvailability(); checkIsHuawei(); appMap = AppMap( @@ -68,7 +72,12 @@ class _PickupLocationFromMapState extends State { } checkIsHuawei() async { - isHuawei = await FlutterHmsGmsAvailability.isHmsAvailable; + // isHuawei = await FlutterHmsGmsAvailability.isHmsAvailable; + // print(isHuawei); + // setState(() {}); + await hmsApiAvailability.isHMSAvailable().then((value) { + isHuawei = value == 0 ? true : false; + }); print(isHuawei); setState(() {}); } diff --git a/pubspec.yaml b/pubspec.yaml index 6bc27e53..2491ce38 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: diplomaticquarterapp description: A new Flutter application. -version: 4.4.99+404099 +version: 4.4.996+4040996 environment: sdk: ">=2.7.0 <3.0.0" @@ -100,7 +100,7 @@ dependencies: location: ^4.3.0 # Qr code Scanner # barcode_scan_fix: ^1.0.2 - barcode_scan2: ^4.1.4 + barcode_scan2: ^4.2.1 # Rating Stars rating_bar: ^0.2.0 @@ -169,7 +169,7 @@ dependencies: wifi: ^0.1.5 vibration: ^1.7.3 - flutter_nfc_kit: ^3.2.0 + flutter_nfc_kit: ^3.3.1 speech_to_text: path: speech_to_text @@ -190,7 +190,8 @@ dependencies: carousel_slider: ^4.0.0 flutter_material_pickers: ^3.1.2 flutter_staggered_grid_view: ^0.4.1 - flutter_hms_gms_availability: ^2.0.0 +# flutter_hms_gms_availability: ^2.0.0 + huawei_hmsavailability: ^6.6.0+300 huawei_location: ^6.0.0+302 # Marker Animation @@ -202,6 +203,7 @@ dependencies: sms_retriever: ^1.0.0 sms_otp_auto_verify: ^2.1.0 flutter_ios_voip_kit: ^0.0.5 +# firebase_core: 1.12.0 dependency_overrides: provider : ^5.0.0