HMS Core & LiveCare Schedule fixes

merge-update-with-lab-changes
haroon amjad 3 years ago
parent 58a6dc6a6f
commit 21cf9da900

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

@ -408,14 +408,14 @@ var UPDATE_COVID_QUESTIONNAIRE = 'Services/Doctors.svc/REST/COVID19_Questionnar
var CHANNEL = 3; var CHANNEL = 3;
var GENERAL_ID = 'Cs2020@2016\$2958'; var GENERAL_ID = 'Cs2020@2016\$2958';
var IP_ADDRESS = '10.20.10.20'; var IP_ADDRESS = '10.20.10.20';
var VERSION_ID = 8.8; var VERSION_ID = 8.9;
var SETUP_ID = '91877'; var SETUP_ID = '91877';
var LANGUAGE = 2; var LANGUAGE = 2;
// var PATIENT_OUT_SA = 0; // var PATIENT_OUT_SA = 0;
var SESSION_ID = 'TMRhVmkGhOsvamErw'; var SESSION_ID = 'TMRhVmkGhOsvamErw';
var IS_DENTAL_ALLOWED_BACKEND = false; var IS_DENTAL_ALLOWED_BACKEND = false;
// var PATIENT_TYPE = 1; var PATIENT_TYPE = 1;
// var PATIENT_TYPE_ID = 1; var PATIENT_TYPE_ID = 1;
var DEVICE_TOKEN = ""; var DEVICE_TOKEN = "";
var IS_VOICE_COMMAND_CLOSED = true; var IS_VOICE_COMMAND_CLOSED = true;
var IS_TEXT_COMPLETED = false; var IS_TEXT_COMPLETED = false;

@ -14,7 +14,6 @@ import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -95,21 +94,21 @@ class BaseAppClient {
? body['PatientType'] ? body['PatientType']
: user['PatientType'] != null : user['PatientType'] != null
? user['PatientType'] ? user['PatientType']
: null : PATIENT_TYPE
: null; : PATIENT_TYPE;
body['PatientTypeID'] = body.containsKey('PatientTypeID') body['PatientTypeID'] = body.containsKey('PatientTypeID')
? body['PatientTypeID'] != null ? body['PatientTypeID'] != null
? body['PatientTypeID'] ? body['PatientTypeID']
: user['PatientType'] != null : user['PatientType'] != null
? user['PatientType'] ? user['PatientType']
: null : PATIENT_TYPE_ID
: null; : PATIENT_TYPE_ID;
if (user != null) { if (user != null) {
body['TokenID'] = body['TokenID'] != null ? body['TokenID'] : token; body['TokenID'] = body['TokenID'] != null ? body['TokenID'] : token;
body['PatientID'] = body['PatientID'] != null ? body['PatientID'] : user['PatientID']; body['PatientID'] = body['PatientID'] != null ? body['PatientID'] : user['PatientID'];
body['PatientOutSA'] = user['OutSA'];
body['PatientOutSA'] = body.containsKey('PatientOutSA') body['PatientOutSA'] = body.containsKey('PatientOutSA')
? body['PatientOutSA'] != null ? body['PatientOutSA'] != null
? body['PatientOutSA'] ? body['PatientOutSA']

@ -20,11 +20,13 @@ import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.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:geocoding/geocoding.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart';
import 'package:huawei_hmsavailability/huawei_hmsavailability.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class CMCLocationPage extends StatefulWidget { class CMCLocationPage extends StatefulWidget {
@ -53,9 +55,11 @@ class _CMCLocationPageState extends State<CMCLocationPage> {
); );
LatLng currentPostion; LatLng currentPostion;
AppSharedPreferences sharedPref = AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
HmsApiAvailability hmsApiAvailability;
@override @override
void initState() { void initState() {
hmsApiAvailability = HmsApiAvailability();
checkIsHuawei(); checkIsHuawei();
appMap = AppMap( appMap = AppMap(
@ -87,7 +91,9 @@ class _CMCLocationPageState extends State<CMCLocationPage> {
} }
checkIsHuawei() async { checkIsHuawei() async {
isHuawei = await FlutterHmsGmsAvailability.isHmsAvailable; await hmsApiAvailability.isHMSAvailable().then((value) {
isHuawei = value == 0 ? true : false;
});
print(isHuawei); print(isHuawei);
setState(() {}); setState(() {});
} }

@ -18,11 +18,12 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.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:geocoding/geocoding.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart';
import 'package:huawei_hmsavailability/huawei_hmsavailability.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class LocationPage extends StatefulWidget { class LocationPage extends StatefulWidget {
@ -56,9 +57,11 @@ class _LocationPageState extends State<LocationPage> {
// Completer<GoogleMapController> mapController = Completer(); // Completer<GoogleMapController> mapController = Completer();
Placemark selectedPlace; Placemark selectedPlace;
HmsApiAvailability hmsApiAvailability;
@override @override
void initState() { void initState() {
hmsApiAvailability = HmsApiAvailability();
latitude = widget.latitude; latitude = widget.latitude;
longitude = widget.longitude; longitude = widget.longitude;
checkIsHuawei(); checkIsHuawei();
@ -223,7 +226,12 @@ class _LocationPageState extends State<LocationPage> {
} }
checkIsHuawei() async { 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); print(isHuawei);
setState(() {}); setState(() {});
} }

@ -432,7 +432,7 @@ class _AnicllaryOrdersState extends State<AnicllaryOrdersDetails> with SingleTic
selectedPaymentMethod = method; selectedPaymentMethod = method;
print(selectedPaymentMethod); print(selectedPaymentMethod);
openPayment(selectedPaymentMethod, projectViewModel.authenticatedUserObject.user, double.parse(getTotalValue()), null); openPayment(selectedPaymentMethod, projectViewModel.authenticatedUserObject.user, double.parse(getTotalValue()), null);
}, }, patientShare: double.parse(getTotalValue()),
)); ));
} }

@ -300,7 +300,11 @@ class _BookSuccessState extends State<BookSuccess> {
appo.serviceID = widget.patientShareResponse.serviceID; appo.serviceID = widget.patientShareResponse.serviceID;
appo.isLiveCareAppointment = widget.patientShareResponse.isLiveCareAppointment; appo.isLiveCareAppointment = widget.patientShareResponse.isLiveCareAppointment;
appo.doctorID = widget.patientShareResponse.doctorID; 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)), 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<BookSuccess> {
appo.clinicName = widget.patientShareResponse.clinicName; appo.clinicName = widget.patientShareResponse.clinicName;
appo.projectName = widget.patientShareResponse.projectName; appo.projectName = widget.patientShareResponse.projectName;
appo.appointmentNo = widget.patientShareResponse.appointmentNo; appo.appointmentNo = widget.patientShareResponse.appointmentNo;
appo.isLiveCareAppointment = widget.patientShareResponse.isLiveCareAppointment;
Navigator.push( Navigator.push(
context, context,

@ -239,7 +239,8 @@ class _SearchByClinicState extends State<SearchByClinic> {
Navigator.push(context, FadePage(page: LaserClinic())); Navigator.push(context, FadePage(page: LaserClinic()));
} else if (!isDentalSelectedAndSupported()) { } else if (!isDentalSelectedAndSupported()) {
projectDropdownValue = ""; projectDropdownValue = "";
getDoctorsList(context); if(!nearestAppo)
getDoctorsList(context);
} else {} } else {}
}); });
projectViewModel.analytics.appointment.book_appointment_select_clinic(appointment_type: 'regular', clinic: clincs.clinicDescription); projectViewModel.analytics.appointment.book_appointment_select_clinic(appointment_type: 'regular', clinic: clincs.clinicDescription);

@ -965,7 +965,7 @@ class _ToDoState extends State<ToDo> with SingleTickerProviderStateMixin {
service.markAppointmentForTamara(appo.projectID, appo.appointmentNo.toString()).then((res) { service.markAppointmentForTamara(appo.projectID, appo.appointmentNo.toString()).then((res) {
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
if (appo.isLiveCareAppointment) if (appo.isLiveCareAppointment)
addVIDARequestInsert("0", tamaraOrderID, apptData); addVIDARequestInsert("0", tamaraOrderID, appo);
else else
getAppoQR(context, appo); getAppoQR(context, appo);
// autoGenerateInvoiceTamara(appo); // autoGenerateInvoiceTamara(appo);
@ -1053,7 +1053,7 @@ class _ToDoState extends State<ToDo> with SingleTickerProviderStateMixin {
service.addAdvancedNumberRequest(advanceNumber, paymentReference, appointmentID, context).then((res) { service.addAdvancedNumberRequest(advanceNumber, paymentReference, appointmentID, context).then((res) {
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
if (appo.isLiveCareAppointment) if (appo.isLiveCareAppointment)
addVIDARequestInsert(advanceNumber, paymentReference, apptData); addVIDARequestInsert(advanceNumber, paymentReference, appo);
else else
getAppoQR(context, appo); getAppoQR(context, appo);
}).catchError((err) { }).catchError((err) {
@ -1062,12 +1062,12 @@ class _ToDoState extends State<ToDo> with SingleTickerProviderStateMixin {
}); });
} }
addVIDARequestInsert(String advanceNumber, String paymentReference, dynamic apptData) { addVIDARequestInsert(String advanceNumber, String paymentReference, AppoitmentAllHistoryResultList appo) {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
DoctorsListService service = new DoctorsListService(); 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); GifLoaderDialogUtils.hideDialog(context);
print(res); getPatientAppointmentHistory();
}).catchError((err) { }).catchError((err) {
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
print(err); print(err);

@ -73,7 +73,7 @@ class _ScheduleClinicCardState extends State<ScheduleClinicCard> {
children: <Widget>[ children: <Widget>[
Container( Container(
child: Text( child: Text(
widget.clinicsHaveScheduleList.clinicDesc, widget.clinicsHaveScheduleList.clinicDesc ?? "",
style: TextStyle( style: TextStyle(
fontSize: 16.0, fontSize: 16.0,
color: Colors.black, color: Colors.black,

@ -308,7 +308,7 @@ class _clinic_listState extends State<ClinicList> {
}); });
} }
openPayment(List<String> paymentMethod, AuthenticatedUser authenticatedUser, double amount, AppoitmentAllHistoryResultList appo) { openPayment(List<String> paymentMethod, AuthenticatedUser authenticatedUser, num amount, AppoitmentAllHistoryResultList appo) {
browser = new MyInAppBrowser(onExitCallback: onBrowserExit, appo: appo, onLoadStartCallback: onBrowserLoadStart, context: context); browser = new MyInAppBrowser(onExitCallback: onBrowserExit, appo: appo, onLoadStartCallback: onBrowserLoadStart, context: context);
selectedPaymentMethod = paymentMethod[0]; selectedPaymentMethod = paymentMethod[0];

@ -22,7 +22,6 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart'; import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart'; import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:pay/pay.dart'; import 'package:pay/pay.dart';
@ -212,7 +211,7 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
TranslationBase.of(context).confirm.toUpperCase(), TranslationBase.of(context).confirm.toUpperCase(),
() { () {
if (widget.advanceModel.fileNumber == projectViewModel.user.patientID.toString()) { 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 { } else {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
model.sendActivationCodeForAdvancePayment(patientID: int.parse(widget.advanceModel.fileNumber), projectID: widget.advanceModel.hospitalsModel.iD).then((value) { model.sendActivationCodeForAdvancePayment(patientID: int.parse(widget.advanceModel.fileNumber), projectID: widget.advanceModel.hospitalsModel.iD).then((value) {

@ -27,12 +27,13 @@ import 'PrescriptionIDeliveryAddressPage.dart';
class PrescriptionItemsPage extends StatelessWidget { class PrescriptionItemsPage extends StatelessWidget {
final Prescriptions prescriptions; final Prescriptions prescriptions;
ProjectViewModel projectViewModel;
PrescriptionItemsPage({Key key, this.prescriptions}); PrescriptionItemsPage({Key key, this.prescriptions});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context); projectViewModel = Provider.of(context);
return BaseView<PrescriptionsViewModel>( return BaseView<PrescriptionsViewModel>(
onModelReady: (model) => model.getPrescriptionReport(prescriptions: prescriptions), onModelReady: (model) => model.getPrescriptionReport(prescriptions: prescriptions),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
@ -416,7 +417,7 @@ class PrescriptionItemsPage extends StatelessWidget {
showDialog( showDialog(
context: context, context: context,
builder: (cxt) => ConfirmSendEmailDialog( builder: (cxt) => ConfirmSendEmailDialog(
email: model.user.emailAddress, email: projectViewModel.user.emailAddress,
onTapSendEmail: () { onTapSendEmail: () {
model.sendPrescriptionEmail( model.sendPrescriptionEmail(
appointmentDate: prescriptions.appointmentDate, appointmentDate: prescriptions.appointmentDate,

@ -990,6 +990,7 @@ class DoctorsListService extends BaseService {
"PatientType": authUser.patientType, "PatientType": authUser.patientType,
"DeviceToken": await sharedPref.getString(PUSH_TOKEN), "DeviceToken": await sharedPref.getString(PUSH_TOKEN),
"VoipToken": await sharedPref.getString(ONESIGNAL_APNS_TOKEN), "VoipToken": await sharedPref.getString(ONESIGNAL_APNS_TOKEN),
"IsVoip": Platform.isIOS ? true : false
}; };
// request.DeviceToken = this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false); // request.DeviceToken = this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false);

@ -264,7 +264,8 @@ class FamilyFilesProvider with ChangeNotifier {
request['PatientIdentificationID'] = ''; request['PatientIdentificationID'] = '';
request['IsSilentLogin'] = true; request['IsSilentLogin'] = true;
request['PatientID'] = switchUser.responseID; //['PatientID']; 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['activationCode'] = '0000';
request['isRegister'] = false; request['isRegister'] = false;
} }

@ -6,9 +6,9 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.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/fused_location_provider_client.dart';
import 'package:huawei_location/location/location.dart'; import 'package:huawei_location/location/location.dart';
import 'package:huawei_location/location/location_callback.dart'; import 'package:huawei_location/location/location_callback.dart';
@ -22,11 +22,12 @@ class LocationUtils {
bool isShowConfirmDialog; bool isShowConfirmDialog;
BuildContext context; 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 { void getCurrentLocation({Function(LatLng) callBack}) async {
if (Platform.isAndroid && (await FlutterHmsGmsAvailability.isHmsAvailable)) { if (Platform.isAndroid && isHuawei) {
_getHMSCurrentLocation(callBack); _getHMSCurrentLocation(callBack);
} else { } else {
Geolocator.isLocationServiceEnabled().then((value) { Geolocator.isLocationServiceEnabled().then((value) {

@ -16,9 +16,10 @@ import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:firebase_messaging/firebase_messaging.dart' as fir; import 'package:firebase_messaging/firebase_messaging.dart' as fir;
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.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/call_state_type.dart';
import 'package:flutter_ios_voip_kit/flutter_ios_voip_kit.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 'package:huawei_push/huawei_push.dart' as h_push;
import 'app_shared_preferences.dart'; import 'app_shared_preferences.dart';
@ -113,6 +114,7 @@ class PushNotificationHandler {
final BuildContext context; final BuildContext context;
static PushNotificationHandler _instance; static PushNotificationHandler _instance;
final voIPKit = FlutterIOSVoIPKit.instance; final voIPKit = FlutterIOSVoIPKit.instance;
HmsApiAvailability hmsApiAvailability;
Timer timeOutTimer; Timer timeOutTimer;
bool isTalking = false; bool isTalking = false;
@ -158,6 +160,7 @@ class PushNotificationHandler {
} }
init() async { init() async {
hmsApiAvailability = new HmsApiAvailability();
// VoIP Callbacks // VoIP Callbacks
voIPKit.getVoIPToken().then((value) { voIPKit.getVoIPToken().then((value) {
print('🎈 example: getVoIPToken: $value'); print('🎈 example: getVoIPToken: $value');
@ -217,9 +220,14 @@ class PushNotificationHandler {
}); });
}; };
if (Platform.isAndroid && (!await FlutterHmsGmsAvailability.isHmsAvailable)) { // if (Platform.isAndroid && (!await FlutterHmsGmsAvailability.isHmsAvailable)) {
final fcmToken = await FirebaseMessaging.instance.getToken(); if (Platform.isAndroid) {
if (fcmToken != null) onToken(fcmToken); await hmsApiAvailability.isHMSAvailable().then((value) async {
if(value != 0) {
final fcmToken = await FirebaseMessaging.instance.getToken();
if (fcmToken != null) onToken(fcmToken);
}
});
} }
if (Platform.isIOS) { if (Platform.isIOS) {
@ -227,27 +235,33 @@ class PushNotificationHandler {
if (permission.authorizationStatus == AuthorizationStatus.denied) return; 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(); await hmsApiAvailability.isHMSAvailable().then((value) async {
final result = await h_push.Push.setAutoInitEnabled(true); if(value == 0) {
h_push.Push.enableLogger();
final result = await h_push.Push.setAutoInitEnabled(true);
h_push.Push.onNotificationOpenedApp.listen((message) { h_push.Push.onNotificationOpenedApp.listen((message) {
newMessage(toFirebaseRemoteMessage(message)); newMessage(toFirebaseRemoteMessage(message));
}, onError: (e) => print(e.toString())); }, onError: (e) => print(e.toString()));
h_push.Push.onMessageReceivedStream.listen((message) { h_push.Push.onMessageReceivedStream.listen((message) {
newMessage(toFirebaseRemoteMessage(message)); newMessage(toFirebaseRemoteMessage(message));
}, onError: (e) => print(e.toString())); }, onError: (e) => print(e.toString()));
h_push.Push.getTokenStream.listen((token) { h_push.Push.getTokenStream.listen((token) {
onToken(token); onToken(token);
}, onError: (e) => print(e.toString())); }, onError: (e) => print(e.toString()));
await h_push.Push.getToken(''); await h_push.Push.getToken('');
h_push.Push.registerBackgroundMessageHandler(backgroundMessageHandler); h_push.Push.registerBackgroundMessageHandler(backgroundMessageHandler);
} else { }
});
// } else {
// 'Android GMS or iOS' (Handle Firebase Messaging Streams // 'Android GMS or iOS' (Handle Firebase Messaging Streams
FirebaseMessaging.instance.getInitialMessage().then((RemoteMessage message) async { FirebaseMessaging.instance.getInitialMessage().then((RemoteMessage message) async {
@ -293,7 +307,7 @@ class PushNotificationHandler {
}); });
FirebaseMessaging.onBackgroundMessage(backgroundMessageHandler); FirebaseMessaging.onBackgroundMessage(backgroundMessageHandler);
} // }
} }
subscribeFCMTopic() async { subscribeFCMTopic() async {

@ -44,7 +44,8 @@ import 'package:diplomaticquarterapp/widgets/dialogs/covid_consent_dialog.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.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:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
@ -827,11 +828,14 @@ extension IndexedIterable<E> on Iterable<E> {
} }
} }
openAppStore({String androidPackageName, String iOSAppID}) async { openAppStore({String androidPackageName, String iOSAppID, bool isHuawei = false}) async {
if (Platform.isAndroid) { if (Platform.isAndroid) {
assert(!(androidPackageName == null), "Should have valid value in androidPackageName parameter"); assert(!(androidPackageName == null), "Should have valid value in androidPackageName parameter");
if ((await FlutterHmsGmsAvailability.isGmsAvailable)) launch("market://details?id=com.ejada.hmg"); if (isHuawei) {
if ((await FlutterHmsGmsAvailability.isHmsAvailable)) launch("appmarket://details?id=com.ejada.hmg"); launch("appmarket://details?id=com.ejada.hmg");
} else {
launch("market://details?id=com.ejada.hmg");
}
} else if (Platform.isIOS) { } else if (Platform.isIOS) {
assert((iOSAppID == null), "Should have valid value in iOSAppID parameter"); assert((iOSAppID == null), "Should have valid value in iOSAppID parameter");
launch("https://itunes.apple.com/kr/app/apple-store/$iOSAppID)"); launch("https://itunes.apple.com/kr/app/apple-store/$iOSAppID)");

@ -3,8 +3,9 @@ import 'dart:async';
import 'package:diplomaticquarterapp/services/pharmacy_services/writeReview_service.dart'; import 'package:diplomaticquarterapp/services/pharmacy_services/writeReview_service.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.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:google_maps_flutter/google_maps_flutter.dart';
import 'package:huawei_hmsavailability/huawei_hmsavailability.dart';
import 'package:huawei_map/map.dart' as hmsMap; import 'package:huawei_map/map.dart' as hmsMap;
class AppMap extends StatefulWidget { class AppMap extends StatefulWidget {
@ -40,13 +41,19 @@ class AppMapState extends State<AppMap> {
Completer<hmsMap.HuaweiMapController> _huaweiMapControllerComp = Completer(); Completer<hmsMap.HuaweiMapController> _huaweiMapControllerComp = Completer();
hmsMap.HuaweiMapController _huaweiMapController; hmsMap.HuaweiMapController _huaweiMapController;
HmsApiAvailability hmsApiAvailability;
checkIsHuawei() async { checkIsHuawei() async {
isHuawei = await FlutterHmsGmsAvailability.isHmsAvailable; await hmsApiAvailability.isHMSAvailable().then((value) {
isHuawei = value == 0 ? true : false;
});
print(isHuawei);
setState(() {}); setState(() {});
} }
@override @override
void initState() { void initState() {
hmsApiAvailability = HmsApiAvailability();
checkIsHuawei(); checkIsHuawei();
} }

@ -145,7 +145,7 @@ class MyInAppBrowser extends InAppBrowser {
this.openUrlRequest(urlRequest: URLRequest(url: Uri.parse(full_url)), options: _InAppBrowserOptions); 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, AuthenticatedUser authenticatedUser, InAppBrowser browser, bool isLiveCareAppo, var servID, var LiveServID,
[var appoDate, var appoNo, var clinicID, var doctorID, var installments]) async { [var appoDate, var appoNo, var clinicID, var doctorID, var installments]) async {
this.browser = browser; this.browser = browser;
@ -266,7 +266,7 @@ class MyInAppBrowser extends InAppBrowser {
this.browser.openUrlRequest(urlRequest: URLRequest(url: Uri.parse(url)), options: _InAppBrowserOptions); this.browser.openUrlRequest(urlRequest: URLRequest(url: Uri.parse(url)), options: _InAppBrowserOptions);
} }
Future<String> generateURL(double amount, String orderDesc, String transactionID, String projId, String emailId, String paymentMethod, dynamic patientType, String patientName, dynamic patientID, Future<String> 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, AuthenticatedUser authUser, bool isLiveCareAppo, var servID, var LiveServID,
[var appoDate, var appoNo, var clinicID, var doctorID, var patientData]) async { [var appoDate, var appoNo, var clinicID, var doctorID, var patientData]) async {
getDeviceToken(); getDeviceToken();
@ -323,8 +323,8 @@ class MyInAppBrowser extends InAppBrowser {
return 'data:text/html;base64,' + base64Str; return 'data:text/html;base64,' + base64Str;
} }
Future<String> generateTamaraURL(double amount, String orderDesc, String transactionID, String projId, String emailId, String paymentMethod, dynamic patientType, String patientName, Future<String> generateTamaraURL(num amount, String orderDesc, String transactionID, String projId, String emailId, String paymentMethod, dynamic patientType, String patientName, dynamic patientID,
dynamic patientID, AuthenticatedUser authUser, bool isLiveCareAppo, var servID, var LiveServID, AuthenticatedUser authUser, bool isLiveCareAppo, var servID, var LiveServID,
[var appoDate, var appoNo, var clinicID, var doctorID, var patientData, var installments]) async { [var appoDate, var appoNo, var clinicID, var doctorID, var patientData, var installments]) async {
getDeviceToken(); getDeviceToken();
String currentLanguageID = await getLanguageID() == 'ar' ? 'AR' : 'EN'; 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('PROJECT_ID_VALUE', projId);
form = form.replaceFirst('PAYMENT_OPTION_VALUE', paymentMethod); form = form.replaceFirst('PAYMENT_OPTION_VALUE', paymentMethod);
form = form.replaceFirst('LANG_VALUE', currentLanguageID); 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('INSTALLMENTS_VALUE', installments);
form = form.replaceFirst('CUSTNATIONALID_VALUE', authUser.patientIdentificationNo); form = form.replaceFirst('CUSTNATIONALID_VALUE', authUser.patientIdentificationNo);

@ -9,10 +9,11 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.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:geocoding/geocoding.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart';
import 'package:huawei_hmsavailability/huawei_hmsavailability.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class PickupLocationFromMap extends StatefulWidget { class PickupLocationFromMap extends StatefulWidget {
@ -38,13 +39,16 @@ class _PickupLocationFromMapState extends State<PickupLocationFromMap> {
double latitude = 0; double latitude = 0;
double longitude = 0; double longitude = 0;
HmsApiAvailability hmsApiAvailability;
static CameraPosition kGooglePlex = CameraPosition( static CameraPosition kGooglePlex = CameraPosition(
target: LatLng(37.42796133580664, -122.085749655962), target: LatLng(24.126613,45.081137),
zoom: 14.4746, zoom: 14.4746,
); );
@override @override
void initState() { void initState() {
hmsApiAvailability = HmsApiAvailability();
checkIsHuawei(); checkIsHuawei();
appMap = AppMap( appMap = AppMap(
@ -68,7 +72,12 @@ class _PickupLocationFromMapState extends State<PickupLocationFromMap> {
} }
checkIsHuawei() async { 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); print(isHuawei);
setState(() {}); setState(() {});
} }

@ -1,7 +1,7 @@
name: diplomaticquarterapp name: diplomaticquarterapp
description: A new Flutter application. description: A new Flutter application.
version: 4.4.99+404099 version: 4.4.996+4040996
environment: environment:
sdk: ">=2.7.0 <3.0.0" sdk: ">=2.7.0 <3.0.0"
@ -100,7 +100,7 @@ dependencies:
location: ^4.3.0 location: ^4.3.0
# Qr code Scanner # Qr code Scanner
# barcode_scan_fix: ^1.0.2 # barcode_scan_fix: ^1.0.2
barcode_scan2: ^4.1.4 barcode_scan2: ^4.2.1
# Rating Stars # Rating Stars
rating_bar: ^0.2.0 rating_bar: ^0.2.0
@ -169,7 +169,7 @@ dependencies:
wifi: ^0.1.5 wifi: ^0.1.5
vibration: ^1.7.3 vibration: ^1.7.3
flutter_nfc_kit: ^3.2.0 flutter_nfc_kit: ^3.3.1
speech_to_text: speech_to_text:
path: speech_to_text path: speech_to_text
@ -190,7 +190,8 @@ dependencies:
carousel_slider: ^4.0.0 carousel_slider: ^4.0.0
flutter_material_pickers: ^3.1.2 flutter_material_pickers: ^3.1.2
flutter_staggered_grid_view: ^0.4.1 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 huawei_location: ^6.0.0+302
# Marker Animation # Marker Animation
@ -202,6 +203,7 @@ dependencies:
sms_retriever: ^1.0.0 sms_retriever: ^1.0.0
sms_otp_auto_verify: ^2.1.0 sms_otp_auto_verify: ^2.1.0
flutter_ios_voip_kit: ^0.0.5 flutter_ios_voip_kit: ^0.0.5
# firebase_core: 1.12.0
dependency_overrides: dependency_overrides:
provider : ^5.0.0 provider : ^5.0.0

Loading…
Cancel
Save