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