From 5fb92c78160ee33feca9117c574b6debf2c8537f Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 3 Mar 2021 18:21:13 +0300 Subject: [PATCH 01/59] covid drive-thru --- lib/pages/Covid-DriveThru/covid-payment-details.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pages/Covid-DriveThru/covid-payment-details.dart b/lib/pages/Covid-DriveThru/covid-payment-details.dart index e6c87d0a..edf5e612 100644 --- a/lib/pages/Covid-DriveThru/covid-payment-details.dart +++ b/lib/pages/Covid-DriveThru/covid-payment-details.dart @@ -144,7 +144,7 @@ class _CovidPaymentDetailsState extends State { isAgree = !isAgree; }); }, - activeColor: Colors.blue, + activeColor: Color(0xffB8382C), ), Texts(TranslationBase.of(context) .iAgreeToTheTermsAndConditions), From 12c42506549772e0b8de4e574986acbb60362cbf Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Thu, 11 Mar 2021 13:04:46 +0300 Subject: [PATCH 02/59] home page ereferral fix --- lib/pages/landing/home_page.dart | 64 +++++++++++++++++--------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index c2f96194..11bc0c95 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_mod import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_page.dart'; +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_page.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/all_habib_medical_service_page.dart'; import 'package:diplomaticquarterapp/pages/ContactUs/contact_us_page.dart'; @@ -624,38 +625,41 @@ class _HomePageState extends State { color: Colors.white, ), ), - Container( - child: Center( - child: Padding( - padding: const EdgeInsets.all(15.0), - child: Column( - children: [ - Image.asset( - 'assets/images/ereferral_service_icon.png', - width: 50, - height: 55, - ), - SizedBox( - height: 10, - ), - Texts( - TranslationBase.of(context) - .offersAndPackages, - textAlign: TextAlign.center, - color: Colors.black87, - bold: false, - fontSize: SizeConfig.textMultiplier * 1.7, - ) - ], + InkWell( + onTap: () => Navigator.push(context, FadePage(page: EReferralPage())), + child: Container( + child: Center( + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Column( + children: [ + Image.asset( + 'assets/images/ereferral_service_icon.png', + width: 50, + height: 55, + ), + SizedBox( + height: 10, + ), + Texts( + TranslationBase.of(context) + .offersAndPackages, + textAlign: TextAlign.center, + color: Colors.black87, + bold: false, + fontSize: SizeConfig.textMultiplier * 1.7, + ) + ], + ), ), ), - ), - width: MediaQuery.of(context).size.width * 0.29, - height: MediaQuery.of(context).size.width * 0.4, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(6.0), - color: Colors.white, - )), + width: MediaQuery.of(context).size.width * 0.29, + height: MediaQuery.of(context).size.width * 0.4, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6.0), + color: Colors.white, + )), + ), if (projectViewModel.havePrivilege(60)) Container( width: MediaQuery.of(context).size.width * 0.29, From accc39d972bbdf202aac07e8dfdb63892bb96263 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Tue, 16 Mar 2021 11:45:58 +0300 Subject: [PATCH 03/59] jira bug fixes --- lib/config/config.dart | 8 ++--- lib/config/localized_values.dart | 2 +- .../service/feedback/feedback_service.dart | 5 +-- .../widgets/AppointmentCardView.dart | 2 +- lib/pages/feedback/send_feedback_page.dart | 2 +- .../medical/ask_doctor/request_type.dart | 3 +- .../medical/balance/my_balance_page.dart | 5 ++- .../pharmacyAddress_service.dart | 2 +- lib/uitl/date_uitl.dart | 33 ++++++++++++++++--- 9 files changed, 43 insertions(+), 19 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index 0f8df420..d5e7054a 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -14,12 +14,12 @@ const BASE_URL = 'https://uat.hmgwebservices.com/'; // const BASE_URL = 'https://hmgwebservices.com/'; // Pharmacy UAT URLs -// const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; -// const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; +const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; +const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; // Pharmacy Production URLs -const BASE_PHARMACY_URL = 'https://mdlaboratories.com/exacartapi/api/'; -const PHARMACY_BASE_URL = 'https://mdlaboratories.com/exacartapi/api/'; +// const BASE_PHARMACY_URL = 'https://mdlaboratories.com/exacartapi/api/'; +// const PHARMACY_BASE_URL = 'https://mdlaboratories.com/exacartapi/api/'; const PING_SERVICE = 'Services/Weather.svc/REST/CheckConnectivity'; diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 4cababb4..c8fcb5ca 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1078,7 +1078,7 @@ const Map localizedValues = { }, "MoreDetails": {"en": "More details", "ar": " المزيد من التفاصيل "}, "SendCopy": {"en": "Send Copy", "ar": "ارسال نسخة"}, - "ResendOrder": {"en": "Resend order & deliver", "ar": "إعادة طلب و توصيل"}, + "ResendOrder": {"en": "Refill Order & Delivery", "ar": "إعادة طلب و توصيل"}, "Ports": {"en": "Ports", "ar": "المنافذ"}, "Way": {"en": "Way", "ar": "الطزيقة"}, "Average": {"en": "Average", "ar": "المعدل"}, diff --git a/lib/core/service/feedback/feedback_service.dart b/lib/core/service/feedback/feedback_service.dart index 9df5b0a6..9355daf0 100644 --- a/lib/core/service/feedback/feedback_service.dart +++ b/lib/core/service/feedback/feedback_service.dart @@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/core/model/feedback/request_insert_coc_item import 'package:diplomaticquarterapp/core/service/base_service.dart'; import 'package:diplomaticquarterapp/pages/feedback/appointment_history.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; +import 'package:diplomaticquarterapp/uitl/utils.dart'; class FeedbackService extends BaseService { List cOCItemList = List(); @@ -26,7 +27,7 @@ class FeedbackService extends BaseService { _requestInsertCOCItem.details = details; _requestInsertCOCItem.cOCTypeName = cOCTypeName; _requestInsertCOCItem.formTypeID = cOCTypeName; - _requestInsertCOCItem.mobileNo = user.mobileNumber; + _requestInsertCOCItem.mobileNo = "966" + Utils.getPhoneNumberWithoutZero(user.mobileNumber); _requestInsertCOCItem.isUserLoggedIn = true; _requestInsertCOCItem.projectID = user.projectID; _requestInsertCOCItem.patientName = user.firstName + " " + user.lastName; @@ -64,7 +65,7 @@ class FeedbackService extends BaseService { hasError = false; Map body = new Map(); body['IdentificationNo'] = user.patientIdentificationNo; - body['MobileNo'] = user.mobileNumber; + body['MobileNo'] = "966" + Utils.getPhoneNumberWithoutZero(user.mobileNumber); body['Searching_type'] = '1'; await baseAppClient.post(GET_STATUS_FOR_COCO, diff --git a/lib/pages/MyAppointments/widgets/AppointmentCardView.dart b/lib/pages/MyAppointments/widgets/AppointmentCardView.dart index 51e18ff4..31a7cb2d 100644 --- a/lib/pages/MyAppointments/widgets/AppointmentCardView.dart +++ b/lib/pages/MyAppointments/widgets/AppointmentCardView.dart @@ -195,7 +195,7 @@ class _ApointmentCardState extends State { widgetBuilder: (_, CurrentRemainingTime time) { return time != null ? Text( - '${time.days}:${time.hours}:${time.min}:${time.sec} ' + + '${time.days != null ? time.days : "0"}:${time.hours != null ? time.hours : "0"}:${time.min}:${time.sec} ' + TranslationBase.of(context) .upcomingTimeLeft, style: TextStyle( diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index aded1a3b..3dda95f9 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -418,7 +418,7 @@ class _SendFeedbackPageState extends State { ), ), bottomSheet: Container( - height: MediaQuery.of(context).size.height * 0.09, + height: 80.0, width: double.infinity, padding: EdgeInsets.all(15.0), child: Center( diff --git a/lib/pages/medical/ask_doctor/request_type.dart b/lib/pages/medical/ask_doctor/request_type.dart index 55e04a73..eaf2913d 100644 --- a/lib/pages/medical/ask_doctor/request_type.dart +++ b/lib/pages/medical/ask_doctor/request_type.dart @@ -104,7 +104,8 @@ class _RequestTypePageState extends State { ), bottomSheet: Container( width: double.maxFinite, - height: MediaQuery.of(context).size.height * 0.1, + // height: MediaQuery.of(context).size.height * 0.1, + height: 80.0, child: Padding( padding: const EdgeInsets.all(12.0), child: SecondaryButton( diff --git a/lib/pages/medical/balance/my_balance_page.dart b/lib/pages/medical/balance/my_balance_page.dart index 8f80eeeb..b9cd6b53 100644 --- a/lib/pages/medical/balance/my_balance_page.dart +++ b/lib/pages/medical/balance/my_balance_page.dart @@ -8,7 +8,6 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:hexcolor/hexcolor.dart'; import 'advance_payment_page.dart'; @@ -105,12 +104,12 @@ class MyBalancePage extends StatelessWidget { ), ), bottomSheet: Container( - height: MediaQuery.of(context).size.height * 0.12, + // height: MediaQuery.of(context).size.height * 0.12, + height: 70.0, color: Colors.white, width: double.infinity, padding: EdgeInsets.all(12), child: SecondaryButton( - // color: Colors.grey[900], textColor: Colors.white, label: TranslationBase.of(context).createAdvancedPayment, onTap: () { diff --git a/lib/services/pharmacy_services/pharmacyAddress_service.dart b/lib/services/pharmacy_services/pharmacyAddress_service.dart index 592359ca..2909f18d 100644 --- a/lib/services/pharmacy_services/pharmacyAddress_service.dart +++ b/lib/services/pharmacy_services/pharmacyAddress_service.dart @@ -89,7 +89,7 @@ class PharmacyAddressService extends BaseService { Map body = Map(); body["customer"] = customerObject; - await baseAppClient.post("$url", onSuccess: (response, statusCode) async { + await baseAppClient.postPharmacy("$url", onSuccess: (response, statusCode) async { addresses.clear(); response['customers'][0]['addresses'].forEach((item) { addresses.add(Addresses.fromJson(item)); diff --git a/lib/uitl/date_uitl.dart b/lib/uitl/date_uitl.dart index 9f959885..2ebfee2f 100644 --- a/lib/uitl/date_uitl.dart +++ b/lib/uitl/date_uitl.dart @@ -4,7 +4,8 @@ import 'package:intl/intl.dart'; class DateUtil { /// convert String To Date function /// [date] String we want to convert - static DateTime convertStringToDate(String date) { // /Date(1585774800000+0300)/ + static DateTime convertStringToDate(String date) { + // /Date(1585774800000+0300)/ if (date != null) { const start = "/Date("; const end = "+0300)"; @@ -241,6 +242,25 @@ class DateUtil { } } + static getWeekDayEnglish(int weekDay) { + switch (weekDay) { + case 1: + return "Monday"; + case 2: + return "Tuesday"; + case 3: + return "Wednesday"; + case 4: + return "Thursday"; + case 5: + return "Friday"; + case 6: + return "Saturday "; + case 7: + return "Sunday"; + } + } + /// get data formatted like Apr 26,2020 /// [dateTime] convert DateTime to data formatted static String getMonthDayYearDateFormatted(DateTime dateTime) { @@ -253,6 +273,7 @@ class DateUtil { else return ""; } + /// get data formatted like Apr 26,2020 /// [dateTime] convert DateTime to data formatted Arabic static String getMonthDayYearDateFormattedAr(DateTime dateTime) { @@ -270,9 +291,12 @@ class DateUtil { /// [dateTime] convert DateTime to date formatted static String getWeekDayMonthDayYearDateFormatted( DateTime dateTime, String lang) { + // print(dateTime); + // print(dateTime.weekday); + // print(dateTime.weekday.getDayOfWeekEnumValue.value); if (dateTime != null) return lang == 'en' - ? getDay(dateTime.weekday.getDayOfWeekEnumValue) + + ? getWeekDayEnglish(dateTime.weekday) + ", " + getMonth(dateTime.month) + " " + @@ -357,9 +381,8 @@ class DateUtil { return ""; } - static String getFormattedDate(DateTime dateTime, String formattedString){ - return DateFormat(formattedString) - .format(dateTime); + static String getFormattedDate(DateTime dateTime, String formattedString) { + return DateFormat(formattedString).format(dateTime); } static convertISODateToJsonDate(String isoDate) { From 33e1bf8103362722ec5fed2851feea6068ae6564 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Tue, 16 Mar 2021 11:53:27 +0300 Subject: [PATCH 04/59] Jira fixes --- lib/config/localized_values.dart | 10 +++++----- lib/pages/ErService/ErOptions.dart | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index c8fcb5ca..80572117 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -476,11 +476,11 @@ const Map localizedValues = { "gate": {"en": "Gate:", "ar": "بوابة"}, "building": {"en": "Building:", "ar": "المبنى"}, "branch": {"en": "Branch:", "ar": "الفرع"}, - "emergencyServices": {"en": "Emergency Services:", "ar": "خدمات الطوارئ"}, - "nearester": {"en": "Nearest ER:", "ar": "أقرب طوارى"}, - "locationa": {"en": "location:", "ar": "الموقع"}, - "ambulancerequest": {"en": "Ambulance :", "ar": "طلب نقل "}, - "requestA": {"en": "Request:", "ar": "اسعاف"}, + "emergencyServices": {"en": "Emergency Services", "ar": "خدمات الطوارئ"}, + "nearester": {"en": "Nearest ER", "ar": "أقرب طوارى"}, + "locationa": {"en": "location", "ar": "الموقع"}, + "ambulancerequest": {"en": "Ambulance ", "ar": "طلب نقل "}, + "requestA": {"en": "Request", "ar": "اسعاف"}, "MyAppointments": {"en": "Appointments", "ar": "مواعيدي"}, "NoBookedAppointments": { "en": "No Booked Appointments", diff --git a/lib/pages/ErService/ErOptions.dart b/lib/pages/ErService/ErOptions.dart index e0ff3ed4..3e82b5a2 100644 --- a/lib/pages/ErService/ErOptions.dart +++ b/lib/pages/ErService/ErOptions.dart @@ -38,6 +38,7 @@ class _ErOptionsState extends State { return AppScaffold( isShowAppBar: widget.isAppbar, appBarTitle: TranslationBase.of(context).bookAppo, + isShowDecPage: false, body: Container( margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0), child: Column( From 49c454b132aa381ac000ba2a8f15347869e0ef78 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Tue, 23 Mar 2021 11:47:02 +0300 Subject: [PATCH 05/59] fixes --- lib/config/localized_values.dart | 1 + .../SelectTransportationMethod.dart | 2 +- lib/pages/landing/home_page.dart | 5 ++++- lib/uitl/translations_delegate_base.dart | 2 ++ lib/widgets/in_app_browser/InAppBrowser.dart | 20 +++++++++---------- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 262a592d..c3544984 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1215,6 +1215,7 @@ const Map localizedValues = { "ar": "حدد طريقة النقل" }, "RRT-direction-heading": {"en": "Select Direction", "ar": "حدد الاتجاه"}, + "RRT-way-heading": {"en": "Select Way", "ar": "حدد الطريق"}, "to-hospital": {"en": "To Hospital", "ar": "الى المستشفى"}, "from-hospital": {"en": "From Hospital", "ar": "من المستشفى"}, "one-direc": {"en": "One Way", "ar": "ذهاب"}, diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart index 0770448e..bf44d94c 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart @@ -206,7 +206,7 @@ class _SelectTransportationMethodState SizedBox( height: 8, ), - Texts(TranslationBase.of(context).directionHeading), + Texts(TranslationBase.of(context).wayHeading), SizedBox( height: 5, ), diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index 11bc0c95..b682021a 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -99,6 +99,7 @@ class _HomePageState extends State { Texts( TranslationBase.of(context) .covidTest, + fontSize: 15.0, color: Colors.white, fontWeight: FontWeight.w700, ), @@ -127,6 +128,7 @@ class _HomePageState extends State { .driveThru, fontWeight: FontWeight.w700, + fontSize: 15.0, color: Colors.white, ), ButtonTheme( @@ -141,7 +143,7 @@ class _HomePageState extends State { context) .size .width * - 0.15, + 0.14, height: 25.0, child: RaisedButton( color: Colors @@ -163,6 +165,7 @@ class _HomePageState extends State { fontWeight: FontWeight .w700, + fontSize: 14.0, color: Colors .white, ), diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index a90f8614..115e8319 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -1115,6 +1115,8 @@ class TranslationBase { localizedValues['RRT-transport-heading'][locale.languageCode]; String get directionHeading => localizedValues['RRT-direction-heading'][locale.languageCode]; + String get wayHeading => + localizedValues['RRT-way-heading'][locale.languageCode]; String get toHospital => localizedValues['to-hospital'][locale.languageCode]; String get fromHospital => localizedValues['from-hospital'][locale.languageCode]; diff --git a/lib/widgets/in_app_browser/InAppBrowser.dart b/lib/widgets/in_app_browser/InAppBrowser.dart index df535eba..8431fd74 100644 --- a/lib/widgets/in_app_browser/InAppBrowser.dart +++ b/lib/widgets/in_app_browser/InAppBrowser.dart @@ -9,23 +9,23 @@ import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart'; class MyInAppBrowser extends InAppBrowser { - // static String SERVICE_URL = - // 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT - static String SERVICE_URL = - 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE + 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT - // static String PREAUTH_SERVICE_URL = - // 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort PreAuth Payment Gateway URL UAT + // static String SERVICE_URL = + // 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE static String PREAUTH_SERVICE_URL = - 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort PreAuth Payment Gateway URL Live Store + 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort PreAuth Payment Gateway URL UAT - // static String PRESCRIPTION_PAYMENT_WITH_ORDERID = - // 'https://uat.hmgwebservices.com/epharmacy/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; + // static String PREAUTH_SERVICE_URL = + // 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort PreAuth Payment Gateway URL Live Store static String PRESCRIPTION_PAYMENT_WITH_ORDERID = - 'https://mdlaboratories.com/exacartapi/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; //Live + 'https://uat.hmgwebservices.com/epharmacy/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; + + // static String PRESCRIPTION_PAYMENT_WITH_ORDERID = + // 'https://mdlaboratories.com/exacartapi/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; //Live static List successURLS = [ 'success', From a6a9a92c6f4a98f9b88453fe87e1ad41a1e1db55 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Tue, 23 Mar 2021 12:41:08 +0300 Subject: [PATCH 06/59] JIRA bug fixes --- .../covid-drivethru-location.dart | 281 ++++++++++++------ lib/pages/ErService/NearestEr.dart | 1 + lib/widgets/buttons/secondary_button.dart | 2 +- lib/widgets/in_app_browser/InAppBrowser.dart | 20 +- 4 files changed, 202 insertions(+), 102 deletions(-) diff --git a/lib/pages/Covid-DriveThru/covid-drivethru-location.dart b/lib/pages/Covid-DriveThru/covid-drivethru-location.dart index a8cb5048..749d9140 100644 --- a/lib/pages/Covid-DriveThru/covid-drivethru-location.dart +++ b/lib/pages/Covid-DriveThru/covid-drivethru-location.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidPaymentInfoResponse.dart'; import 'package:diplomaticquarterapp/models/CovidDriveThru/DriveThroughTestingCenterModel.dart'; @@ -29,23 +30,33 @@ class _CovidDrivethruLocationState extends State { ProjectViewModel projectViewModel; + List imagesInfo = List(); + @override void initState() { - WidgetsBinding.instance - .addPostFrameCallback((_) => getProjectsList(context)); + WidgetsBinding.instance.addPostFrameCallback((_) { + if (projectViewModel.isLogin) getProjectsList(context); + }); super.initState(); } @override Widget build(BuildContext context) { projectViewModel = Provider.of(context); + imagesInfo.add(ImagesInfo( + imageEn: 'https://hmgwebservices.com/Images/MobileApp/covid/en/0.png', + imageAr: 'https://hmgwebservices.com/Images/MobileApp/covid/ar/0.png')); return AppScaffold( appBarTitle: TranslationBase.of(context).covidTest, isShowAppBar: true, + isShowDecPage: true, + description: TranslationBase.of(context).covidInfo, + imagesInfo: imagesInfo, body: SingleChildScrollView( child: Container( margin: EdgeInsets.fromLTRB(15.0, 15.0, 15.0, 0.0), child: Column( + mainAxisSize: MainAxisSize.max, children: [ Container( alignment: projectViewModel.isArabic @@ -136,96 +147,185 @@ class _CovidDrivethruLocationState extends State { this.projectLong + "&key=AIzaSyCyDbWUM9d_sBUGIE8PcuShzPaqO08NSC8"), ) - : Container(), - ], - ), - ), - ), - bottomSheet: Container( - height: MediaQuery.of(context).size.height * 0.15, - width: double.infinity, - child: Column( - children: [ - Container( - margin: EdgeInsets.only(top: 10.0), - child: ButtonTheme( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10.0), - ), - minWidth: MediaQuery.of(context).size.width * 0.91, - height: 45.0, - child: RaisedButton( - color: new Color(0xFFc5272d), - textColor: Colors.white, - disabledTextColor: Colors.white, - disabledColor: Colors.red[300], - onPressed: () { - getDirections(); - }, - child: Text(TranslationBase.of(context).getDirections, - style: TextStyle(fontSize: 18.0)), - ), - ), - ), - Container( - margin: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0), - child: Flex( - direction: Axis.horizontal, - children: [ - Expanded( - flex: 1, - child: Container( - margin: EdgeInsets.fromLTRB(10.0, 0.0, 5.0, 0.0), + : SizedBox( + height: MediaQuery.of(context).size.height * 0.35, + ), + Container( + height: MediaQuery.of(context).size.height * 0.15, + width: double.infinity, + child: Column( + children: [ + Container( + margin: EdgeInsets.only(top: 10.0), child: ButtonTheme( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), ), - minWidth: MediaQuery.of(context).size.width * 0.7, + minWidth: MediaQuery.of(context).size.width * 0.91, height: 45.0, child: RaisedButton( - color: new Color(0xFF60686b), + color: new Color(0xFFc5272d), textColor: Colors.white, disabledTextColor: Colors.white, - disabledColor: Colors.grey[500], + disabledColor: Colors.red[300], onPressed: () { - back(); + getDirections(); }, - child: Text(TranslationBase.of(context).back, + child: Text(TranslationBase.of(context).getDirections, style: TextStyle(fontSize: 18.0)), ), ), ), - ), - Expanded( - flex: 1, - child: Container( - margin: EdgeInsets.fromLTRB(10.0, 0.0, 5.0, 0.0), - child: ButtonTheme( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10.0), - ), - minWidth: MediaQuery.of(context).size.width * 0.7, - height: 45.0, - child: RaisedButton( - color: new Color(0xFF60686b), - textColor: Colors.white, - disabledTextColor: Colors.white, - disabledColor: Colors.grey[500], - onPressed: () { - next(); - }, - child: Text(TranslationBase.of(context).next, - style: TextStyle(fontSize: 18.0)), - ), + Container( + margin: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0), + child: Flex( + direction: Axis.horizontal, + children: [ + Expanded( + flex: 1, + child: Container( + margin: EdgeInsets.fromLTRB(10.0, 0.0, 5.0, 0.0), + child: ButtonTheme( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + minWidth: + MediaQuery.of(context).size.width * 0.7, + height: 45.0, + child: RaisedButton( + color: new Color(0xFF60686b), + textColor: Colors.white, + disabledTextColor: Colors.white, + disabledColor: Colors.grey[500], + onPressed: () { + back(); + }, + child: Text(TranslationBase.of(context).back, + style: TextStyle(fontSize: 18.0)), + ), + ), + ), + ), + Expanded( + flex: 1, + child: Container( + margin: EdgeInsets.fromLTRB(10.0, 0.0, 5.0, 0.0), + child: ButtonTheme( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + minWidth: + MediaQuery.of(context).size.width * 0.7, + height: 45.0, + child: RaisedButton( + color: new Color(0xFF60686b), + textColor: Colors.white, + disabledTextColor: Colors.white, + disabledColor: Colors.grey[500], + onPressed: () { + next(); + }, + child: Text(TranslationBase.of(context).next, + style: TextStyle(fontSize: 18.0)), + ), + ), + ), + ), + ], ), ), - ), - ], + ], + ), ), - ), - ], + ], + ), ), ), + // bottomSheet: Container( + // height: MediaQuery.of(context).size.height * 0.15, + // width: double.infinity, + // child: Column( + // children: [ + // Container( + // margin: EdgeInsets.only(top: 10.0), + // child: ButtonTheme( + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(10.0), + // ), + // minWidth: MediaQuery.of(context).size.width * 0.91, + // height: 45.0, + // child: RaisedButton( + // color: new Color(0xFFc5272d), + // textColor: Colors.white, + // disabledTextColor: Colors.white, + // disabledColor: Colors.red[300], + // onPressed: () { + // getDirections(); + // }, + // child: Text(TranslationBase.of(context).getDirections, + // style: TextStyle(fontSize: 18.0)), + // ), + // ), + // ), + // Container( + // margin: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0), + // child: Flex( + // direction: Axis.horizontal, + // children: [ + // Expanded( + // flex: 1, + // child: Container( + // margin: EdgeInsets.fromLTRB(10.0, 0.0, 5.0, 0.0), + // child: ButtonTheme( + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(10.0), + // ), + // minWidth: MediaQuery.of(context).size.width * 0.7, + // height: 45.0, + // child: RaisedButton( + // color: new Color(0xFF60686b), + // textColor: Colors.white, + // disabledTextColor: Colors.white, + // disabledColor: Colors.grey[500], + // onPressed: () { + // back(); + // }, + // child: Text(TranslationBase.of(context).back, + // style: TextStyle(fontSize: 18.0)), + // ), + // ), + // ), + // ), + // Expanded( + // flex: 1, + // child: Container( + // margin: EdgeInsets.fromLTRB(10.0, 0.0, 5.0, 0.0), + // child: ButtonTheme( + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(10.0), + // ), + // minWidth: MediaQuery.of(context).size.width * 0.7, + // height: 45.0, + // child: RaisedButton( + // color: new Color(0xFF60686b), + // textColor: Colors.white, + // disabledTextColor: Colors.white, + // disabledColor: Colors.grey[500], + // onPressed: () { + // next(); + // }, + // child: Text(TranslationBase.of(context).next, + // style: TextStyle(fontSize: 18.0)), + // ), + // ), + // ), + // ), + // ], + // ), + // ), + // ], + // ), + // ), ); } @@ -277,25 +377,24 @@ class _CovidDrivethruLocationState extends State { service .getCovidPaymentInformation(context, int.parse(projectID)) .then((res) { - GifLoaderDialogUtils.hideDialog(context); - if (res['MessageStatus'] == 1) { - setState(() { - covidPaymentInfoResponse = CovidPaymentInfoResponse.fromJson( - res['COVID19_PatientShare']); - print(covidPaymentInfoResponse.procedureNameField); - }); - Navigator.push( - context, - FadePage( - page: CovidPaymentDetails( - covidPaymentInfoResponse: covidPaymentInfoResponse, - projectID: int.parse(projectID), - ))); - } else {} - }) - .catchError((err) { - print(err); + GifLoaderDialogUtils.hideDialog(context); + if (res['MessageStatus'] == 1) { + setState(() { + covidPaymentInfoResponse = + CovidPaymentInfoResponse.fromJson(res['COVID19_PatientShare']); + print(covidPaymentInfoResponse.procedureNameField); }); + Navigator.push( + context, + FadePage( + page: CovidPaymentDetails( + covidPaymentInfoResponse: covidPaymentInfoResponse, + projectID: int.parse(projectID), + ))); + } else {} + }).catchError((err) { + print(err); + }); } getProjectsList(BuildContext context) { diff --git a/lib/pages/ErService/NearestEr.dart b/lib/pages/ErService/NearestEr.dart index eaf0d4ef..cbafacce 100644 --- a/lib/pages/ErService/NearestEr.dart +++ b/lib/pages/ErService/NearestEr.dart @@ -31,6 +31,7 @@ class NearestEr extends StatelessWidget { : (model) => model.getProjectAvgERWaitingTimeOrders(), builder: (_, mode, widget) => AppScaffold( isShowAppBar: true, + isShowDecPage: false, appBarTitle: TranslationBase.of(context).NearestEr, baseViewModel: mode, body: mode.ProjectAvgERWaitingTimeModeList.length > 0 diff --git a/lib/widgets/buttons/secondary_button.dart b/lib/widgets/buttons/secondary_button.dart index b5a4655a..8c4ba851 100644 --- a/lib/widgets/buttons/secondary_button.dart +++ b/lib/widgets/buttons/secondary_button.dart @@ -241,7 +241,7 @@ class _SecondaryButtonState extends State widget.label, style: TextStyle( color: widget.textColor, - fontSize: widget.small ? 12.0 : 15.0, + fontSize: widget.small ? 12.0 : 14.0, // fontWeight: FontWeight.w800, fontFamily: projectViewModel.isArabic ? 'Cairo' diff --git a/lib/widgets/in_app_browser/InAppBrowser.dart b/lib/widgets/in_app_browser/InAppBrowser.dart index ca9897ab..7bf31216 100644 --- a/lib/widgets/in_app_browser/InAppBrowser.dart +++ b/lib/widgets/in_app_browser/InAppBrowser.dart @@ -21,23 +21,23 @@ var _InAppBrowserOptions = InAppBrowserClassOptions( class MyInAppBrowser extends InAppBrowser { _PAYMENT_TYPE paymentType; - // static String SERVICE_URL = - // 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT - static String SERVICE_URL = - 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE + 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT - // static String PREAUTH_SERVICE_URL = - // 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort PreAuth Payment Gateway URL UAT + // static String SERVICE_URL = + // 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE static String PREAUTH_SERVICE_URL = - 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort PreAuth Payment Gateway URL Live Store + 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort PreAuth Payment Gateway URL UAT - // static String PRESCRIPTION_PAYMENT_WITH_ORDERID = - // 'https://uat.hmgwebservices.com/epharmacy/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; + // static String PREAUTH_SERVICE_URL = + // 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort PreAuth Payment Gateway URL Live Store static String PRESCRIPTION_PAYMENT_WITH_ORDERID = - 'https://mdlaboratories.com/exacartapi/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; //Live + 'https://uat.hmgwebservices.com/epharmacy/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; + + // static String PRESCRIPTION_PAYMENT_WITH_ORDERID = + // 'https://mdlaboratories.com/exacartapi/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; //Live // Packages static String PACKAGES_REQUEST_PAYMENT_URL = '$EXA_CART_API_BASE_URL/checkout/OpcCompleteRedirectionPayment1'; From 353a5157f28af9ea120e0147d6d687027f901182 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Mon, 29 Mar 2021 14:44:20 +0300 Subject: [PATCH 07/59] fixes --- lib/config/localized_values.dart | 1 + lib/pages/feedback/send_feedback_page.dart | 2 +- lib/pages/landing/home_page.dart | 2 +- lib/uitl/translations_delegate_base.dart | 2 ++ 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 59f2bfcc..32e0fef2 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1124,6 +1124,7 @@ const Map localizedValues = { }, "question": {"en": "Question", "ar": "سؤال"}, "message-type": {"en": "Message Type", "ar": "نوع الرسالة"}, + "feedback-type": {"en": "Feedback Type", "ar": "نوع الرسالة"}, "compliment": {"en": "compliment", "ar": "ثناء"}, "suggestion": {"en": "Suggestion", "ar": "إقتراح"}, "your-feedback": { diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index 3dda95f9..3b4bb827 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -544,7 +544,7 @@ class FeedbackTypeDialogState extends State { return BaseView( builder: (_, model, widge) => SimpleDialog( title: Text( - TranslationBase.of(context).messageType, + TranslationBase.of(context).feedbackType, textAlign: TextAlign.center, ), children: [ diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index 8edff20f..72bcece4 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -798,7 +798,7 @@ class _HomePageState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts( - TranslationBase.of(context).contactUs, + TranslationBase.of(context).reachUs, color: Colors.white, fontWeight: FontWeight.normal, ), diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index c17a75fe..bc29bfc2 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -1607,6 +1607,8 @@ class TranslationBase { String get insuranceID => localizedValues["insurance-id"][locale.languageCode]; String get enterFile => localizedValues["enter-file"][locale.languageCode]; + String get feedbackType => localizedValues["feedback-type"][locale.languageCode]; + } class TranslationBaseDelegate extends LocalizationsDelegate { From 8c9c309abbc27b72fc117076c5f813e76f25608d Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Mon, 5 Apr 2021 11:47:32 +0300 Subject: [PATCH 08/59] bug fixes --- lib/config/localized_values.dart | 4 +++- lib/pages/DrawerPages/family/my-family.dart | 24 ++++++++++++++++----- lib/uitl/translations_delegate_base.dart | 14 +++++++----- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index a703d5db..7e5f1b91 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1992,5 +1992,7 @@ const Map localizedValues = { "enter-file": { "en": "Please enter the mobile number and the medical file number", "ar": "الرجاء إدخال رقم الجوال ورقم الملف الطبي" - } + }, + "allow": {"en": "Allow", "ar": "السماح"}, + "reject": {"en": "Reject", "ar": "رفض"} }; diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart index 07f99b16..32aaaf45 100644 --- a/lib/pages/DrawerPages/family/my-family.dart +++ b/lib/pages/DrawerPages/family/my-family.dart @@ -395,12 +395,20 @@ class _MyFamily extends State with TickerProviderStateMixin { left: 10, right: 10), child: Row(children: [ Expanded( - flex: 3, child: AppText('Name')), + flex: 3, + child: AppText( + TranslationBase.of(context) + .name)), Expanded( - flex: 1, child: AppText('Allow')), + flex: 1, + child: AppText( + TranslationBase.of(context) + .allow)), Expanded( flex: 1, - child: AppText('Reject')), + child: AppText( + TranslationBase.of(context) + .reject)), ])), Column( children: familyFileProvider @@ -577,9 +585,15 @@ class _MyFamily extends State with TickerProviderStateMixin { EdgeInsets.only(left: 10, right: 10), child: Row(children: [ Expanded( - flex: 3, child: AppText('Name')), + flex: 3, + child: AppText( + TranslationBase.of(context) + .name)), Expanded( - flex: 1, child: AppText('Delete')), + flex: 1, + child: AppText( + TranslationBase.of(context) + .delete)), ])), Column( children: familyFileProvider diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 0e0058f9..0beb1c12 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -752,8 +752,10 @@ class TranslationBase { String get shippedMethod => localizedValues['shippedMethod'][locale.languageCode]; String get orderDetail => localizedValues['orderDetail'][locale.languageCode]; - String get deliveryDriverTrack => localizedValues['DeliveryDriverTrack'][locale.languageCode]; - String get deliveryLocation => localizedValues['DeliveryLocation'][locale.languageCode]; + String get deliveryDriverTrack => + localizedValues['DeliveryDriverTrack'][locale.languageCode]; + String get deliveryLocation => + localizedValues['DeliveryLocation'][locale.languageCode]; String get driver => localizedValues['Driver'][locale.languageCode]; String get subtotal => localizedValues['subtotal'][locale.languageCode]; String get shipping => localizedValues['shipping'][locale.languageCode]; @@ -1558,10 +1560,10 @@ class TranslationBase { localizedValues["submitncontinue"][locale.languageCode]; String get areyousure => localizedValues["areyousure"][locale.languageCode]; - // Offer And Packahes - String get subT=> localizedValues['OffersAndPackages'][locale.languageCode]; - String get totalWithColonRight => localizedValues['totalWithColonRight'][locale.languageCode]; + String get subT => localizedValues['OffersAndPackages'][locale.languageCode]; + String get totalWithColonRight => + localizedValues['totalWithColonRight'][locale.languageCode]; String get preferredunit => localizedValues["preferredunit"][locale.languageCode]; @@ -1605,6 +1607,8 @@ class TranslationBase { String get insuranceID => localizedValues["insurance-id"][locale.languageCode]; String get enterFile => localizedValues["enter-file"][locale.languageCode]; + String get allow => localizedValues["allow"][locale.languageCode]; + String get reject => localizedValues["reject"][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate { From bcabd81f889befd784abe1a9fa13fb9099337d77 Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Mon, 24 May 2021 13:43:44 +0300 Subject: [PATCH 09/59] BUG FIXES --- .../images/new-design/verification_check.svg | 8 ++++++ .../plugins/GeneratedPluginRegistrant.java | 25 +++++++++++++++++++ .../android/local.properties | 2 ++ .../ios/Flutter/Generated.xcconfig | 14 +++++++++++ .../ios/Flutter/flutter_export_environment.sh | 15 +++++++++++ .../ios/Runner/GeneratedPluginRegistrant.h | 17 +++++++++++++ .../ios/Runner/GeneratedPluginRegistrant.m | 12 +++++++++ lib/config/localized_values.dart | 8 +++++- lib/pages/Blood/blood_donation.dart | 12 ++++++++- .../family_files/family_files_provider.dart | 4 +-- lib/uitl/translations_delegate_base.dart | 3 +++ lib/widgets/drawer/app_drawer_widget.dart | 2 +- 12 files changed, 117 insertions(+), 5 deletions(-) create mode 100644 assets/images/new-design/verification_check.svg create mode 100644 hms-plugins/flutter-hms-location/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java create mode 100644 hms-plugins/flutter-hms-location/android/local.properties create mode 100644 hms-plugins/flutter-hms-location/ios/Flutter/Generated.xcconfig create mode 100644 hms-plugins/flutter-hms-location/ios/Flutter/flutter_export_environment.sh create mode 100644 hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.h create mode 100644 hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.m diff --git a/assets/images/new-design/verification_check.svg b/assets/images/new-design/verification_check.svg new file mode 100644 index 00000000..1b3cdcca --- /dev/null +++ b/assets/images/new-design/verification_check.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/hms-plugins/flutter-hms-location/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java b/hms-plugins/flutter-hms-location/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java new file mode 100644 index 00000000..975e9019 --- /dev/null +++ b/hms-plugins/flutter-hms-location/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java @@ -0,0 +1,25 @@ +package io.flutter.plugins; + +import io.flutter.plugin.common.PluginRegistry; +import com.huawei.hms.flutter.location.LocationPlugin; + +/** + * Generated file. Do not edit. + */ +public final class GeneratedPluginRegistrant { + public static void registerWith(PluginRegistry registry) { + if (alreadyRegisteredWith(registry)) { + return; + } + LocationPlugin.registerWith(registry.registrarFor("com.huawei.hms.flutter.location.LocationPlugin")); + } + + private static boolean alreadyRegisteredWith(PluginRegistry registry) { + final String key = GeneratedPluginRegistrant.class.getCanonicalName(); + if (registry.hasPlugin(key)) { + return true; + } + registry.registrarFor(key); + return false; + } +} diff --git a/hms-plugins/flutter-hms-location/android/local.properties b/hms-plugins/flutter-hms-location/android/local.properties new file mode 100644 index 00000000..c6cb6fc0 --- /dev/null +++ b/hms-plugins/flutter-hms-location/android/local.properties @@ -0,0 +1,2 @@ +sdk.dir=C:\\Users\\sultan.khan\\AppData\\Local\\Android\\Sdk +flutter.sdk=C:\\Program Files\\flutter \ No newline at end of file diff --git a/hms-plugins/flutter-hms-location/ios/Flutter/Generated.xcconfig b/hms-plugins/flutter-hms-location/ios/Flutter/Generated.xcconfig new file mode 100644 index 00000000..4527e66e --- /dev/null +++ b/hms-plugins/flutter-hms-location/ios/Flutter/Generated.xcconfig @@ -0,0 +1,14 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=C:\Program Files\flutter +FLUTTER_APPLICATION_PATH=C:\Projects\DQ\hms-plugins\flutter-hms-location +FLUTTER_TARGET=lib\main.dart +FLUTTER_BUILD_DIR=build +SYMROOT=${SOURCE_ROOT}/../build\ios +OTHER_LDFLAGS=$(inherited) -framework Flutter +FLUTTER_FRAMEWORK_DIR=C:\Program Files\flutter\bin\cache\artifacts\engine\ios +FLUTTER_BUILD_NAME=5.0.0 +FLUTTER_BUILD_NUMBER=301 +DART_OBFUSCATION=false +TRACK_WIDGET_CREATION=false +TREE_SHAKE_ICONS=false +PACKAGE_CONFIG=.packages diff --git a/hms-plugins/flutter-hms-location/ios/Flutter/flutter_export_environment.sh b/hms-plugins/flutter-hms-location/ios/Flutter/flutter_export_environment.sh new file mode 100644 index 00000000..87c35592 --- /dev/null +++ b/hms-plugins/flutter-hms-location/ios/Flutter/flutter_export_environment.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=C:\Program Files\flutter" +export "FLUTTER_APPLICATION_PATH=C:\Projects\DQ\hms-plugins\flutter-hms-location" +export "FLUTTER_TARGET=lib\main.dart" +export "FLUTTER_BUILD_DIR=build" +export "SYMROOT=${SOURCE_ROOT}/../build\ios" +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" +export "FLUTTER_FRAMEWORK_DIR=C:\Program Files\flutter\bin\cache\artifacts\engine\ios" +export "FLUTTER_BUILD_NAME=5.0.0" +export "FLUTTER_BUILD_NUMBER=301" +export "DART_OBFUSCATION=false" +export "TRACK_WIDGET_CREATION=false" +export "TREE_SHAKE_ICONS=false" +export "PACKAGE_CONFIG=.packages" diff --git a/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.h b/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.h new file mode 100644 index 00000000..ed9a5c61 --- /dev/null +++ b/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.h @@ -0,0 +1,17 @@ +// +// Generated file. Do not edit. +// + +#ifndef GeneratedPluginRegistrant_h +#define GeneratedPluginRegistrant_h + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface GeneratedPluginRegistrant : NSObject ++ (void)registerWithRegistry:(NSObject*)registry; +@end + +NS_ASSUME_NONNULL_END +#endif /* GeneratedPluginRegistrant_h */ diff --git a/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.m b/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.m new file mode 100644 index 00000000..60dfa42b --- /dev/null +++ b/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.m @@ -0,0 +1,12 @@ +// +// Generated file. Do not edit. +// + +#import "GeneratedPluginRegistrant.h" + +@implementation GeneratedPluginRegistrant + ++ (void)registerWithRegistry:(NSObject*)registry { +} + +@end diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 7e5f1b91..45930514 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1141,6 +1141,12 @@ const Map localizedValues = { "YouCanFind": {"en": "You Can Find ", "ar": "باستطاعتك العثور على "}, "ItemInSearch": {"en": " Item In Search", "ar": " عنصر في البحث "}, "blood-donation": {"en": "Blood Donation", "ar": "التبرع بالدم"}, + "blood-donation-info": { + "en": + "Through this service, you can register your name as a blood donor where the blood bank in the Habib Medical Group will communicate you in case of need for blood type.", + "ar": + "عن طريق هذه الخدمة تستطيع تسجيل اسمك كمتبرع بالدم حيث سيتم التواصل معك عن طريق بنك الدم في مجموعة الحبيب الطبية في حال الحاجة الى فصيلة الدم ." + }, "blood-instruction": { "en": "Enter the required information, In order to register for Blood Donation Service", @@ -1994,5 +2000,5 @@ const Map localizedValues = { "ar": "الرجاء إدخال رقم الجوال ورقم الملف الطبي" }, "allow": {"en": "Allow", "ar": "السماح"}, - "reject": {"en": "Reject", "ar": "رفض"} + "reject": {"en": "Reject", "ar": "رفض"} }; diff --git a/lib/pages/Blood/blood_donation.dart b/lib/pages/Blood/blood_donation.dart index adff790c..ce6ab8ee 100644 --- a/lib/pages/Blood/blood_donation.dart +++ b/lib/pages/Blood/blood_donation.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; +import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/model/blooddonation/blood_groub_details.dart'; import 'package:diplomaticquarterapp/core/model/blooddonation/get_all_cities.dart'; @@ -60,7 +61,7 @@ class _BloodDonationPageState extends State { AppSharedPreferences sharedPref = AppSharedPreferences(); AuthenticatedUser authUser; var checkedValue = false; - + List imagesInfo = List(); @override void initState() { super.initState(); @@ -69,6 +70,13 @@ class _BloodDonationPageState extends State { @override Widget build(BuildContext context) { + imagesInfo.add( + ImagesInfo( + imageEn: + 'https://hmgwebservices.com/Images/MobileApp/images-info-home/blood/en/0.png', + imageAr: + 'https://hmgwebservices.com/Images/MobileApp/images-info-home/blood/ar/0.png'), + ); ProjectViewModel projectProvider = Provider.of(context); return BaseView( @@ -76,6 +84,8 @@ class _BloodDonationPageState extends State { builder: (_, model, w) => AppScaffold( isShowAppBar: true, baseViewModel: model, + imagesInfo: imagesInfo, + description: TranslationBase.of(context).bloodDonationInfo, appBarTitle: TranslationBase.of(context).bloodD, body: SingleChildScrollView( physics: ScrollPhysics(), diff --git a/lib/services/family_files/family_files_provider.dart b/lib/services/family_files/family_files_provider.dart index 7a2dec81..8238a35b 100644 --- a/lib/services/family_files/family_files_provider.dart +++ b/lib/services/family_files/family_files_provider.dart @@ -259,7 +259,7 @@ class FamilyFilesProvider with ChangeNotifier { var currentUser = AuthenticatedUser.fromJson(await sharedPref.getObject(MAIN_USER)); //const request = new SwitchUserRequest(); - request['LogInTokenID'] = ''; + // request['LogInTokenID'] = ''; request['PatientOutSA'] = currentUser.outSA; //? 1 : 0; request['PatientMobileNumber'] = currentUser.mobileNumber; //['MobileNumber']; @@ -276,7 +276,7 @@ class FamilyFilesProvider with ChangeNotifier { AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE)); //const request = new SwitchUserRequest(); - request['LogInTokenID'] = ''; + // request['LogInTokenID'] = ''; request['PatientOutSA'] = currentUser.outSA; //? 1 : 0; request['PatientMobileNumber'] = switchUser.mobileNumber; //['MobileNumber']; diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 0beb1c12..f7b494fe 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -1036,6 +1036,9 @@ class TranslationBase { localizedValues['ItemInSearch'][locale.languageCode]; String get bloodDonation => localizedValues['blood-donation'][locale.languageCode]; + String get bloodDonationInfo => + localizedValues['blood-donation-info'][locale.languageCode]; + String get bloodInstruction => localizedValues['blood-instruction'][locale.languageCode]; String get bloodTermsNcondition => diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 5192e0f0..283c559f 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -309,7 +309,7 @@ class _AppDrawerState extends State { padding: EdgeInsets.only(left: 5, right: 5), child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText(result.patientName, color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black), - AppText(TranslationBase.of(context).fileno + ": " + result.patientID.toString(), color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black), + AppText(TranslationBase.of(context).fileno + ": " + result.responseID.toString(), color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black), ]))), ], ))) From db840906942255053e52135387f76e41a3e409d3 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Sun, 20 Jun 2021 15:12:57 +0300 Subject: [PATCH 10/59] PAP-872 & PAP-593 fixed, Water addition was not visible. --- lib/widgets/others/app_scaffold_widget.dart | 84 +++++++-------------- 1 file changed, 27 insertions(+), 57 deletions(-) diff --git a/lib/widgets/others/app_scaffold_widget.dart b/lib/widgets/others/app_scaffold_widget.dart index ca72e267..1412adf6 100644 --- a/lib/widgets/others/app_scaffold_widget.dart +++ b/lib/widgets/others/app_scaffold_widget.dart @@ -58,8 +58,7 @@ class AppScaffold extends StatelessWidget { final List appBarIcons; final List imagesInfo; final bool isHelp; - AuthenticatedUserObject authenticatedUserObject = - locator(); + AuthenticatedUserObject authenticatedUserObject = locator(); AppBarWidget appBar; AppScaffold( @@ -96,8 +95,7 @@ class AppScaffold extends StatelessWidget { Widget build(BuildContext context) { AppGlobal.context = context; return Scaffold( - backgroundColor: - backgroundColor ?? Theme.of(context).scaffoldBackgroundColor, + backgroundColor: backgroundColor ?? Theme.of(context).scaffoldBackgroundColor, appBar: isShowAppBar ? appBar = AppBarWidget( appBarTitle: appBarTitle, @@ -114,22 +112,21 @@ class AppScaffold extends StatelessWidget { body: SafeArea( top: true, bottom: true, - child: - (!Provider.of(context, listen: false).isLogin && - isShowDecPage) - ? NotAutPage( - title: title ?? appBarTitle, - description: description, - infoList: infoList, - imagesInfo: imagesInfo, + child: (!Provider.of(context, listen: false).isLogin && isShowDecPage) + ? NotAutPage( + title: title ?? appBarTitle, + description: description, + infoList: infoList, + imagesInfo: imagesInfo, + ) + : baseViewModel != null + ? NetworkBaseView( + child: buildBodyWidget(context), + baseViewModel: baseViewModel, ) - : baseViewModel != null - ? NetworkBaseView( - child: buildBodyWidget(context), - baseViewModel: baseViewModel, - ) - : buildBodyWidget(context), + : buildBodyWidget(context), ), + floatingActionButton: floatingActionButton, ); } @@ -138,14 +135,12 @@ class AppScaffold extends StatelessWidget { } buildBodyWidget(context) { - return Stack( - children: [body, isHelp == true ? RobotIcon() : Container()]); + return Stack(children: [body, isHelp == true ? RobotIcon() : Container()]); } } class AppBarWidget extends StatefulWidget with PreferredSizeWidget { - final AuthenticatedUserObject authenticatedUserObject = - locator(); + final AuthenticatedUserObject authenticatedUserObject = locator(); final String appBarTitle; final bool showHomeAppBarIcon; @@ -193,22 +188,12 @@ class AppBarWidgetState extends State { ProjectViewModel projectViewModel = Provider.of(context); return AppBar( elevation: 0, - backgroundColor: widget.isPharmacy - ? Colors.green - : Theme.of(context).appBarTheme.color, + backgroundColor: widget.isPharmacy ? Colors.green : Theme.of(context).appBarTheme.color, textTheme: TextTheme( - headline6: TextStyle( - color: Theme.of(context).textTheme.headline1.color, - fontWeight: FontWeight.bold), + headline6: TextStyle(color: Theme.of(context).textTheme.headline1.color, fontWeight: FontWeight.bold), ), - title: Text( - widget.authenticatedUserObject.isLogin || !widget.isShowDecPage - ? widget.appBarTitle.toUpperCase() - : TranslationBase.of(context).serviceInformationTitle, - style: TextStyle( - fontWeight: FontWeight.bold, - color: Theme.of(context).textTheme.headline1.color, - fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans')), + title: Text(widget.authenticatedUserObject.isLogin || !widget.isShowDecPage ? widget.appBarTitle.toUpperCase() : TranslationBase.of(context).serviceInformationTitle, + style: TextStyle(fontWeight: FontWeight.bold, color: Theme.of(context).textTheme.headline1.color, fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans')), leading: Builder( builder: (BuildContext context) { return ArrowBack(); @@ -218,9 +203,7 @@ class AppBarWidgetState extends State { actions: [ (widget.isPharmacy && widget.showPharmacyCart) ? IconButton( - icon: Badge( - badgeContent: Text(badgeText), - child: Icon(Icons.shopping_cart)), + icon: Badge(badgeContent: Text(badgeText), child: Icon(Icons.shopping_cart)), color: Colors.white, onPressed: () { Navigator.of(context).popUntil(ModalRoute.withName('/')); @@ -232,10 +215,7 @@ class AppBarWidgetState extends State { position: BadgePosition.topStart(top: -15, start: -10), badgeContent: Text( badgeText, - style: TextStyle( - fontSize: 9, - color: Colors.white, - fontWeight: FontWeight.normal), + style: TextStyle(fontSize: 9, color: Colors.white, fontWeight: FontWeight.normal), ), child: Icon(Icons.shopping_cart)), color: Colors.white, @@ -249,10 +229,7 @@ class AppBarWidgetState extends State { icon: Icon(FontAwesomeIcons.home), color: Colors.white, onPressed: () { - Navigator.pushAndRemoveUntil( - context, - MaterialPageRoute(builder: (context) => LandingPage()), - (Route r) => false); + Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => LandingPage()), (Route r) => false); // Cart Click Event if (_onCartClick != null) _onCartClick(); @@ -316,18 +293,11 @@ class _RobotIcon extends State { ], ), child: TyperAnimatedTextKit( - text: Provider.of(context, - listen: false) - .isArabic == - true + text: Provider.of(context, listen: false).isArabic == true ? "هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي." : "Through this service, you will be able to link your family medical files to your medical file so that you can manage their records by login to your medical file.", - textLength: Provider.of(context, - listen: false) - .isArabic == - true - ? "هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي." - .length + textLength: Provider.of(context, listen: false).isArabic == true + ? "هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي.".length : "Through this service, you will be able to link your family medical files to your medical file so that you can manage their records by login to your medical file." .length)) : Container(), From 7771b8f3201bff66befc2362c5b99ab275b23402 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Sun, 20 Jun 2021 15:58:32 +0300 Subject: [PATCH 11/59] PAP-886 fixed, Insurance image button added. --- .../insurance/insurance_card_screen.dart | 173 +++++++----------- lib/widgets/others/app_scaffold_widget.dart | 80 +++++--- 2 files changed, 117 insertions(+), 136 deletions(-) diff --git a/lib/pages/insurance/insurance_card_screen.dart b/lib/pages/insurance/insurance_card_screen.dart index da66c572..cf58e815 100644 --- a/lib/pages/insurance/insurance_card_screen.dart +++ b/lib/pages/insurance/insurance_card_screen.dart @@ -6,7 +6,7 @@ import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/pages/insurance/insurance_details.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; +import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; @@ -33,26 +33,41 @@ class _InsuranceCardState extends State { @override Widget build(BuildContext context) { imagesInfo.add(ImagesInfo( - imageEn: - 'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/en/0.png', - imageAr: - 'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/ar/0.png')); + imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/ar/0.png')); return BaseView( onModelReady: (model) => model.getInsurance(), - builder: (BuildContext context, InsuranceViewModel model, Widget child) => - AppScaffold( + builder: (BuildContext context, InsuranceViewModel model, Widget child) => AppScaffold( isShowAppBar: true, baseViewModel: model, + showHomeAppBarIcon: false, appBarTitle: TranslationBase.of(context).insuranceCards, description: TranslationBase.of(context).infoInsuranceCards, infoList: TranslationBase.of(context).infoInsuranceCardsPoints, imagesInfo: imagesInfo, + appBarIcons: [ + IconButton( + padding: EdgeInsets.zero, + icon: Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + ), + margin: EdgeInsets.only(right: 8), + padding: EdgeInsets.only(right: 4, left: 4), + child: Image.asset( + 'assets/images/medical/insurance_update_icon_.png', + height: SizeConfig.heightMultiplier * 5, + width: SizeConfig.heightMultiplier * 5, + ), + ), + onPressed: () { + Navigator.push(context, FadePage(page: InsuranceUpdate())); + }, + ), + ], body: Container( - margin: EdgeInsets.only( - left: SizeConfig.screenWidth * 0.004, - right: SizeConfig.screenWidth * 0.004, - top: SizeConfig.screenWidth * 0.04), + margin: EdgeInsets.only(left: SizeConfig.screenWidth * 0.004, right: SizeConfig.screenWidth * 0.004, top: SizeConfig.screenWidth * 0.04), child: ListView.builder( itemCount: model.insurance == null ? 0 : model.insurance.length, itemBuilder: (BuildContext context, int index) { @@ -82,23 +97,16 @@ class _InsuranceCardState extends State { Container( padding: EdgeInsets.all(14), width: double.infinity, - decoration: BoxDecoration( - shape: BoxShape.rectangle, - border: Border.all( - color: Colors.grey, width: 0.2), - borderRadius: - BorderRadius.all(Radius.circular(2)), - boxShadow: [ - BoxShadow( - color: Colors.white70, - ), - ]), + decoration: BoxDecoration(shape: BoxShape.rectangle, border: Border.all(color: Colors.grey, width: 0.2), borderRadius: BorderRadius.all(Radius.circular(2)), boxShadow: [ + BoxShadow( + color: Colors.white70, + ), + ]), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts( - TranslationBase.of(context).companyName + - model.insurance[index].companyName, + TranslationBase.of(context).companyName + model.insurance[index].companyName, fontSize: 20.0, fontWeight: FontWeight.w700, ), @@ -108,93 +116,46 @@ class _InsuranceCardState extends State { thickness: 0.5, ), Column( - crossAxisAlignment: - CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Texts( - TranslationBase.of(context) - .category, - fontSize: 18.5), - Texts( - model.insurance[index] - .subCategoryDesc, - fontSize: 18.5) - ], + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [Texts(TranslationBase.of(context).category, fontSize: 18.5), Texts(model.insurance[index].subCategoryDesc, fontSize: 18.5)], ), Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Texts( - TranslationBase.of(context) - .expirationDate, - fontSize: 18.5), + Texts(TranslationBase.of(context).expirationDate, fontSize: 18.5), Texts( convertDateFormat( - model.insurance[index] - .cardValidTo, + model.insurance[index].cardValidTo, ), fontSize: 18.5), ], ), Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Texts( - TranslationBase.of(context) - .status + - ": ", - fontSize: 18.5), - model.insurance[index].isActive == - true - ? Texts( - TranslationBase.of(context) - .activeInsurence, - color: Colors.green, - fontWeight: FontWeight.w900, - fontSize: 17.9) - : Texts( - TranslationBase.of(context) - .notActive, - color: Colors.red, - fontWeight: FontWeight.w900, - fontSize: 17.9) + Texts(TranslationBase.of(context).status + ": ", fontSize: 18.5), + model.insurance[index].isActive == true + ? Texts(TranslationBase.of(context).activeInsurence, color: Colors.green, fontWeight: FontWeight.w900, fontSize: 17.9) + : Texts(TranslationBase.of(context).notActive, color: Colors.red, fontWeight: FontWeight.w900, fontSize: 17.9) ], ), Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Texts( - TranslationBase.of(context) - .patientCard, - fontSize: 18.5), - Texts( - model.insurance[index] - .patientCardID, - fontSize: 18.5) - ], + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [Texts(TranslationBase.of(context).patientCard, fontSize: 18.5), Texts(model.insurance[index].patientCardID, fontSize: 18.5)], ), - Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Texts( - TranslationBase.of(context) - .policyNumber, - fontSize: 18.5, - ), - Texts( - model.insurance[index] - .insurancePolicyNumber, - fontSize: 18.5, - ) - ]), + Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ + Texts( + TranslationBase.of(context).policyNumber, + fontSize: 18.5, + ), + Texts( + model.insurance[index].insurancePolicyNumber, + fontSize: 18.5, + ) + ]), ], ), SizedBox( @@ -204,11 +165,8 @@ class _InsuranceCardState extends State { Container( color: Colors.transparent, child: SecondaryButton( - onTap: () => { - getDetails(model.insurance[index]) - }, - label: TranslationBase.of(context) - .seeDetails, + onTap: () => {getDetails(model.insurance[index])}, + label: TranslationBase.of(context).seeDetails, textColor: Colors.white, ), width: double.infinity, @@ -235,23 +193,16 @@ class _InsuranceCardState extends State { final startIndex = exDate.indexOf(start); final endIndex = exDate.indexOf(end, startIndex + start.length); - var date = new DateTime.fromMillisecondsSinceEpoch( - int.parse(exDate.substring(startIndex + start.length, endIndex))); - String newDate = date.year.toString() + - "-" + - date.month.toString().padLeft(2, '0') + - "-" + - date.day.toString().padLeft(2, '0'); + var date = new DateTime.fromMillisecondsSinceEpoch(int.parse(exDate.substring(startIndex + start.length, endIndex))); + String newDate = date.year.toString() + "-" + date.month.toString().padLeft(2, '0') + "-" + date.day.toString().padLeft(2, '0'); return newDate.toString(); } getDetails(data) { GifLoaderDialogUtils.showMyDialog(context); - _insuranceCardService.getInsuranceDetails(data).then((value) => { - GifLoaderDialogUtils.hideDialog(context), - Navigator.push(context, - FadePage(page: InsuranceCardDetails(data: value[0]['CheckList']))) - }); + _insuranceCardService + .getInsuranceDetails(data) + .then((value) => {GifLoaderDialogUtils.hideDialog(context), Navigator.push(context, FadePage(page: InsuranceCardDetails(data: value[0]['CheckList'])))}); } } diff --git a/lib/widgets/others/app_scaffold_widget.dart b/lib/widgets/others/app_scaffold_widget.dart index 1412adf6..64dd8c27 100644 --- a/lib/widgets/others/app_scaffold_widget.dart +++ b/lib/widgets/others/app_scaffold_widget.dart @@ -95,7 +95,8 @@ class AppScaffold extends StatelessWidget { Widget build(BuildContext context) { AppGlobal.context = context; return Scaffold( - backgroundColor: backgroundColor ?? Theme.of(context).scaffoldBackgroundColor, + backgroundColor: + backgroundColor ?? Theme.of(context).scaffoldBackgroundColor, appBar: isShowAppBar ? appBar = AppBarWidget( appBarTitle: appBarTitle, @@ -112,19 +113,21 @@ class AppScaffold extends StatelessWidget { body: SafeArea( top: true, bottom: true, - child: (!Provider.of(context, listen: false).isLogin && isShowDecPage) - ? NotAutPage( - title: title ?? appBarTitle, - description: description, - infoList: infoList, - imagesInfo: imagesInfo, - ) - : baseViewModel != null - ? NetworkBaseView( - child: buildBodyWidget(context), - baseViewModel: baseViewModel, + child: + (!Provider.of(context, listen: false).isLogin && + isShowDecPage) + ? NotAutPage( + title: title ?? appBarTitle, + description: description, + infoList: infoList, + imagesInfo: imagesInfo, ) - : buildBodyWidget(context), + : baseViewModel != null + ? NetworkBaseView( + child: buildBodyWidget(context), + baseViewModel: baseViewModel, + ) + : buildBodyWidget(context), ), floatingActionButton: floatingActionButton, ); @@ -135,12 +138,14 @@ class AppScaffold extends StatelessWidget { } buildBodyWidget(context) { - return Stack(children: [body, isHelp == true ? RobotIcon() : Container()]); + return Stack( + children: [body, isHelp == true ? RobotIcon() : Container()]); } } class AppBarWidget extends StatefulWidget with PreferredSizeWidget { - final AuthenticatedUserObject authenticatedUserObject = locator(); + final AuthenticatedUserObject authenticatedUserObject = + locator(); final String appBarTitle; final bool showHomeAppBarIcon; @@ -188,12 +193,22 @@ class AppBarWidgetState extends State { ProjectViewModel projectViewModel = Provider.of(context); return AppBar( elevation: 0, - backgroundColor: widget.isPharmacy ? Colors.green : Theme.of(context).appBarTheme.color, + backgroundColor: widget.isPharmacy + ? Colors.green + : Theme.of(context).appBarTheme.color, textTheme: TextTheme( - headline6: TextStyle(color: Theme.of(context).textTheme.headline1.color, fontWeight: FontWeight.bold), + headline6: TextStyle( + color: Theme.of(context).textTheme.headline1.color, + fontWeight: FontWeight.bold), ), - title: Text(widget.authenticatedUserObject.isLogin || !widget.isShowDecPage ? widget.appBarTitle.toUpperCase() : TranslationBase.of(context).serviceInformationTitle, - style: TextStyle(fontWeight: FontWeight.bold, color: Theme.of(context).textTheme.headline1.color, fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans')), + title: Text( + widget.authenticatedUserObject.isLogin || !widget.isShowDecPage + ? widget.appBarTitle.toUpperCase() + : TranslationBase.of(context).serviceInformationTitle, + style: TextStyle( + fontWeight: FontWeight.bold, + color: Theme.of(context).textTheme.headline1.color, + fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans')), leading: Builder( builder: (BuildContext context) { return ArrowBack(); @@ -203,7 +218,9 @@ class AppBarWidgetState extends State { actions: [ (widget.isPharmacy && widget.showPharmacyCart) ? IconButton( - icon: Badge(badgeContent: Text(badgeText), child: Icon(Icons.shopping_cart)), + icon: Badge( + badgeContent: Text(badgeText), + child: Icon(Icons.shopping_cart)), color: Colors.white, onPressed: () { Navigator.of(context).popUntil(ModalRoute.withName('/')); @@ -215,7 +232,10 @@ class AppBarWidgetState extends State { position: BadgePosition.topStart(top: -15, start: -10), badgeContent: Text( badgeText, - style: TextStyle(fontSize: 9, color: Colors.white, fontWeight: FontWeight.normal), + style: TextStyle( + fontSize: 9, + color: Colors.white, + fontWeight: FontWeight.normal), ), child: Icon(Icons.shopping_cart)), color: Colors.white, @@ -229,7 +249,10 @@ class AppBarWidgetState extends State { icon: Icon(FontAwesomeIcons.home), color: Colors.white, onPressed: () { - Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => LandingPage()), (Route r) => false); + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => LandingPage()), + (Route r) => false); // Cart Click Event if (_onCartClick != null) _onCartClick(); @@ -293,11 +316,18 @@ class _RobotIcon extends State { ], ), child: TyperAnimatedTextKit( - text: Provider.of(context, listen: false).isArabic == true + text: Provider.of(context, + listen: false) + .isArabic == + true ? "هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي." : "Through this service, you will be able to link your family medical files to your medical file so that you can manage their records by login to your medical file.", - textLength: Provider.of(context, listen: false).isArabic == true - ? "هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي.".length + textLength: Provider.of(context, + listen: false) + .isArabic == + true + ? "هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي." + .length : "Through this service, you will be able to link your family medical files to your medical file so that you can manage their records by login to your medical file." .length)) : Container(), From e41040b1b96734bbb32778520dbbd39c14ceac84 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Mon, 21 Jun 2021 15:27:58 +0300 Subject: [PATCH 12/59] PAP-675 fixed, H2O Week chart vales from -1 to 1. --- lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart b/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart index a89ec799..972891a9 100644 --- a/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart +++ b/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart @@ -96,6 +96,8 @@ class H2OViewModel extends BaseViewModel { id: 'Global Revenue', domainFn: (ChartSeries sales, _) => sales.y, measureFn: (ChartSeries sales, _) => sales.x, + measureLowerBoundFn: (ChartSeries sales, _) => sales.x - 1, + measureUpperBoundFn: (ChartSeries sales, _) => sales.x + 1, data: globalData, ), ]; From 1f01f40ad81caa0fcbbbdb9d6e0364a6bbf9fc1e Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Tue, 22 Jun 2021 10:07:55 +0300 Subject: [PATCH 13/59] PAP-681 fixed, H2O Unit changing & reflection. --- lib/config/localized_values.dart | 2 +- lib/config/shared_pref_kay.dart | 1 + .../h2o/h20_setting.dart | 30 ++--- .../AlHabibMedicalService/h2o/today_page.dart | 122 +++++++++++------- 4 files changed, 91 insertions(+), 64 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index e5f21342..815cbd3f 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1808,7 +1808,7 @@ const Map localizedValues = { "drinking": {"en": "Drinkning", "ar": "الشرب"}, "remaining": {"en": "Remaining", "ar": "المتبقي"}, "taken": {"en": "Taken", "ar": " مأخوذ"}, - "ml": {"en": "ml", "ar": "مل"}, + "ml": {"en": "ML", "ar": "مل"}, "l": {"en": "L", "ar": "لتر"}, "custom-label": {"en": "Enter amount", "ar": "أدخل كمية الماء"}, "custom-label-in-litres": { diff --git a/lib/config/shared_pref_kay.dart b/lib/config/shared_pref_kay.dart index caada21f..6e761991 100644 --- a/lib/config/shared_pref_kay.dart +++ b/lib/config/shared_pref_kay.dart @@ -29,3 +29,4 @@ const BLOOD_TYPE = 'blood-type'; const NOTIFICATION_COUNT = 'notification-count'; const PHARMACY_SELECTED_ADDRESS = 'selected-address'; const PHARMACY_AUTORZIE_TOKEN = 'PHARMACY_AUTORZIE_TOKEN'; +const H2O_UNIT = 'H2O_UNIT'; diff --git a/lib/pages/AlHabibMedicalService/h2o/h20_setting.dart b/lib/pages/AlHabibMedicalService/h2o/h20_setting.dart index 4295558a..4acc7eaf 100644 --- a/lib/pages/AlHabibMedicalService/h2o/h20_setting.dart +++ b/lib/pages/AlHabibMedicalService/h2o/h20_setting.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/H2O/user_detail_model.dart'; import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/H2O_service.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart'; @@ -13,6 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/painting.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; +import 'package:shared_preferences/shared_preferences.dart'; import 'Dialog/setting_page_radio_button_list_dialog.dart'; @@ -31,7 +33,7 @@ class _H2oSettingState extends State { TextEditingController _nameController = TextEditingController(); TextEditingController _heightController = TextEditingController(); TextEditingController _weightController = TextEditingController(); - bool _isUnitML = false; + bool _isUnitML = true; bool _isGenderMale = false; bool _isHeightCM = false; bool _isWeightKG = false; @@ -61,6 +63,14 @@ class _H2oSettingState extends State { _isGenderMale = _userDetailModel.gender == "M" ? true : false; _dobDate = DateUtil.convertStringToDate(_userDetailModel.dOB); _selectedActiveLevel = _userDetailModel.activityID ?? 1; + readPrefs(); + } + + SharedPreferences prefs; + void readPrefs() async { + prefs = await SharedPreferences.getInstance(); + _isUnitML = (prefs.getString(H2O_UNIT) ?? "ml") == "ml" ? true : false; + setState(() {}); } @override @@ -68,19 +78,9 @@ class _H2oSettingState extends State { // TODO: implement didChangeDependencies super.didChangeDependencies(); - _activityLevelListEng = [ - TranslationBase.of(context).notActive, - TranslationBase.of(context).lightActive, - TranslationBase.of(context).modActive, - TranslationBase.of(context).active - ]; + _activityLevelListEng = [TranslationBase.of(context).notActive, TranslationBase.of(context).lightActive, TranslationBase.of(context).modActive, TranslationBase.of(context).active]; - _remindedTimeListEng = [ - "1 ${TranslationBase.of(context).time}", - "2 ${TranslationBase.of(context).times}", - "3 ${TranslationBase.of(context).times}", - "4 ${TranslationBase.of(context).times}" - ]; + _remindedTimeListEng = ["1 ${TranslationBase.of(context).time}", "2 ${TranslationBase.of(context).times}", "3 ${TranslationBase.of(context).times}", "4 ${TranslationBase.of(context).times}"]; } @override @@ -339,8 +339,7 @@ class _H2oSettingState extends State { ]); } - Widget _commonSlidersRow( - _controller, double _minValue, double _maxValue, double _valueOrg, Function(String) onTextValueChange, Function(double) onValueChange) { + Widget _commonSlidersRow(_controller, double _minValue, double _maxValue, double _valueOrg, Function(String) onTextValueChange, Function(double) onValueChange) { return Container( margin: EdgeInsets.only(top: 6), padding: EdgeInsets.all(6), @@ -451,6 +450,7 @@ class _H2oSettingState extends State { _userDetailModel.dOB = tempDate; _userDetailModel.activityID = _selectedActiveLevel; GifLoaderDialogUtils.showMyDialog(context); + await prefs.setString(H2O_UNIT, _isUnitML ? "ml" : "l"); await widget.viewModel.updateUserDetail(_userDetailModel, (tag) { if (tag) { AppToast.showSuccessToast(message: TranslationBase.of(context).success); diff --git a/lib/pages/AlHabibMedicalService/h2o/today_page.dart b/lib/pages/AlHabibMedicalService/h2o/today_page.dart index 33383287..e52d2732 100644 --- a/lib/pages/AlHabibMedicalService/h2o/today_page.dart +++ b/lib/pages/AlHabibMedicalService/h2o/today_page.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/widgets/h20_floating_action_button.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; @@ -7,8 +8,14 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:percent_indicator/circular_percent_indicator.dart'; +import 'package:shared_preferences/shared_preferences.dart'; class TodayPage extends StatelessWidget { + Future readPrefs() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + return (prefs.getString(H2O_UNIT) ?? "ml") == "ml" ? true : false; + } + @override Widget build(BuildContext context) { return BaseView( @@ -34,55 +41,74 @@ class TodayPage extends StatelessWidget { : (model.userProgressData.percentageConsumed / 100) >= 1 ? 1 : (model.userProgressData.percentageConsumed / 100), - //, center: Center( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - // SizedBox( - // height: 40, - // ), - Text( - TranslationBase.of(context).consumed, - style: TextStyle(fontSize: 16.0), - ), - SizedBox( - height: 4, - ), - Text( - model.userProgressData == null - ? "0.0" - : model.userProgressData.quantityConsumed.toString() + TranslationBase.of(context).ml, - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 14.0, color: HexColor("#60BCF9")), - ), - SizedBox( - height: 4, - ), - SizedBox( - height: 5, - width: 50, - child: Container(), - ), - SizedBox( - height: 4, - ), - Text( - TranslationBase.of(context).remaining, - style: TextStyle(fontSize: 16.0), - ), - SizedBox( - height: 4, - ), - Text( - model.userProgressData == null - ? "0.0" - : (model.userProgressData.quantityLimit - model.userProgressData.quantityConsumed) < 0 - ? "0 ${TranslationBase.of(context).ml}" - : (model.userProgressData.quantityLimit - model.userProgressData.quantityConsumed).toString() + - ' ${TranslationBase.of(context).ml}', - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 14.0), - ), - ], + child: FutureBuilder( + future: readPrefs(), + builder: (context, data) { + var isUnitML = true; + var unit; + if (data.connectionState == ConnectionState.done) { + isUnitML = data.data; + } + if (isUnitML) { + unit = TranslationBase.of(context).ml; + } else { + unit = TranslationBase.of(context).l; + } + var totalH2O = model?.userProgressData?.quantityLimit ?? 0.0; + var consumedH2O = model?.userProgressData?.quantityConsumed ?? 0.0; + if (!isUnitML) { + totalH2O = totalH2O / 1000; + consumedH2O = consumedH2O / 1000; + } + var remainingH2O = totalH2O - consumedH2O; + + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + // SizedBox( + // height: 40, + // ), + Text( + TranslationBase.of(context).consumed, + style: TextStyle(fontSize: 16.0), + ), + SizedBox( + height: 4, + ), + Text( + model.userProgressData == null ? "0.0" : "$consumedH2O $unit", + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 14.0, color: HexColor("#60BCF9")), + ), + SizedBox( + height: 4, + ), + SizedBox( + height: 5, + width: 50, + child: Container(), + ), + SizedBox( + height: 4, + ), + Text( + TranslationBase.of(context).remaining, + style: TextStyle(fontSize: 16.0), + ), + SizedBox( + height: 4, + ), + Text( + model.userProgressData == null + ? "0.0" + : (remainingH2O) < 0 + ? "0 $unit" + : '$remainingH2O $unit', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 14.0), + ), + ], + ); + }, ), ), circularStrokeCap: CircularStrokeCap.butt, From d6566d4abfe239a654bfeaf8f8a7d1501410167c Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Tue, 22 Jun 2021 11:46:03 +0300 Subject: [PATCH 14/59] PAP-678 fixed, month & days in axis are aligned now. --- lib/pages/AlHabibMedicalService/h2o/month_page.dart | 7 +++++-- lib/pages/AlHabibMedicalService/h2o/week_page.dart | 5 ++++- lib/widgets/charts/app_bar_chart.dart | 4 +++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/pages/AlHabibMedicalService/h2o/month_page.dart b/lib/pages/AlHabibMedicalService/h2o/month_page.dart index e0118495..8867fb77 100644 --- a/lib/pages/AlHabibMedicalService/h2o/month_page.dart +++ b/lib/pages/AlHabibMedicalService/h2o/month_page.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/charts/app_bar_chart.dart'; @@ -8,15 +9,17 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class MonthPage extends StatelessWidget { @override Widget build(BuildContext context) { + ProjectViewModel projectViewModel = Provider.of(context); return BaseView( onModelReady: (model) => model.getUserProgressForMonthData(), builder: (_, model, widget) => AppScaffold( isShowAppBar: false, - appBarTitle: TranslationBase.of(context).h2o, + appBarTitle: TranslationBase.of(context).h2o, baseViewModel: model, body: Padding( padding: EdgeInsets.all(8.0), @@ -46,7 +49,7 @@ class MonthPage extends StatelessWidget { ], ), // SizedBox(height: 8), - AppBarChart(seriesList: model.userProgressForMonthDataSeries), + AppBarChart(seriesList: model.userProgressForMonthDataSeries, isArabic: projectViewModel.isArabic), ], ), ), diff --git a/lib/pages/AlHabibMedicalService/h2o/week_page.dart b/lib/pages/AlHabibMedicalService/h2o/week_page.dart index 34e365e6..6f4423b2 100644 --- a/lib/pages/AlHabibMedicalService/h2o/week_page.dart +++ b/lib/pages/AlHabibMedicalService/h2o/week_page.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/charts/app_bar_chart.dart'; @@ -8,10 +9,12 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class WeekPage extends StatelessWidget { @override Widget build(BuildContext context) { + ProjectViewModel projectViewModel = Provider.of(context); return BaseView( onModelReady: (model) => model.getUserProgressForWeekData(), builder: (_, model, widget) => AppScaffold( @@ -46,7 +49,7 @@ class WeekPage extends StatelessWidget { ], ), // SizedBox(height: 8), - AppBarChart(seriesList: model.userProgressForWeekDataSeries), + AppBarChart(seriesList: model.userProgressForWeekDataSeries,isArabic: projectViewModel.isArabic), ], ), ), diff --git a/lib/widgets/charts/app_bar_chart.dart b/lib/widgets/charts/app_bar_chart.dart index 439d5ae9..818de33f 100644 --- a/lib/widgets/charts/app_bar_chart.dart +++ b/lib/widgets/charts/app_bar_chart.dart @@ -4,10 +4,12 @@ import 'package:charts_flutter/flutter.dart' as charts; class AppBarChart extends StatelessWidget { const AppBarChart({ Key key, + @required this.isArabic, @required this.seriesList, }) : super(key: key); final List seriesList; + final bool isArabic; @override Widget build(BuildContext context) { @@ -19,7 +21,7 @@ class AppBarChart extends StatelessWidget { // animate: animate, domainAxis: charts.OrdinalAxisSpec( renderSpec: charts.GridlineRendererSpec( - labelAnchor: charts.TickLabelAnchor.after, + labelAnchor: isArabic ? charts.TickLabelAnchor.before : charts.TickLabelAnchor.after, labelRotation: -30, labelOffsetFromAxisPx: 30, labelOffsetFromTickPx: 15, From b7fbee32521c614a294a58a08c3cf47ea1174dcc Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Wed, 23 Jun 2021 10:06:43 +0300 Subject: [PATCH 15/59] improvements --- .../AlHabibMedicalService/H2O_view_model.dart | 13 +++++++++++-- lib/pages/AlHabibMedicalService/h2o/today_page.dart | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart b/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart index 972891a9..9d163a27 100644 --- a/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart +++ b/lib/core/viewModels/AlHabibMedicalService/H2O_view_model.dart @@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; import 'package:charts_flutter/flutter.dart' as charts; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import '../../../locator.dart'; +import 'dart:math' as math; class H2OViewModel extends BaseViewModel { H2OService _h2OService = locator(); @@ -91,13 +92,21 @@ class H2OViewModel extends BaseViewModel { _h2OService.userProgressForWeekDataList.forEach((UserProgressForWeekDataModel data) { globalData.add(new ChartSeries(data.dayName, data.percentageConsumed)); }); + Iterable minMaxList = globalData.map((e) => e.x).toList(); + int maxValue = minMaxList.isEmpty ? 0 : minMaxList.reduce(math.max); + int minValue = minMaxList.isEmpty ? 0 : minMaxList.reduce(math.min); + + if (maxValue == 0 && minValue == 0) { + maxValue = 1; + minValue = -1; + } return [ new charts.Series( id: 'Global Revenue', domainFn: (ChartSeries sales, _) => sales.y, measureFn: (ChartSeries sales, _) => sales.x, - measureLowerBoundFn: (ChartSeries sales, _) => sales.x - 1, - measureUpperBoundFn: (ChartSeries sales, _) => sales.x + 1, + measureLowerBoundFn: (ChartSeries sales, _) => minValue, + measureUpperBoundFn: (ChartSeries sales, _) => maxValue, data: globalData, ), ]; diff --git a/lib/pages/AlHabibMedicalService/h2o/today_page.dart b/lib/pages/AlHabibMedicalService/h2o/today_page.dart index e52d2732..03d11f50 100644 --- a/lib/pages/AlHabibMedicalService/h2o/today_page.dart +++ b/lib/pages/AlHabibMedicalService/h2o/today_page.dart @@ -46,7 +46,7 @@ class TodayPage extends StatelessWidget { future: readPrefs(), builder: (context, data) { var isUnitML = true; - var unit; + String unit; if (data.connectionState == ConnectionState.done) { isUnitML = data.data; } @@ -55,6 +55,7 @@ class TodayPage extends StatelessWidget { } else { unit = TranslationBase.of(context).l; } + unit = unit.toLowerCase(); var totalH2O = model?.userProgressData?.quantityLimit ?? 0.0; var consumedH2O = model?.userProgressData?.quantityConsumed ?? 0.0; if (!isUnitML) { From 3128810fb0ebf446d84b3451051ab5ad99c5682b Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Wed, 23 Jun 2021 15:10:09 +0300 Subject: [PATCH 16/59] improvements. --- lib/core/service/client/base_app_client.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index f12ef3da..03f12df1 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -68,7 +68,7 @@ class BaseAppClient { body['VersionID'] = VERSION_ID; body['Channel'] = CHANNEL; - body['LanguageID'] = languageID == 'ar' ? 1 : 2; + body['LanguageID'] = (languageID == 'ar' ? 1 : 2); body['IPAdress'] = IP_ADDRESS; body['generalid'] = GENERAL_ID; From 4217fc0826612ce9efa0295be21a533d68965d9e Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Sun, 4 Jul 2021 17:05:15 +0300 Subject: [PATCH 17/59] PAP-685: fix issue --- lib/pages/medical/vital_sign/LineChartCurved.dart | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/lib/pages/medical/vital_sign/LineChartCurved.dart b/lib/pages/medical/vital_sign/LineChartCurved.dart index fe112767..76610708 100644 --- a/lib/pages/medical/vital_sign/LineChartCurved.dart +++ b/lib/pages/medical/vital_sign/LineChartCurved.dart @@ -27,7 +27,7 @@ class LineChartCurved extends StatelessWidget { getYaxix(); calculateMaxAndMin(); return AspectRatio( - aspectRatio: 1.1, + aspectRatio: 1.0, child: Container( decoration: const BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(18)), @@ -80,14 +80,6 @@ class LineChartCurved extends StatelessWidget { } getYaxix() { - // int indexess= (timeSeries.length*0.30).toInt(); - // for (int index = 0; index < timeSeries.length; index++) { - // int mIndex = indexess * index; - // if (mIndex < timeSeries.length) { - // yAxixs.add(timeSeries[mIndex].sales); - // } - // } - for (int index = 0; index < timeSeries.length; index++) { int mIndex = indexes * index; if (mIndex < timeSeries.length) { @@ -181,7 +173,7 @@ class LineChartCurved extends StatelessWidget { minX: minX, maxX: maxX, maxY: maxY, - minY: minY, + minY: 0, lineBarsData: getData(context), ); } From dd1dff01d6bb97b2b188da1a3f42f1ebce2743d9 Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Sun, 4 Jul 2021 17:44:10 +0300 Subject: [PATCH 18/59] PAP-790: fix Alignment of mobile number --- .../New_E_Referral/new_e_referral_step_one_page.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart index b6cddf18..5a3271f2 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart @@ -292,7 +292,9 @@ class MobileNumberTextFiled extends StatelessWidget { padding: EdgeInsets.all(5), decoration: BoxDecoration( borderRadius: BorderRadius.circular(15), color: Colors.white), - child: Row(children: [ + child: Row( + textDirection: TextDirection.ltr, + children: [ Expanded( flex: 1, child: Icon( From c14adccb49435ec97f21aa7db79a23ba4d59f95e Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Mon, 5 Jul 2021 09:46:39 +0300 Subject: [PATCH 19/59] PAP-667: add unit to home page --- lib/pages/landing/home_page.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index d1b8d4f3..d3eda1ae 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -408,7 +408,7 @@ class _HomePageState extends State { height: 40, ), Texts( - "${model.heightCm}", + "${model.heightCm} ${TranslationBase.of(context).cm}", color: Colors.white, fontSize: 17, ) @@ -426,7 +426,7 @@ class _HomePageState extends State { width: 25, height: 40, ), - Texts('${model.weightKg}', + Texts('${model.weightKg} ${TranslationBase.of(context).kg}', color: Colors.white, fontSize: 17) ], From c6a68083a432a2c40a1ac579e6ae39f0cccef518 Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Mon, 5 Jul 2021 09:59:13 +0300 Subject: [PATCH 20/59] PAP-667: fix blood type --- lib/pages/landing/home_page.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index d3eda1ae..d198c00d 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -437,8 +437,6 @@ class _HomePageState extends State { ), Expanded( child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, children: [ Image.asset( 'assets/images/blood_icon.png', @@ -448,6 +446,7 @@ class _HomePageState extends State { Texts( '${model.booldType}', color: Colors.white, + fontSize: 17 ) ], ), From 2e1c9780d73dd31cf1c97f7720b4234be4d4f8a9 Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Mon, 5 Jul 2021 12:14:28 +0300 Subject: [PATCH 21/59] PAP-610: prevent show send email button if user have no vaccine --- lib/core/viewModels/vaccine_view_model.dart | 2 +- lib/pages/vaccine/my_vaccines_screen.dart | 323 ++++++++++---------- 2 files changed, 171 insertions(+), 154 deletions(-) diff --git a/lib/core/viewModels/vaccine_view_model.dart b/lib/core/viewModels/vaccine_view_model.dart index 9f8dfecf..37b57da4 100644 --- a/lib/core/viewModels/vaccine_view_model.dart +++ b/lib/core/viewModels/vaccine_view_model.dart @@ -22,7 +22,7 @@ class VaccineViewModel extends BaseViewModel { await _vaccineService.getMyVaccine(); if (_vaccineService.hasError) { error = _vaccineService.error; - setState(ViewState.ErrorLocal); + setState(ViewState.Error); } else setState(ViewState.Idle); } diff --git a/lib/pages/vaccine/my_vaccines_screen.dart b/lib/pages/vaccine/my_vaccines_screen.dart index fb723a1f..27ce8399 100644 --- a/lib/pages/vaccine/my_vaccines_screen.dart +++ b/lib/pages/vaccine/my_vaccines_screen.dart @@ -30,173 +30,190 @@ class _MyVaccinesState extends State { onModelReady: (model) => model.getVaccine(), builder: (BuildContext context, VaccineViewModel model, Widget child) => AppScaffold( - isShowAppBar: true, - appBarTitle: TranslationBase.of(context).myVaccines, - baseViewModel: model, - body: Container( - margin: EdgeInsets.only( - left: SizeConfig.screenWidth * 0.004, - right: SizeConfig.screenWidth * 0.004, - top: SizeConfig.screenWidth * 0.04, - ), - child: Column( - children: [ - RoundedContainer( - backgroundColor: Colors.white, - child: ExpansionTile( - title: Container( - height: 65.0, - child: Text('2018'), - ), - children: [ - Container( - child: ListView.builder( - scrollDirection: Axis.vertical, - shrinkWrap: true, - itemCount: model.vaccineList == null - ? 0 - : model.vaccineList.length, - itemBuilder: (BuildContext context, int index) { - return Column( - children: [ - RoundedContainer( - child: Column( - children: [ - Row( + isShowAppBar: true, + baseViewModel: model, + appBarTitle: TranslationBase.of(context).myVaccines, + body: Container( + margin: EdgeInsets.only( + left: SizeConfig.screenWidth * 0.004, + right: SizeConfig.screenWidth * 0.004, + top: SizeConfig.screenWidth * 0.04, + ), + child: Column( + children: [ + RoundedContainer( + backgroundColor: Colors.white, + child: ExpansionTile( + title: Container( + height: 65.0, + child: Text('2018'), + ), + children: [ + Container( + child: ListView.builder( + scrollDirection: Axis.vertical, + shrinkWrap: true, + itemCount: model.vaccineList == null + ? 0 + : model.vaccineList.length, + itemBuilder: (BuildContext context, int index) { + return Column( + children: [ + RoundedContainer( + child: Column( children: [ - Expanded( - child: Column( - children: [ - Padding( - padding: EdgeInsets.symmetric( - horizontal: 20.0, - vertical: 20.0), - child: Image.network( - model.vaccineList[index] - .doctorImageURL, - height: SizeConfig + Row( + children: [ + Expanded( + child: Column( + children: [ + Padding( + padding: EdgeInsets + .symmetric( + horizontal: + 20.0, + vertical: 20.0), + child: Image.network( + model + .vaccineList[ + index] + .doctorImageURL, + height: SizeConfig .imageSizeMultiplier * - 23, - width: SizeConfig + 23, + width: SizeConfig .imageSizeMultiplier * - 20, - fit: BoxFit.fill, - ), + 20, + fit: BoxFit.fill, + ), + ), + ], ), - ], - ), - flex: 2, - ), - Expanded( - child: Container( - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - model.vaccineList[index] + flex: 2, + ), + Expanded( + child: Container( + child: Column( + crossAxisAlignment: + CrossAxisAlignment + .start, + children: [ + Text( + model + .vaccineList[ + index] .doctorTitle + - model.vaccineList[index] - .doctorName, - style: TextStyle( - fontWeight: + model + .vaccineList[ + index] + .doctorName, + style: TextStyle( + fontWeight: FontWeight.w900, - fontSize: 16.6, - ), - ), - SizedBox(height: 7.0), - Text( - model.vaccineList[index] - .projectName, - style: TextStyle( - fontSize: 17.0, - letterSpacing: 0.5, - ), - ), - SizedBox(height: 7.0), - Text( - model.vaccineList[index] - .vaccineName, - style: TextStyle( - fontSize: 17.0, - ), - ), - SizedBox(height: 7.0), - Text( - 'Date Taken ' + - convertDateFormat(model - .vaccineList[index] - .invoiceDate), - style: TextStyle( - fontSize: 17.0), + fontSize: 16.6, + ), + ), + SizedBox(height: 7.0), + Text( + model + .vaccineList[ + index] + .projectName, + style: TextStyle( + fontSize: 17.0, + letterSpacing: 0.5, + ), + ), + SizedBox(height: 7.0), + Text( + model + .vaccineList[ + index] + .vaccineName, + style: TextStyle( + fontSize: 17.0, + ), + ), + SizedBox(height: 7.0), + Text( + 'Date Taken ' + + convertDateFormat(model + .vaccineList[ + index] + .invoiceDate), + style: TextStyle( + fontSize: 17.0), + ), + ], ), - ], + ), + flex: 5, ), - ), - flex: 5, + ], ), ], ), - ], - ), - ), - ], - ); - }), - ) - ], - ), - ), - // SpaceBetweenTexts(space: 165.0), - ], - ), - ), - bottomSheet: Container( - color: Theme.of(context).scaffoldBackgroundColor, - padding: EdgeInsets.all(12), - height: MediaQuery.of(context).size.height * 0.25, - width: double.infinity, - child: Column( - children: [ - Divider( - height: 2, - thickness: 1, - ), - SizedBox( - height: 6, - ), - Container( - width: double.infinity, - // height: 80.0, - child: Button( - disabled: true, - label: TranslationBase.of(context).checkVaccineAvailability, - backgroundColor: Color(0xff9EA3A4), - onTap: () => Navigator.push( - context, FadePage(page: MyVaccinesItemPage())), - ), + ), + ], + ); + }), + ) + ], + ), + ), + // SpaceBetweenTexts(space: 165.0), + ], ), - if (projectViewModel.havePrivilege(27)) - Container( - width: double.infinity, - // height: 80.0, - child: SecondaryButton( - label: TranslationBase.of(context).sendEmail, - color: Color(0xffF62426), - textColor: Colors.white, - disabled: model.vaccineList.length == 0, - loading: model.state == ViewState.BusyLocal, - onTap: () async { - model.sendEmail( - message: TranslationBase.of(context) - .emailSentSuccessfully); - }, + ), + bottomSheet: model.state == ViewState.Busy?Container(height: 0,): model.vaccineList.length > 0 + ? Container( + color: Theme.of(context).scaffoldBackgroundColor, + padding: EdgeInsets.all(12), + height: MediaQuery.of(context).size.height * 0.25, + width: double.infinity, + child: Column( + children: [ + Divider( + height: 2, + thickness: 1, + ), + SizedBox( + height: 6, ), - ), - ], + Container( + width: double.infinity, + // height: 80.0, + child: Button( + disabled: true, + label: TranslationBase.of(context) + .checkVaccineAvailability, + backgroundColor: Color(0xff9EA3A4), + onTap: () => Navigator.push( + context, FadePage(page: MyVaccinesItemPage())), + ), + ), + if (projectViewModel.havePrivilege(27)) + Container( + width: double.infinity, + // height: 80.0, + child: SecondaryButton( + label: TranslationBase.of(context).sendEmail, + color: Color(0xffF62426), + textColor: Colors.white, + disabled: model.vaccineList.length == 0, + loading: model.state == ViewState.BusyLocal, + onTap: () async { + model.sendEmail( + message: TranslationBase.of(context) + .emailSentSuccessfully); + }, + ), + ), + ], + ), + ) + : Container(height: 0,), ), - ), - ), ); } From b2e9060c3fe8a3dca2ed4e4f1b26d31da53082be Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Wed, 7 Jul 2021 09:49:55 +0300 Subject: [PATCH 22/59] Bug PAP-877 fixed, blood tracker exception. --- .../medical/blood_sugar_view_model.dart | 3 + .../blood_suger/blood_sugar_weekly_page.dart | 69 ++++++++++--------- .../my_trackers/widget/LineChartCurved.dart | 2 +- 3 files changed, 41 insertions(+), 33 deletions(-) diff --git a/lib/core/viewModels/medical/blood_sugar_view_model.dart b/lib/core/viewModels/medical/blood_sugar_view_model.dart index 8a513992..28292311 100644 --- a/lib/core/viewModels/medical/blood_sugar_view_model.dart +++ b/lib/core/viewModels/medical/blood_sugar_view_model.dart @@ -39,6 +39,9 @@ class BloodSugarViewMode extends BaseViewModel { element.dailyAverageResult.toDouble(), )); }); + if (bloodWeekTimeSeriesData.isEmpty) { + bloodWeekTimeSeriesData.add(TimeSeriesSales2(DateTime.now(), 0)); + } for (int index = 0; index < bloodSugarService.monthDiabtectResultAverageList.length; diff --git a/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart b/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart index 60f3293d..328ac246 100644 --- a/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart +++ b/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart @@ -31,42 +31,47 @@ class BloodSugarWeeklyPage extends StatelessWidget { Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( - body:timeSeriesData.isEmpty?Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),): ListView( - children: [ - Container( - margin: EdgeInsets.only(top: 12, left: 8, right: 8), - color: Colors.white, - child: LineChartCurved( - title: 'Sugar', - timeSeries: timeSeriesData, - indexes: timeSeriesData.length ~/ 5.5, - ), - ), - SizedBox( - height: 12, - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Texts(TranslationBase.of(context).details), - ), - Container( - padding: EdgeInsets.all(10), - color: Colors.transparent, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Table( - border: TableBorder.symmetric( - inside: BorderSide(width: 2.0, color: Colors.grey[300]), + body: timeSeriesData.isEmpty + ? Container( + child: Center( + child: Texts(TranslationBase.of(context).noDataAvailable), + ), + ) + : ListView( + children: [ + Container( + margin: EdgeInsets.only(top: 12, left: 8, right: 8), + color: Colors.white, + child: LineChartCurved( + title: 'Sugar', + timeSeries: timeSeriesData, + indexes: timeSeriesData.length ~/ 5.5, ), - children: - fullData(context, projectViewModel, bloodSugarViewMode), ), + SizedBox( + height: 12, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Texts(TranslationBase.of(context).details), + ), + Container( + padding: EdgeInsets.all(10), + color: Colors.transparent, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Table( + border: TableBorder.symmetric( + inside: BorderSide(width: 2.0, color: Colors.grey[300]), + ), + children: fullData(context, projectViewModel, bloodSugarViewMode), + ), + ], + ), + ) ], ), - ) - ], - ), ); } diff --git a/lib/pages/medical/my_trackers/widget/LineChartCurved.dart b/lib/pages/medical/my_trackers/widget/LineChartCurved.dart index eeff06dd..70f10407 100644 --- a/lib/pages/medical/my_trackers/widget/LineChartCurved.dart +++ b/lib/pages/medical/my_trackers/widget/LineChartCurved.dart @@ -184,7 +184,7 @@ class LineChartCurved extends StatelessWidget { } double getMinY() { - double min = timeSeries[0].sales; + double min = timeSeries.isEmpty ? 0 : timeSeries.first.sales; timeSeries.forEach((element) { double resultValueDouble = element.sales; if (resultValueDouble < min) min = resultValueDouble; From d0c8c4f017f44b4dfb2fd3fdab4001ee96256727 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Thu, 8 Jul 2021 10:37:56 +0300 Subject: [PATCH 23/59] Bug PAP-671, PAP-672 fixed, bottom nav added on H2O screen. --- .../AlHabibMedicalService/h2o/h2o_page.dart | 48 +++++++++++++++++-- .../bottom_navigation/bottom_nav_bar.dart | 36 +++++++++----- 2 files changed, 69 insertions(+), 15 deletions(-) diff --git a/lib/pages/AlHabibMedicalService/h2o/h2o_page.dart b/lib/pages/AlHabibMedicalService/h2o/h2o_page.dart index b4d39682..b847190f 100644 --- a/lib/pages/AlHabibMedicalService/h2o/h2o_page.dart +++ b/lib/pages/AlHabibMedicalService/h2o/h2o_page.dart @@ -1,12 +1,18 @@ import 'dart:ui'; +import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/H2O_view_model.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/h20_setting.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/month_page.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/today_page.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/week_page.dart'; +import 'package:diplomaticquarterapp/pages/DrawerPages/family/my-family.dart'; +import 'package:diplomaticquarterapp/pages/ToDoList/ToDo.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart'; +import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/bottom_navigation/bottom_nav_bar.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; @@ -18,14 +24,16 @@ class H2OPage extends StatefulWidget { _H2OPageState createState() => _H2OPageState(); } -class _H2OPageState extends State - with SingleTickerProviderStateMixin { +class _H2OPageState extends State with SingleTickerProviderStateMixin { TabController _tabController; @override void initState() { super.initState(); - _tabController = TabController(length: 3, vsync: this,); + _tabController = TabController( + length: 3, + vsync: this, + ); } @override @@ -43,6 +51,7 @@ class _H2OPageState extends State appBarTitle: TranslationBase.of(context).waterTracker, showHomeAppBarIcon: false, baseViewModel: model, + isHelp: true, appBarIcons: [ IconButton( icon: Image.asset("assets/images/new-design/setting_gear_icon.png"), @@ -129,6 +138,39 @@ class _H2OPageState extends State ) ], ), + bottomNavigationBar: BottomNavBar( + changeIndex: (index) { + if (index == 0) { + IS_VOICE_COMMAND_CLOSED = false; + } else if (index == 1) { + Navigator.push( + context, + FadePage( + page: AppScaffold( + appBarTitle: TranslationBase.of(context).medicalProfile, + isShowAppBar: true, + showHomeAppBarIcon: false, + appBarIcons: [ + IconButton( + icon: Image.asset("assets/images/new-design/setting_gear_icon.png"), + color: Colors.white, + onPressed: () => Navigator.of(context).pushNamed( + SETTINGS, + ), + ), + ], + body: MedicalProfilePage()))); + } else if (index == 2) { + Navigator.of(context).pushNamedAndRemoveUntil(HOME, (Route route) => false); + } else if (index == 3) { + Navigator.of(context).pushNamed(MY_FAMILIY); + } else if (index == 4) { + Navigator.push(context, FadePage(page: ToDo(isShowAppBar: false))); + } + }, + showHomeIcon: true, + index: 0, + ), ), ), ); diff --git a/lib/widgets/bottom_navigation/bottom_nav_bar.dart b/lib/widgets/bottom_navigation/bottom_nav_bar.dart index f33e9dd5..efca856b 100644 --- a/lib/widgets/bottom_navigation/bottom_nav_bar.dart +++ b/lib/widgets/bottom_navigation/bottom_nav_bar.dart @@ -21,7 +21,8 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; class BottomNavBar extends StatefulWidget { final ValueChanged changeIndex; final int index; - BottomNavBar({Key key, this.changeIndex, this.index}) : super(key: key); + final bool showHomeIcon; + BottomNavBar({Key key, this.changeIndex, this.index, this.showHomeIcon = false}) : super(key: key); @override _BottomNavBarState createState() => _BottomNavBarState(); @@ -33,7 +34,7 @@ class _BottomNavBarState extends State { var event = RobotProvider(); _changeIndex(int index) async { widget.changeIndex(index); - if (_index == 0) { + if (index == 0) { event.setValue({'isRobotVisible': 'true'}); } } @@ -72,16 +73,27 @@ class _BottomNavBarState extends State { ), if (widget.index == 0) Expanded( - child: SizedBox( - height: 50, - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SizedBox(height: 22), - ], - ), - ), + child: (widget.showHomeIcon) + ? SizedBox( + child: BottomNavigationItem( + icon: Icons.home_outlined, + activeIcon: Icons.home_outlined, + changeIndex: _changeIndex, + index: widget.index, + currentIndex: 2, + name: TranslationBase.of(context).home, + ), + ) + : SizedBox( + height: 50, + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox(height: 22), + ], + ), + ), ), if (widget.index != 0 && projectViewModel.havePrivilege(34)) BottomNavigationItem( From 854352d9ceccb28003650479b30d909b807769f6 Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Thu, 8 Jul 2021 16:47:08 +0300 Subject: [PATCH 24/59] jira bugs --- lib/config/config.dart | 395 ++++++------------ .../get_doctor_by_time_model.dart | 197 +++++++++ .../get_doctor_by_time_request_model.dart | 80 ++++ .../get_doctor_list_calcolation_model.dart | 64 +++ ...doctor_list_calcolation_request_model.dart | 52 +++ .../health-calculator/bariatrics-service.dart | 49 ++- .../Bariatrics-viewmodel.dart | 33 ++ .../medical/blood_pressure_view_model.dart | 70 ++-- .../viewModels/medical/labs_view_model.dart | 93 ++--- .../bmi_calculator/bariatrics-screen.dart | 203 +++++---- .../bmi_calculator/bmi_calculator.dart | 52 +-- .../bmi_calculator/result_page.dart | 9 +- .../health_calculator/body_fat/body_fat.dart | 134 ++---- .../delivery_due/delivery_due.dart | 24 +- .../health_calculator/doctor_list.dart | 131 ++++++ .../health_converter/blood_sugar.dart | 27 +- .../AlHabibMedicalService/my_web_view.dart | 14 +- .../​ health_calculators.dart | 28 +- .../my_trackers/Weight/WeightHomePage.dart | 66 +-- .../blood_pressure/AddBloodPressurePage.dart | 126 +++--- 20 files changed, 1089 insertions(+), 758 deletions(-) create mode 100644 lib/core/model/health_calcolator/get_doctor_by_time_model.dart create mode 100644 lib/core/model/health_calcolator/get_doctor_by_time_request_model.dart create mode 100644 lib/core/model/health_calcolator/get_doctor_list_calcolation_model.dart create mode 100644 lib/core/model/health_calcolator/get_doctor_list_calcolation_request_model.dart create mode 100644 lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart diff --git a/lib/config/config.dart b/lib/config/config.dart index f87b7628..e3dbfbf2 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -13,8 +13,8 @@ const PACKAGES_CUSTOMER = '/api/customers'; const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items'; const PACKAGES_ORDERS = '/api/orders'; -const BASE_URL = 'https://uat.hmgwebservices.com/'; -//const BASE_URL = 'https://hmgwebservices.com/'; +// const BASE_URL = 'https://uat.hmgwebservices.com/'; +const BASE_URL = 'https://hmgwebservices.com/'; // Pharmacy UAT URLs const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; @@ -33,8 +33,7 @@ const GET_GEO_ZONES = 'Services/Patients.svc/REST/GeoF_GetAllPoints'; const LOG_GEO_ZONES = 'Services/Patients.svc/REST/GeoF_InsertPatientFileInfo'; // Delivery Driver -const DRIVER_LOCATION = - 'Services/Patients.svc/REST/PatientER_GetDriverLocation'; +const DRIVER_LOCATION = 'Services/Patients.svc/REST/PatientER_GetDriverLocation'; //weather const WEATHER_INDICATOR = 'Services/Weather.svc/REST/GetCityInfo'; @@ -42,51 +41,36 @@ const WEATHER_INDICATOR = 'Services/Weather.svc/REST/GetCityInfo'; const GET_PRIVILEGE = 'Services/Patients.svc/REST/Service_Privilege'; // Wifi Credentials -const WIFI_CREDENTIALS = - "Services/Patients.svc/Hmg_SMS_Get_By_ProjectID_And_PatientID"; +const WIFI_CREDENTIALS = "Services/Patients.svc/Hmg_SMS_Get_By_ProjectID_And_PatientID"; ///Doctor -const GET_MY_DOCTOR = - 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; +const GET_MY_DOCTOR = 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; const GET_DOCTOR_PROFILE = 'Services/Doctors.svc/REST/GetDocProfiles'; -const GET_DOCTOR_RATING_NOTES = - 'Services/Doctors.svc/REST/dr_GetNotesDoctorRating'; -const GET_DOCTOR_RATING_DETAILS = - 'Services/Doctors.svc/REST/dr_GetDoctorRatingDetails'; +const GET_DOCTOR_RATING_NOTES = 'Services/Doctors.svc/REST/dr_GetNotesDoctorRating'; +const GET_DOCTOR_RATING_DETAILS = 'Services/Doctors.svc/REST/dr_GetDoctorRatingDetails'; const GET_DOCTOR_RATING = 'Services/Doctors.svc/REST/dr_GetAvgDoctorRating'; ///Prescriptions const PRESCRIPTIONS = 'Services/Patients.svc/REST/GetPrescriptionApptList'; -const GET_PRESCRIPTIONS_ALL_ORDERS = - 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const GET_PRESCRIPTION_REPORT = - 'Services/Patients.svc/REST/INP_GetPrescriptionReport'; -const SEND_PRESCRIPTION_EMAIL = - 'Services/Notifications.svc/REST/SendPrescriptionEmail'; -const GET_PRESCRIPTION_REPORT_ENH = - 'Services/Patients.svc/REST/GetPrescriptionReport_enh'; +const GET_PRESCRIPTIONS_ALL_ORDERS = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const GET_PRESCRIPTION_REPORT = 'Services/Patients.svc/REST/INP_GetPrescriptionReport'; +const SEND_PRESCRIPTION_EMAIL = 'Services/Notifications.svc/REST/SendPrescriptionEmail'; +const GET_PRESCRIPTION_REPORT_ENH = 'Services/Patients.svc/REST/GetPrescriptionReport_enh'; ///Lab Order const GET_Patient_LAB_ORDERS = 'Services/Patients.svc/REST/GetPatientLabOrders'; -const GET_Patient_LAB_SPECIAL_RESULT = - 'Services/Patients.svc/REST/GetPatientLabSpecialResults'; -const SEND_LAB_RESULT_EMAIL = - 'Services/Notifications.svc/REST/SendLabReportEmail'; -const GET_Patient_LAB_RESULT = - 'Services/Patients.svc/REST/GetPatientLabResults'; -const GET_Patient_LAB_ORDERS_RESULT = - 'Services/Patients.svc/REST/GetPatientLabOrdersResults'; +const GET_Patient_LAB_SPECIAL_RESULT = 'Services/Patients.svc/REST/GetPatientLabSpecialResults'; +const SEND_LAB_RESULT_EMAIL = 'Services/Notifications.svc/REST/SendLabReportEmail'; +const GET_Patient_LAB_RESULT = 'Services/Patients.svc/REST/GetPatientLabResults'; +const GET_Patient_LAB_ORDERS_RESULT = 'Services/Patients.svc/REST/GetPatientLabOrdersResults'; /// const GET_PATIENT_ORDERS = 'Services/Patients.svc/REST/GetPatientRadOrders'; -const GET_PATIENT_LAB_ORDERS_BY_APPOINTMENT = - 'Services/Patients.svc/REST/GetPatientLabResultsByAppointmentNo'; +const GET_PATIENT_LAB_ORDERS_BY_APPOINTMENT = 'Services/Patients.svc/REST/GetPatientLabResultsByAppointmentNo'; -const GET_PATIENT_ORDERS_DETAILS = - 'Services/Patients.svc/REST/Rad_UpdatePatientRadOrdersToRead'; +const GET_PATIENT_ORDERS_DETAILS = 'Services/Patients.svc/REST/Rad_UpdatePatientRadOrdersToRead'; const GET_RAD_IMAGE_URL = 'Services/Patients.svc/Rest/GetRadImageURL'; -const SEND_RAD_REPORT_EMAIL = - 'Services/Notifications.svc/REST/SendRadReportEmail'; +const SEND_RAD_REPORT_EMAIL = 'Services/Notifications.svc/REST/SendRadReportEmail'; ///Feedback const SEND_FEEDBACK = 'Services/COCWS.svc/REST/InsertCOCItemInSPList'; @@ -95,32 +79,23 @@ const GET_PATIENT_AppointmentHistory = 'Services' '/Doctors.svc/REST/PateintHasAppoimentHistory'; ///VITAL SIGN -const GET_PATIENT_VITAL_SIGN = - 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign'; +const GET_PATIENT_VITAL_SIGN = 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign'; ///Er Nearest -const GET_NEAREST_HOSPITAL = - 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime'; +const GET_NEAREST_HOSPITAL = 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime'; ///ED Online -const ER_GET_VISUAL_TRIAGE_QUESTIONS = - "services/Doctors.svc/REST/ER_GetVisualTriageQuestions"; -const ER_SAVE_TRIAGE_INFORMATION = - "services/Doctors.svc/REST/ER_SaveTriageInformation"; +const ER_GET_VISUAL_TRIAGE_QUESTIONS = "services/Doctors.svc/REST/ER_GetVisualTriageQuestions"; +const ER_SAVE_TRIAGE_INFORMATION = "services/Doctors.svc/REST/ER_SaveTriageInformation"; const ER_GetPatientPaymentInformationForERClinic = "services/Doctors.svc/REST/ER_GetPatientPaymentInformationForERClinic"; ///Er Nearest -const GET_AMBULANCE_REQUEST = - 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod'; -const GET_PATIENT_ALL_PRES_ORDERS = - 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID = - 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID'; -const UPDATE_PRESS_ORDER = - 'Services/Patients.svc/REST/PatientER_UpdatePresOrder'; -const INSERT_ER_INERT_PRES_ORDER = - 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; +const GET_AMBULANCE_REQUEST = 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod'; +const GET_PATIENT_ALL_PRES_ORDERS = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID = 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID'; +const UPDATE_PRESS_ORDER = 'Services/Patients.svc/REST/PatientER_UpdatePresOrder'; +const INSERT_ER_INERT_PRES_ORDER = 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; ///FindUs const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations'; @@ -129,15 +104,13 @@ const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations'; const GET_LIVECHAT_REQUEST = 'Services/Patients.svc/REST/GetPatientICProjects'; ///babyInformation -const GET_BABYINFORMATION_REQUEST = - 'Services/Community.svc/REST/GetBabyByUserID'; +const GET_BABYINFORMATION_REQUEST = 'Services/Community.svc/REST/GetBabyByUserID'; ///Get Baby By User ID const GET_BABY_BY_USER_ID = 'Services/Community.svc/REST/GetBabyByUserID'; ///userInformation -const GET_USERINFORMATION_REQUEST = - 'Services/Community.svc/REST/GetUserInformation_New'; +const GET_USERINFORMATION_REQUEST = 'Services/Community.svc/REST/GetUserInformation_New'; ///Update email const UPDATE_PATENT_EMAIL = 'Services/Patients.svc/REST/UpdatePateintEmail'; @@ -159,29 +132,21 @@ const GET_TABLE_REQUEST = 'Services/Community.svc/REST/CreateVaccinationTable'; const GET_CITIES_REQUEST = 'Services/Lists.svc/REST/GetAllCities'; ///BloodDetails -const GET_BLOOD_REQUEST = - 'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails'; +const GET_BLOOD_REQUEST = 'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails'; -const SAVE_BLOOD_REQUEST = - 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; +const SAVE_BLOOD_REQUEST = 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; -const GET_BLOOD_AGREEMENT = - 'Services/PatientVarification.svc/REST/CheckUserAgreementForBloodDonation'; -const SAVE_BLOOD_AGREEMENT = - 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; +const GET_BLOOD_AGREEMENT = 'Services/PatientVarification.svc/REST/CheckUserAgreementForBloodDonation'; +const SAVE_BLOOD_AGREEMENT = 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; ///Reports const REPORTS = 'Services/Doctors.svc/REST/GetPatientMedicalReportStatusInfo'; -const INSERT_REQUEST_FOR_MEDICAL_REPORT = - 'Services/Doctors.svc/REST/InsertRequestForMedicalReport'; -const SEND_MEDICAL_REPORT_EMAIL = - 'Services/Notifications.svc/REST/SendMedicalReportEmail'; +const INSERT_REQUEST_FOR_MEDICAL_REPORT = 'Services/Doctors.svc/REST/InsertRequestForMedicalReport'; +const SEND_MEDICAL_REPORT_EMAIL = 'Services/Notifications.svc/REST/SendMedicalReportEmail'; ///Rate -const IS_LAST_APPOITMENT_RATED = - 'Services/Doctors.svc/REST/IsLastAppoitmentRated'; -const GET_APPOINTMENT_DETAILS_BY_NO = - 'Services/MobileNotifications.svc/REST/GetAppointmentDetailsByApptNo'; +const IS_LAST_APPOITMENT_RATED = 'Services/Doctors.svc/REST/IsLastAppoitmentRated'; +const GET_APPOINTMENT_DETAILS_BY_NO = 'Services/MobileNotifications.svc/REST/GetAppointmentDetailsByApptNo'; const GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID'; @@ -193,8 +158,7 @@ const GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID'; const GET_CLINICS_LIST_URL = "Services/lists.svc/REST/GetClinicCentralized"; //URL to get active appointment list -const GET_ACTIVE_APPOINTMENTS_LIST_URL = - "Services/Doctors.svc/Rest/Dr_GetAppointmentActiveNumber"; +const GET_ACTIVE_APPOINTMENTS_LIST_URL = "Services/Doctors.svc/Rest/Dr_GetAppointmentActiveNumber"; //URL to get projects list const GET_PROJECTS_LIST = 'Services/Lists.svc/REST/GetProject'; @@ -203,115 +167,85 @@ const GET_PROJECTS_LIST = 'Services/Lists.svc/REST/GetProject'; const GET_DOCTORS_LIST_URL = "Services/Doctors.svc/REST/SearchDoctorsByTime"; //URL to dental doctors list -const GET_DENTAL_DOCTORS_LIST_URL = - "Services/Doctors.svc/REST/Dental_DoctorChiefComplaintMapping"; +const GET_DENTAL_DOCTORS_LIST_URL = "Services/Doctors.svc/REST/Dental_DoctorChiefComplaintMapping"; //URL to get doctor free slots const GET_DOCTOR_FREE_SLOTS = "Services/Doctors.svc/REST/GetDoctorFreeSlots"; //URL to insert appointment -const INSERT_SPECIFIC_APPOINTMENT = - "Services/Doctors.svc/REST/InsertSpecificAppointment"; +const INSERT_SPECIFIC_APPOINTMENT = "Services/Doctors.svc/REST/InsertSpecificAppointment"; //URL to get patient share -const GET_PATIENT_SHARE = - "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNO"; +const GET_PATIENT_SHARE = "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNO"; //URL to get patient appointment history -const GET_PATIENT_APPOINTMENT_HISTORY = - "Services/Doctors.svc/REST/PateintHasAppoimentHistory"; +const GET_PATIENT_APPOINTMENT_HISTORY = "Services/Doctors.svc/REST/PateintHasAppoimentHistory"; -const SEND_REPORT_EYE_EMAIL = - "Services/Notifications.svc/REST/SendGlassesPrescriptionEmail"; +const SEND_REPORT_EYE_EMAIL = "Services/Notifications.svc/REST/SendGlassesPrescriptionEmail"; -const SEND_CONTACT_LENS_PRESCRIPTION_EMAIL = - "Services/Notifications.svc/REST/SendContactLensPrescriptionEmail"; +const SEND_CONTACT_LENS_PRESCRIPTION_EMAIL = "Services/Notifications.svc/REST/SendContactLensPrescriptionEmail"; //URL to get patient appointment curfew history -const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = - "Services/Doctors.svc/REST/AppoimentHistoryForCurfew"; +const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = "Services/Doctors.svc/REST/AppoimentHistoryForCurfew"; //URL to confirm appointment -const CONFIRM_APPOINTMENT = - "Services/MobileNotifications.svc/REST/ConfirmAppointment"; +const CONFIRM_APPOINTMENT = "Services/MobileNotifications.svc/REST/ConfirmAppointment"; -const INSERT_VIDA_REQUEST = - "Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart"; +const INSERT_VIDA_REQUEST = "Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart"; //URL to cancel appointment const CANCEL_APPOINTMENT = "Services/Doctors.svc/REST/CancelAppointment"; //URL get appointment QR -const GENERATE_QR_APPOINTMENT = - "Services/Doctors.svc/REST/GenerateQRAppointmentNo"; +const GENERATE_QR_APPOINTMENT = "Services/Doctors.svc/REST/GenerateQRAppointmentNo"; //URL send email appointment QR -const EMAIL_QR_APPOINTMENT = - "Services/Notifications.svc/REST/sendEmailForOnLineCheckin"; +const EMAIL_QR_APPOINTMENT = "Services/Notifications.svc/REST/sendEmailForOnLineCheckin"; //URL check payment status -const CHECK_PAYMENT_STATUS = - "Services/PayFort_Serv.svc/REST/GetRequestStatusByRequestID"; +const CHECK_PAYMENT_STATUS = "Services/PayFort_Serv.svc/REST/GetRequestStatusByRequestID"; //URL create advance payment const CREATE_ADVANCE_PAYMENT = "Services/Doctors.svc/REST/CreateAdvancePayment"; -const HIS_CREATE_ADVANCE_PAYMENT = - "Services/Patients.svc/REST/HIS_CreateAdvancePayment"; +const HIS_CREATE_ADVANCE_PAYMENT = "Services/Patients.svc/REST/HIS_CreateAdvancePayment"; -const ADD_ADVANCE_NUMBER_REQUEST = - 'Services/PayFort_Serv.svc/REST/AddAdvancedNumberRequest'; +const ADD_ADVANCE_NUMBER_REQUEST = 'Services/PayFort_Serv.svc/REST/AddAdvancedNumberRequest'; -const IS_ALLOW_ASK_DOCTOR = - 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; -const GET_CALL_REQUEST_TYPE = - 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; -const ADD_VIDA_REQUEST = - 'Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart'; +const IS_ALLOW_ASK_DOCTOR = 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; +const GET_CALL_REQUEST_TYPE = 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; +const ADD_VIDA_REQUEST = 'Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart'; const SEND_CALL_REQUEST = 'Services/Doctors.svc/REST/InsertCallInfo'; -const GET_LIVECARE_CLINICS = - 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinics'; +const GET_LIVECARE_CLINICS = 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinics'; -const GET_LIVECARE_SCHEDULE_CLINICS = - 'Services/Doctors.svc/REST/PatientER_GetClinicsHaveSchedule'; +const GET_LIVECARE_SCHEDULE_CLINICS = 'Services/Doctors.svc/REST/PatientER_GetClinicsHaveSchedule'; -const GET_LIVECARE_SCHEDULE_CLINIC_DOCTOR_LIST = - 'Services/Doctors.svc/REST/PatientER_GetDoctorByClinicID'; +const GET_LIVECARE_SCHEDULE_CLINIC_DOCTOR_LIST = 'Services/Doctors.svc/REST/PatientER_GetDoctorByClinicID'; -const GET_LIVECARE_SCHEDULE_DOCTOR_TIME_SLOTS = - 'Services/Doctors.svc/REST/PatientER_GetDoctorFreeSlots'; +const GET_LIVECARE_SCHEDULE_DOCTOR_TIME_SLOTS = 'Services/Doctors.svc/REST/PatientER_GetDoctorFreeSlots'; -const INSERT_LIVECARE_SCHEDULE_APPOINTMENT = - 'Services/Doctors.svc/REST/InsertSpecificAppoitmentForSchedule'; +const INSERT_LIVECARE_SCHEDULE_APPOINTMENT = 'Services/Doctors.svc/REST/InsertSpecificAppoitmentForSchedule'; const GET_PATIENT_SHARE_LIVECARE = "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNOForLiveCare"; -const GET_LIVECARE_CLINIC_TIMING = - 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinicsServiceTimingsSchedule'; +const GET_LIVECARE_CLINIC_TIMING = 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinicsServiceTimingsSchedule'; -const GET_ER_APPOINTMENT_FEES = - 'Services/DoctorApplication.svc/REST/GetERAppointmentFees'; +const GET_ER_APPOINTMENT_FEES = 'Services/DoctorApplication.svc/REST/GetERAppointmentFees'; const GET_ER_APPOINTMENT_TIME = 'Services/ER_VirtualCall.svc/REST/GetRestTime'; -const ADD_NEW_CALL_FOR_PATIENT_ER = - 'Services/DoctorApplication.svc/REST/NewCallForPatientER'; +const ADD_NEW_CALL_FOR_PATIENT_ER = 'Services/DoctorApplication.svc/REST/NewCallForPatientER'; -const GET_LIVECARE_HISTORY = - 'Services/ER_VirtualCall.svc/REST/GetPatientErVirtualHistory'; -const CANCEL_LIVECARE_REQUEST = - 'Services/ER_VirtualCall.svc/REST/DeleteErRequest'; -const SEND_LIVECARE_INVOICE_EMAIL = - 'Services/Notifications.svc/REST/SendInvoiceForLiveCare'; +const GET_LIVECARE_HISTORY = 'Services/ER_VirtualCall.svc/REST/GetPatientErVirtualHistory'; +const CANCEL_LIVECARE_REQUEST = 'Services/ER_VirtualCall.svc/REST/DeleteErRequest'; +const SEND_LIVECARE_INVOICE_EMAIL = 'Services/Notifications.svc/REST/SendInvoiceForLiveCare'; const GET_USER_TERMS = 'Services/Patients.svc/REST/GetUserTermsAndConditions'; -const UPDATE_HEALTH_TERMS = - 'services/Patients.svc/REST/UpdatePateintHealthSummaryReport'; +const UPDATE_HEALTH_TERMS = 'services/Patients.svc/REST/UpdatePateintHealthSummaryReport'; -const GET_PATIENT_HEALTH_STATS = - 'Services/Patients.svc/REST/Med_GetTransactionsSts'; +const GET_PATIENT_HEALTH_STATS = 'Services/Patients.svc/REST/Med_GetTransactionsSts'; //URL to get medicine and pharmacies list const CHANNEL = 3; @@ -332,21 +266,16 @@ var DeviceTypeID = Platform.isIOS ? 1 : 2; const LANGUAGE_ID = 2; const GET_PHARMCY_ITEMS = "Services/Lists.svc/REST/GetPharmcyItems_Region"; const GET_PHARMACY_LIST = "Services/Patients.svc/REST/GetPharmcyList"; -const GET_PAtIENTS_INSURANCE = - "Services/Patients.svc/REST/Get_PatientInsuranceDetails"; -const GET_PAtIENTS_INSURANCE_UPDATED = - "Services/Patients.svc/REST/PatientER_GetPatientInsuranceCardUpdateHistory"; +const GET_PAtIENTS_INSURANCE = "Services/Patients.svc/REST/Get_PatientInsuranceDetails"; +const GET_PAtIENTS_INSURANCE_UPDATED = "Services/Patients.svc/REST/PatientER_GetPatientInsuranceCardUpdateHistory"; const INSURANCE_DETAILS = "Services/Patients.svc/REST/Get_InsuranceCheckList"; -const GET_PATIENT_INSURANCE_DETAILS = - "Services/Patients.svc/REST/PatientER_GetPatientInsuranceDetails"; -const UPLOAD_INSURANCE_CARD = - 'Services/Patients.svc/REST/PatientER_PatientInfoForInsuranceCardUpdate'; +const GET_PATIENT_INSURANCE_DETAILS = "Services/Patients.svc/REST/PatientER_GetPatientInsuranceDetails"; +const UPLOAD_INSURANCE_CARD = 'Services/Patients.svc/REST/PatientER_PatientInfoForInsuranceCardUpdate'; const GET_VACCINES = "Services/Patients.svc/REST/GetDoneVaccinesByPatientID"; const GET_VACCINES_EMAIL = "Services/Notifications.svc/REST/SendVaccinesEmail"; -const GET_PAtIENTS_INSURANCE_APPROVALS = - "Services/Patients.svc/REST/GetApprovalStatus"; +const GET_PAtIENTS_INSURANCE_APPROVALS = "Services/Patients.svc/REST/GetApprovalStatus"; const SEARCH_BOT = 'HabibiChatBotApi/BotInterface/GetVoiceCommandResponse'; const GET_VACCINATIONS_ITEMS = "/Services/ERP.svc/REST/GET_VACCINATIONS_ITEMS"; @@ -356,81 +285,54 @@ const GET_PATIENT_SICK_LEAVE = 'Services/Patients.svc/REST/GetPatientSickLeave'; const SendSickLeaveEmail = 'Services/Notifications.svc/REST/SendSickLeaveEmail'; -const GET_PATIENT_AdVANCE_BALANCE_AMOUNT = - 'Services/Patients.svc/REST/GetPatientAdvanceBalanceAmount'; -const GET_PATIENT_INFO_BY_ID = - 'Services/Doctors.svc/REST/GetPatientInfoByPatientID'; +const GET_PATIENT_AdVANCE_BALANCE_AMOUNT = 'Services/Patients.svc/REST/GetPatientAdvanceBalanceAmount'; +const GET_PATIENT_INFO_BY_ID = 'Services/Doctors.svc/REST/GetPatientInfoByPatientID'; const GET_PATIENT_INFO_BY_ID_AND_MOBILE_NUMBER = 'Services/Patients.svc/REST/AP_GetPatientInfoByPatientIDandMobileNumber'; -const SEND_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = - 'Services/Authentication.svc/REST/SendActivationCodeForAdvancePayment'; +const SEND_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/REST/SendActivationCodeForAdvancePayment'; const CHECK_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/REST/CheckActivationCodeForAdvancePayment'; -const GET_COVID_DRIVETHRU_PROJECT_LIST = - 'Services/Doctors.svc/REST/COVID19_ProjectDriveThroughTestingCenter'; +const GET_COVID_DRIVETHRU_PROJECT_LIST = 'Services/Doctors.svc/REST/COVID19_ProjectDriveThroughTestingCenter'; -const GET_COVID_DRIVETHRU_PAYMENT_INFO = - 'Services/Doctors.svc/REST/COVID19_GetPatientPaymentInormation'; +const GET_COVID_DRIVETHRU_PAYMENT_INFO = 'Services/Doctors.svc/REST/COVID19_GetPatientPaymentInormation'; -const GET_COVID_DRIVETHRU_FREE_SLOTS = - 'Services/Doctors.svc/REST/COVID19_GetFreeSlots'; +const GET_COVID_DRIVETHRU_FREE_SLOTS = 'Services/Doctors.svc/REST/COVID19_GetFreeSlots'; ///Smartwatch Integration Services -const GET_PATIENT_LAST_RECORD = - 'Services/Patients.svc/REST/Med_GetPatientLastRecord'; +const GET_PATIENT_LAST_RECORD = 'Services/Patients.svc/REST/Med_GetPatientLastRecord'; ///My Trackers -const GET_DIABETIC_RESULT_AVERAGE = - 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage'; -const GET_DIABTEC_RESULT = - 'Services/Patients.svc/REST/Patient_GetDiabtecResults'; -const ADD_DIABTEC_RESULT = - 'Services/Patients.svc/REST/Patient_AddDiabtecResult'; - -const GET_BLOOD_PRESSURE_RESULT_AVERAGE = - 'Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage'; -const GET_BLOOD_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_GetBloodPressureResult'; -const ADD_BLOOD_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_AddBloodPressureResult'; - -const GET_WEIGHT_PRESSURE_RESULT_AVERAGE = - 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage'; -const GET_WEIGHT_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResult'; -const ADD_WEIGHT_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_AddWeightMeasurementResult'; +const GET_DIABETIC_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage'; +const GET_DIABTEC_RESULT = 'Services/Patients.svc/REST/Patient_GetDiabtecResults'; +const ADD_DIABTEC_RESULT = 'Services/Patients.svc/REST/Patient_AddDiabtecResult'; + +const GET_BLOOD_PRESSURE_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage'; +const GET_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_GetBloodPressureResult'; +const ADD_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_AddBloodPressureResult'; + +const GET_WEIGHT_PRESSURE_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage'; +const GET_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResult'; +const ADD_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_AddWeightMeasurementResult'; const ADD_ACTIVE_PRESCRIPTIONS_REPORT_BY_PATIENT_ID = 'Services/Patients.svc/Rest/GetActivePrescriptionReportByPatientID'; -const GET_CALL_INFO_HOURS_RESULT = - 'Services/Doctors.svc/REST/GetCallInfoHoursResult'; -const GET_CALL_REQUEST_TYPE_LOV = - 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; - -const UPDATE_DIABETIC_RESULT = - 'Services/Patients.svc/REST/Patient_UpdateDiabeticResult'; - -const SEND_AVERAGE_BLOOD_SUGAR_REPORT = - 'Services/Notifications.svc/REST/SendAverageBloodSugarReport'; -const DEACTIVATE_DIABETIC_STATUS = - 'services/Patients.svc/REST/Patient_DeactivateDiabeticStatus'; -const DEACTIVATE_BLOOD_PRESSURES_STATUS = - 'services/Patients.svc/REST/Patient_DeactivateBloodPressureStatus'; - -const UPDATE_BLOOD_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_UpdateBloodPressureResult'; -const SEND_AVERAGE_BLOOD_WEIGHT_REPORT = - 'Services/Notifications.svc/REST/SendAverageBodyWeightReport'; -const SEND_AVERAGE_BLOOD_PRESSURE_REPORT = - 'Services/Notifications.svc/REST/SendAverageBloodPressureReport'; - -const UPDATE_WEIGHT_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_UpdateWeightMeasurementResult'; -const DEACTIVATE_WEIGHT_PRESSURE_RESULT = - 'services/Patients.svc/REST/Patient_DeactivateWeightMeasurementStatus'; +const GET_CALL_INFO_HOURS_RESULT = 'Services/Doctors.svc/REST/GetCallInfoHoursResult'; +const GET_CALL_REQUEST_TYPE_LOV = 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; + +const UPDATE_DIABETIC_RESULT = 'Services/Patients.svc/REST/Patient_UpdateDiabeticResult'; + +const SEND_AVERAGE_BLOOD_SUGAR_REPORT = 'Services/Notifications.svc/REST/SendAverageBloodSugarReport'; +const DEACTIVATE_DIABETIC_STATUS = 'services/Patients.svc/REST/Patient_DeactivateDiabeticStatus'; +const DEACTIVATE_BLOOD_PRESSURES_STATUS = 'services/Patients.svc/REST/Patient_DeactivateBloodPressureStatus'; + +const UPDATE_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_UpdateBloodPressureResult'; +const SEND_AVERAGE_BLOOD_WEIGHT_REPORT = 'Services/Notifications.svc/REST/SendAverageBodyWeightReport'; +const SEND_AVERAGE_BLOOD_PRESSURE_REPORT = 'Services/Notifications.svc/REST/SendAverageBloodPressureReport'; + +const UPDATE_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_UpdateWeightMeasurementResult'; +const DEACTIVATE_WEIGHT_PRESSURE_RESULT = 'services/Patients.svc/REST/Patient_DeactivateWeightMeasurementStatus'; const GET_DOCTOR_RESPONSE = 'Services/Patients.svc/REST/GetDoctorResponse'; const UPDATE_READ_STATUS = 'Services/Patients.svc/REST/UpdateReadStatus'; const INSERT_CALL_INFO = 'Services/Doctors.svc/REST/InsertCallInfo'; @@ -438,35 +340,25 @@ const INSERT_CALL_INFO = 'Services/Doctors.svc/REST/InsertCallInfo'; const GET_PATIENT_ALLERGIES = 'Services/Patients.svc/REST/GetPatientAllergies'; // H2O -const H2O_GET_USER_PROGRESS = - "Services/H2ORemainder.svc/REST/H2O_GetUserProgress"; -const H2O_INSERT_USER_ACTIVITY = - "Services/H2ORemainder.svc/REST/H2O_InsertUserActivity"; -const H2O_GET_USER_DETAIL = - "Services/H2ORemainder.svc/REST/H2O_GetUserDetails_New"; -const H2O_UPDATE_USER_DETAIL = - "Services/H2ORemainder.svc/REST/H2O_UpdateUserDetails_New"; -const H2O_UNDO_USER_ACTIVITY = - "Services/H2ORemainder.svc/REST/H2o_UndoUserActivity"; +const H2O_GET_USER_PROGRESS = "Services/H2ORemainder.svc/REST/H2O_GetUserProgress"; +const H2O_INSERT_USER_ACTIVITY = "Services/H2ORemainder.svc/REST/H2O_InsertUserActivity"; +const H2O_GET_USER_DETAIL = "Services/H2ORemainder.svc/REST/H2O_GetUserDetails_New"; +const H2O_UPDATE_USER_DETAIL = "Services/H2ORemainder.svc/REST/H2O_UpdateUserDetails_New"; +const H2O_UNDO_USER_ACTIVITY = "Services/H2ORemainder.svc/REST/H2o_UndoUserActivity"; //E_Referral Services -const GET_ALL_RELATIONSHIP_TYPES = - "Services/Patients.svc/REST/GetAllRelationshipTypes"; -const SEND_ACTIVATION_CODE_FOR_E_REFERRAL = - 'Services/Authentication.svc/REST/SendActivationCodeForEReferral'; -const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL = - 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral'; +const GET_ALL_RELATIONSHIP_TYPES = "Services/Patients.svc/REST/GetAllRelationshipTypes"; +const SEND_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/SendActivationCodeForEReferral'; +const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral'; const GET_ALL_CITIES = 'services/Lists.svc/rest/GetAllCities'; const CREATE_E_REFERRAL = "Services/Patients.svc/REST/CreateEReferral"; const GET_E_REFERRALS = "Services/Patients.svc/REST/GetEReferrals"; // Encillary Orders -const GET_ANCILLARY_ORDERS = - 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderList'; +const GET_ANCILLARY_ORDERS = 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderList'; -const GET_ANCILLARY_ORDERS_DETAILS = - 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderProcList'; +const GET_ANCILLARY_ORDERS_DETAILS = 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderProcList'; //Pharmacy wishlist // const GET_WISHLIST = "http://swd-pharapp-01:7200/api/shopping_cart_items/"; @@ -496,50 +388,34 @@ const GET_SHIPPING_OPTIONS = "get_shipping_option/"; const DELETE_SHOPPING_CART = "delete_shopping_cart_items/"; const DELETE_SHOPPING_CART_ALL = "delete_shopping_cart_item_by_customer/"; const ORDER_SHOPPING_CART = "orders"; -const GET_LACUM_ACCOUNT_INFORMATION = - "Services/Patients.svc/REST/GetLakumAccountInformation"; -const GET_LACUM_GROUP_INFORMATION = - "Services/Patients.svc/REST/GetlakumInQueryInfoGrouping"; -const LACUM_ACCOUNT_ACTIVATE = - "Services/Patients.svc/REST/LakumAccountActivation"; -const LACUM_ACCOUNT_DEACTIVATE = - "Services/Patients.svc/REST/LakumAccountDeactivation"; -const CREATE_LAKUM_ACCOUNT = - "Services/Patients.svc/REST/PHR_CreateLakumAccount"; -const TRANSFER_YAHALA_LOYALITY_POINTS = - "Services/Patients.svc/REST/TransferYaHalaLoyaltyPoints"; -const LAKUM_GET_USER_TERMS_AND_CONDITIONS = - "Services/ERP.svc/REST/GetUserTermsAndConditionsForEPharmcy"; +const GET_LACUM_ACCOUNT_INFORMATION = "Services/Patients.svc/REST/GetLakumAccountInformation"; +const GET_LACUM_GROUP_INFORMATION = "Services/Patients.svc/REST/GetlakumInQueryInfoGrouping"; +const LACUM_ACCOUNT_ACTIVATE = "Services/Patients.svc/REST/LakumAccountActivation"; +const LACUM_ACCOUNT_DEACTIVATE = "Services/Patients.svc/REST/LakumAccountDeactivation"; +const CREATE_LAKUM_ACCOUNT = "Services/Patients.svc/REST/PHR_CreateLakumAccount"; +const TRANSFER_YAHALA_LOYALITY_POINTS = "Services/Patients.svc/REST/TransferYaHalaLoyaltyPoints"; +const LAKUM_GET_USER_TERMS_AND_CONDITIONS = "Services/ERP.svc/REST/GetUserTermsAndConditionsForEPharmcy"; const PRESCRIPTION = 'Services/Patients.svc/REST/GetPrescriptionApptList'; const GET_RECOMMENDED_PRODUCT = 'alsoProduct/'; const GET_MOST_VIEWED_PRODUCTS = "mostview?"; const GET_NEW_PRODUCTS = "newproducts?"; // Home Health Care -const HHC_GET_ALL_SERVICES = - "Services/Patients.svc/REST/PatientER_HHC_GetAllServices"; -const HHC_GET_ALL_CMC_SERVICES = - "Services/Patients.svc/REST/PatientER_CMC_GetAllServices"; -const PATIENT_ER_UPDATE_PRES_ORDER = - "Services/Patients.svc/REST/PatientER_UpdatePresOrder"; -const GET_ORDER_DETAIL_BY_ID = - "Services/Patients.svc/REST/PatientER_HHC_GetTransactionsForOrder"; -const GET_CMC_ORDER_DETAIL_BY_ID = - "Services/Patients.svc/REST/PatientER_CMC_GetTransactionsForOrder"; +const HHC_GET_ALL_SERVICES = "Services/Patients.svc/REST/PatientER_HHC_GetAllServices"; +const HHC_GET_ALL_CMC_SERVICES = "Services/Patients.svc/REST/PatientER_CMC_GetAllServices"; +const PATIENT_ER_UPDATE_PRES_ORDER = "Services/Patients.svc/REST/PatientER_UpdatePresOrder"; +const GET_ORDER_DETAIL_BY_ID = "Services/Patients.svc/REST/PatientER_HHC_GetTransactionsForOrder"; +const GET_CMC_ORDER_DETAIL_BY_ID = "Services/Patients.svc/REST/PatientER_CMC_GetTransactionsForOrder"; const GET_CHECK_UP_ITEMS = "Services/Patients.svc/REST/GetCheckUpItems"; const PUSH_NOTIFICATION_GET_ALL_NOTIFICATIONS = 'Services/MobileNotifications.svc/REST/PushNotification_GetAllNotifications'; const PUSH_NOTIFICATION_SET_MESSAGES_FROM_POOL_AS_READ = 'Services/MobileNotifications.svc/REST/PushNotification_SetMessagesFromPoolAsRead'; -const GET_PATIENT_ALL_PRES_ORD = - 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const PATIENT_ER_INSERT_PRES_ORDER = - 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; +const GET_PATIENT_ALL_PRES_ORD = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const PATIENT_ER_INSERT_PRES_ORDER = 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; const PHARMACY_MAKE_REVIEW = 'epharmacy/api/insertreviews'; -const BLOOD_DONATION_REGISTER_BLOOD_TYPE = - 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; -const ADD_USER_AGREEMENT_FOR_BLOOD_DONATION = - 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; +const BLOOD_DONATION_REGISTER_BLOOD_TYPE = 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; +const ADD_USER_AGREEMENT_FOR_BLOOD_DONATION = 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; //Pharmacy wishlist const GET_WISHLIST = "shopping_cart_items/"; @@ -572,8 +448,7 @@ const GET_SUB_PRODUCTS = 'products?categoryid='; const GET_FINAL_PRODUCTS = 'products?fields=id,reviews,discount_ids,name,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage&CategoryId='; const GET_CLINIC_CATEGORY = 'Services/Doctors.svc/REST/DP_GetClinicCategory'; -const GET_DISEASE_BY_CLINIC_ID = - 'Services/Doctors.svc/REST/DP_GetDiseasesByClinicID'; +const GET_DISEASE_BY_CLINIC_ID = 'Services/Doctors.svc/REST/DP_GetDiseasesByClinicID'; const SEARCH_DOCTOR_BY_TIME = 'Services/Doctors.svc/REST/SearchDoctorsByTime'; const TIMER_MIN = 10; @@ -589,6 +464,10 @@ const SCAN_QR_CODE = 'productbysku/'; const FILTERED_PRODUCTS = 'products?categoryids='; +const GET_DOCTOR_LIST_CALCULATION = "Services/Doctors.svc/REST/GetCallculationDoctors"; + +const GET_DOCTOR_LIST_BY_TIME = "Services/Doctors.svc/REST/SearchDoctorsByTime"; + class AppGlobal { static var context; diff --git a/lib/core/model/health_calcolator/get_doctor_by_time_model.dart b/lib/core/model/health_calcolator/get_doctor_by_time_model.dart new file mode 100644 index 00000000..53688a27 --- /dev/null +++ b/lib/core/model/health_calcolator/get_doctor_by_time_model.dart @@ -0,0 +1,197 @@ +class DoctorListByTimeModel { + dynamic clinicID; + String clinicName; + String doctorTitle; + dynamic iD; + String name; + dynamic projectID; + String projectName; + dynamic actualDoctorRate; + dynamic clinicRoomNo; + dynamic date; + dynamic dayName; + double decimalDoctorRate; + dynamic doctorAvailability; + dynamic doctorID; + String doctorImageURL; + dynamic doctorProfile; + dynamic doctorProfileInfo; + dynamic doctorRate; + dynamic doctorStarsRate; + dynamic gender; + String genderDescription; + bool isAllowWaitList; + bool isAppointmentAllowed; + bool isDoctorAllowVedioCall; + bool isDoctorDummy; + bool isDoctorHasPrePostImages; + bool isLiveCare; + String latitude; + String longitude; + String nationalityFlagURL; + String nationalityID; + String nationalityName; + dynamic nearestFreeSlot; + dynamic noOfPatientsRate; + dynamic originalClinicID; + dynamic personRate; + dynamic projectDistanceInKiloMeters; + String qR; + dynamic qRString; + dynamic rateNumber; + dynamic serviceID; + String setupID; + List speciality; + dynamic workingHours; + + DoctorListByTimeModel( + {this.clinicID, + this.clinicName, + this.doctorTitle, + this.iD, + this.name, + this.projectID, + this.projectName, + this.actualDoctorRate, + this.clinicRoomNo, + this.date, + this.dayName, + this.decimalDoctorRate, + this.doctorAvailability, + this.doctorID, + this.doctorImageURL, + this.doctorProfile, + this.doctorProfileInfo, + this.doctorRate, + this.doctorStarsRate, + this.gender, + this.genderDescription, + this.isAllowWaitList, + this.isAppointmentAllowed, + this.isDoctorAllowVedioCall, + this.isDoctorDummy, + this.isDoctorHasPrePostImages, + this.isLiveCare, + this.latitude, + this.longitude, + this.nationalityFlagURL, + this.nationalityID, + this.nationalityName, + this.nearestFreeSlot, + this.noOfPatientsRate, + this.originalClinicID, + this.personRate, + this.projectDistanceInKiloMeters, + this.qR, + this.qRString, + this.rateNumber, + this.serviceID, + this.setupID, + this.speciality, + this.workingHours}); + + DoctorListByTimeModel.fromJson(Map json) { + clinicID = json['ClinicID']; + clinicName = json['ClinicName']; + doctorTitle = json['DoctorTitle']; + iD = json['ID']; + name = json['Name']; + projectID = json['ProjectID']; + projectName = json['ProjectName']; + actualDoctorRate = json['ActualDoctorRate']; + clinicRoomNo = json['ClinicRoomNo']; + date = json['Date']; + dayName = json['DayName']; + decimalDoctorRate = json['DecimalDoctorRate']; + doctorAvailability = json['DoctorAvailability']; + doctorID = json['DoctorID']; + doctorImageURL = json['DoctorImageURL']; + doctorProfile = json['DoctorProfile']; + doctorProfileInfo = json['DoctorProfileInfo']; + doctorRate = json['DoctorRate']; + doctorStarsRate = json['DoctorStarsRate']; + gender = json['Gender']; + genderDescription = json['GenderDescription']; + isAllowWaitList = json['IsAllowWaitList']; + isAppointmentAllowed = json['IsAppointmentAllowed']; + isDoctorAllowVedioCall = json['IsDoctorAllowVedioCall']; + isDoctorDummy = json['IsDoctorDummy']; + isDoctorHasPrePostImages = json['IsDoctorHasPrePostImages']; + isLiveCare = json['IsLiveCare']; + latitude = json['Latitude']; + longitude = json['Longitude']; + nationalityFlagURL = json['NationalityFlagURL']; + nationalityID = json['NationalityID']; + nationalityName = json['NationalityName']; + nearestFreeSlot = json['NearestFreeSlot']; + noOfPatientsRate = json['NoOfPatientsRate']; + originalClinicID = json['OriginalClinicID']; + personRate = json['PersonRate']; + projectDistanceInKiloMeters = json['ProjectDistanceInKiloMeters']; + qR = json['QR']; + qRString = json['QRString']; + rateNumber = json['RateNumber']; + serviceID = json['ServiceID']; + setupID = json['SetupID']; + speciality = json['Speciality'].cast(); + workingHours = json['WorkingHours']; + } + + Map toJson() { + final Map data = new Map(); + data['ClinicID'] = this.clinicID; + data['ClinicName'] = this.clinicName; + data['DoctorTitle'] = this.doctorTitle; + data['ID'] = this.iD; + data['Name'] = this.name; + data['ProjectID'] = this.projectID; + data['ProjectName'] = this.projectName; + data['ActualDoctorRate'] = this.actualDoctorRate; + data['ClinicRoomNo'] = this.clinicRoomNo; + data['Date'] = this.date; + data['DayName'] = this.dayName; + data['DecimalDoctorRate'] = this.decimalDoctorRate; + data['DoctorAvailability'] = this.doctorAvailability; + data['DoctorID'] = this.doctorID; + data['DoctorImageURL'] = this.doctorImageURL; + data['DoctorProfile'] = this.doctorProfile; + data['DoctorProfileInfo'] = this.doctorProfileInfo; + data['DoctorRate'] = this.doctorRate; + data['DoctorStarsRate'] = this.doctorStarsRate; + data['Gender'] = this.gender; + data['GenderDescription'] = this.genderDescription; + data['IsAllowWaitList'] = this.isAllowWaitList; + data['IsAppointmentAllowed'] = this.isAppointmentAllowed; + data['IsDoctorAllowVedioCall'] = this.isDoctorAllowVedioCall; + data['IsDoctorDummy'] = this.isDoctorDummy; + data['IsDoctorHasPrePostImages'] = this.isDoctorHasPrePostImages; + data['IsLiveCare'] = this.isLiveCare; + data['Latitude'] = this.latitude; + data['Longitude'] = this.longitude; + data['NationalityFlagURL'] = this.nationalityFlagURL; + data['NationalityID'] = this.nationalityID; + data['NationalityName'] = this.nationalityName; + data['NearestFreeSlot'] = this.nearestFreeSlot; + data['NoOfPatientsRate'] = this.noOfPatientsRate; + data['OriginalClinicID'] = this.originalClinicID; + data['PersonRate'] = this.personRate; + data['ProjectDistanceInKiloMeters'] = this.projectDistanceInKiloMeters; + data['QR'] = this.qR; + data['QRString'] = this.qRString; + data['RateNumber'] = this.rateNumber; + data['ServiceID'] = this.serviceID; + data['SetupID'] = this.setupID; + data['Speciality'] = this.speciality; + data['WorkingHours'] = this.workingHours; + return data; + } +} + +class DoctorsListTime { + List doctorsByTimeList = List(); + String filterName = ""; + + DoctorsListTime({filterName, DoctorListByTimeModel doctor}) { + doctorsByTimeList.add(doctor); + } +} diff --git a/lib/core/model/health_calcolator/get_doctor_by_time_request_model.dart b/lib/core/model/health_calcolator/get_doctor_by_time_request_model.dart new file mode 100644 index 00000000..cf9b2004 --- /dev/null +++ b/lib/core/model/health_calcolator/get_doctor_by_time_request_model.dart @@ -0,0 +1,80 @@ +class DoctorListByTimeRequestModel { + int clinicID; + bool isGetNearAppointment; + bool continueDentalPlan; + bool isSearchAppointmnetByClinicID; + int patientID; + int latitude; + int longitude; + bool license; + double versionID; + int channel; + int languageID; + String iPAdress; + String generalid; + int patientOutSA; + dynamic sessionID; + bool isDentalAllowedBackend; + int deviceTypeID; + + DoctorListByTimeRequestModel( + {this.clinicID, + this.isGetNearAppointment, + this.continueDentalPlan, + this.isSearchAppointmnetByClinicID, + this.patientID, + this.latitude, + this.longitude, + this.license, + this.versionID, + this.channel, + this.languageID, + this.iPAdress, + this.generalid, + this.patientOutSA, + this.sessionID, + this.isDentalAllowedBackend, + this.deviceTypeID}); + + DoctorListByTimeRequestModel.fromJson(Map json) { + clinicID = json['ClinicID']; + isGetNearAppointment = json['IsGetNearAppointment']; + continueDentalPlan = json['ContinueDentalPlan']; + isSearchAppointmnetByClinicID = json['IsSearchAppointmnetByClinicID']; + patientID = json['PatientID']; + latitude = json['Latitude']; + longitude = json['Longitude']; + license = json['License']; + versionID = json['VersionID']; + channel = json['Channel']; + languageID = json['LanguageID']; + iPAdress = json['IPAdress']; + generalid = json['generalid']; + patientOutSA = json['PatientOutSA']; + sessionID = json['SessionID']; + isDentalAllowedBackend = json['isDentalAllowedBackend']; + deviceTypeID = json['DeviceTypeID']; + } + + Map toJson() { + final Map data = new Map(); + data['ClinicID'] = this.clinicID; + data['IsGetNearAppointment'] = this.isGetNearAppointment; + data['ContinueDentalPlan'] = this.continueDentalPlan; + data['IsSearchAppointmnetByClinicID'] = this.isSearchAppointmnetByClinicID; + data['PatientID'] = this.patientID; + data['Latitude'] = this.latitude; + data['Longitude'] = this.longitude; + data['License'] = this.license; + data['VersionID'] = this.versionID; + data['Channel'] = this.channel; + data['LanguageID'] = this.languageID; + data['IPAdress'] = this.iPAdress; + data['generalid'] = this.generalid; + data['PatientOutSA'] = this.patientOutSA; + data['SessionID'] = this.sessionID; + data['isDentalAllowedBackend'] = this.isDentalAllowedBackend; + data['DeviceTypeID'] = this.deviceTypeID; + return data; + } +} diff --git a/lib/core/model/health_calcolator/get_doctor_list_calcolation_model.dart b/lib/core/model/health_calcolator/get_doctor_list_calcolation_model.dart new file mode 100644 index 00000000..409cab60 --- /dev/null +++ b/lib/core/model/health_calcolator/get_doctor_list_calcolation_model.dart @@ -0,0 +1,64 @@ +class GetDoctorListModel { + int calcID; + int projectID; + int clinicID; + String clinicName; + int doctorID; + String doctorImageURL; + String doctorName; + String doctorTitle; + int gender; + String genderDescription; + String nationality; + String nationalityFlagURL; + String projectName; + + GetDoctorListModel( + {this.calcID, + this.projectID, + this.clinicID, + this.clinicName, + this.doctorID, + this.doctorImageURL, + this.doctorName, + this.doctorTitle, + this.gender, + this.genderDescription, + this.nationality, + this.nationalityFlagURL, + this.projectName}); + + GetDoctorListModel.fromJson(Map json) { + calcID = json['CalcID']; + projectID = json['ProjectID']; + clinicID = json['ClinicID']; + clinicName = json['ClinicName']; + doctorID = json['DoctorID']; + doctorImageURL = json['DoctorImageURL']; + doctorName = json['DoctorName']; + doctorTitle = json['DoctorTitle']; + gender = json['Gender']; + genderDescription = json['GenderDescription']; + nationality = json['Nationality']; + nationalityFlagURL = json['NationalityFlagURL']; + projectName = json['ProjectName']; + } + + Map toJson() { + final Map data = new Map(); + data['CalcID'] = this.calcID; + data['ProjectID'] = this.projectID; + data['ClinicID'] = this.clinicID; + data['ClinicName'] = this.clinicName; + data['DoctorID'] = this.doctorID; + data['DoctorImageURL'] = this.doctorImageURL; + data['DoctorName'] = this.doctorName; + data['DoctorTitle'] = this.doctorTitle; + data['Gender'] = this.gender; + data['GenderDescription'] = this.genderDescription; + data['Nationality'] = this.nationality; + data['NationalityFlagURL'] = this.nationalityFlagURL; + data['ProjectName'] = this.projectName; + return data; + } +} diff --git a/lib/core/model/health_calcolator/get_doctor_list_calcolation_request_model.dart b/lib/core/model/health_calcolator/get_doctor_list_calcolation_request_model.dart new file mode 100644 index 00000000..80002341 --- /dev/null +++ b/lib/core/model/health_calcolator/get_doctor_list_calcolation_request_model.dart @@ -0,0 +1,52 @@ +class GetDoctorListRequestModel { + int calculationID; + double versionID; + int channel; + int languageID; + String iPAdress; + String generalid; + int patientOutSA; + String sessionID; + bool isDentalAllowedBackend; + int deviceTypeID; + + GetDoctorListRequestModel( + {this.calculationID, + this.versionID, + this.channel, + this.languageID, + this.iPAdress, + this.generalid, + this.patientOutSA, + this.sessionID, + this.isDentalAllowedBackend, + this.deviceTypeID}); + + GetDoctorListRequestModel.fromJson(Map json) { + calculationID = json['CalculationID']; + versionID = json['VersionID']; + channel = json['Channel']; + languageID = json['LanguageID']; + iPAdress = json['IPAdress']; + generalid = json['generalid']; + patientOutSA = json['PatientOutSA']; + sessionID = json['SessionID']; + isDentalAllowedBackend = json['isDentalAllowedBackend']; + deviceTypeID = json['DeviceTypeID']; + } + + Map toJson() { + final Map data = new Map(); + data['CalculationID'] = this.calculationID; + data['VersionID'] = this.versionID; + data['Channel'] = this.channel; + data['LanguageID'] = this.languageID; + data['IPAdress'] = this.iPAdress; + data['generalid'] = this.generalid; + data['PatientOutSA'] = this.patientOutSA; + data['SessionID'] = this.sessionID; + data['isDentalAllowedBackend'] = this.isDentalAllowedBackend; + data['DeviceTypeID'] = this.deviceTypeID; + return data; + } +} diff --git a/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart b/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart index b59eadac..37fdae75 100644 --- a/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart +++ b/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart @@ -2,24 +2,28 @@ import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HealthCalculator/ClinicCategory.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HealthCalculator/DiseasesByClinic.dart'; +import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_by_time_model.dart'; +import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_by_time_request_model.dart'; +import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_list_calcolation_model.dart'; +import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_list_calcolation_request_model.dart'; import 'package:diplomaticquarterapp/core/service/base_service.dart'; class BariatricsService extends BaseService { List clinicCategoryList = []; List diseasesList = []; + List doctorList = []; + List doctorListByTime = []; Future getClinicCategory() async { hasError = false; Map body = Map(); - var languageID = - await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); + var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); body['ClinicID'] = 108; // hint: it is static depend on IONIC project body['isDentalAllowedBackend'] = false; body['LanguageID'] = languageID == 'ar' ? 1 : 2; - await baseAppClient.post(GET_CLINIC_CATEGORY, - onSuccess: (dynamic response, int statusCode) { + await baseAppClient.post(GET_CLINIC_CATEGORY, onSuccess: (dynamic response, int statusCode) { clinicCategoryList.clear(); if (response['ClinicCategoryList'] != null) response['ClinicCategoryList'].forEach((city) { @@ -36,8 +40,7 @@ class BariatricsService extends BaseService { Map body = Map(); body['ClinicID'] = 108; // hint: it is static depend on IONIC project - await baseAppClient.post(GET_DISEASE_BY_CLINIC_ID, - onSuccess: (dynamic response, int statusCode) { + await baseAppClient.post(GET_DISEASE_BY_CLINIC_ID, onSuccess: (dynamic response, int statusCode) { diseasesList.clear(); if (response['DiseasesByClinicList'] != null) response['DiseasesByClinicList'].forEach((city) { @@ -51,8 +54,7 @@ class BariatricsService extends BaseService { Future searchDoctorsByTime(DiseasesByClinic disease) async { hasError = false; - var languageID = - await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); + var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); Map body = Map(); body['ClinicID'] = 108; // hint: it is static depend on IONIC project @@ -66,11 +68,36 @@ class BariatricsService extends BaseService { body['Longitude'] = 0; body['isDentalAllowedBackend'] = false; - await baseAppClient.post(SEARCH_DOCTOR_BY_TIME, - onSuccess: (dynamic response, int statusCode) { - }, onFailure: (String error, int statusCode) { + await baseAppClient.post(SEARCH_DOCTOR_BY_TIME, onSuccess: (dynamic response, int statusCode) {}, + onFailure: (String error, int statusCode) { hasError = true; super.error = error; }, body: body); } + + Future getDoctorList() async { + hasError = false; + DoctorListByTimeRequestModel _doctorListReq = DoctorListByTimeRequestModel(); + _doctorListReq.isGetNearAppointment = false; + _doctorListReq.continueDentalPlan = false; + _doctorListReq.isSearchAppointmnetByClinicID = true; + _doctorListReq.latitude = 0; + _doctorListReq.longitude = 0; + _doctorListReq.license = true; + _doctorListReq.clinicID = 108; + _doctorListReq.patientID = 0; + + //body['ClinicID'] = 108; // hint: it is static depend on IONIC project + + await baseAppClient.post(GET_DOCTOR_LIST_BY_TIME, onSuccess: (dynamic response, int statusCode) { + doctorListByTime.clear(); + if (response['DoctorList'] != null) + response['DoctorList'].forEach((city) { + doctorListByTime.add(DoctorListByTimeModel.fromJson(city)); + }); + }, onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, body: _doctorListReq.toJson()); + } } diff --git a/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart b/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart index 5853cc8f..6f0a345d 100644 --- a/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart +++ b/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart @@ -2,6 +2,8 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HealthCalculator/ClinicCategory.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HealthCalculator/DiseasesByClinic.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HealthCalculator/ClinicCategory.dart'; +import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_by_time_model.dart'; +import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_list_calcolation_model.dart'; import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart'; import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; @@ -13,6 +15,9 @@ class BariatricsViewModel extends BaseViewModel { List get clinicCategoryList => _service.clinicCategoryList; List get diseasesList => _service.diseasesList; + List get doctorList => _service.doctorList; + List get doctorListByTime => _service.doctorListByTime; + List doctorLists = List(); void getClinicCategory() async { setState(ViewState.Busy); @@ -46,4 +51,32 @@ class BariatricsViewModel extends BaseViewModel { setState(ViewState.Idle); } } + + void getDoctorList() async { + setState(ViewState.Busy); + await _service.getDoctorList(); + if (_service.hasError) { + error = _service.error; + setState(ViewState.Error); + } else { + { + _service.doctorListByTime.forEach((element) { + List patientLabOrdersClinic = + doctorLists.where((elementClinic) => elementClinic.filterName == element.projectName).toList(); + + if (patientLabOrdersClinic.length != 0) { + var value = doctorLists[doctorLists.indexOf(patientLabOrdersClinic[0])] + .doctorsByTimeList + .where((e) => e.projectName == element.projectName) + .toList(); + if (value.isEmpty) + doctorLists[doctorLists.indexOf(patientLabOrdersClinic[0])].doctorsByTimeList.add(element); + } else { + doctorLists.add(DoctorsListTime(filterName: element.projectName, doctor: element)); + } + }); + setState(ViewState.Idle); + } + } + } } diff --git a/lib/core/viewModels/medical/blood_pressure_view_model.dart b/lib/core/viewModels/medical/blood_pressure_view_model.dart index ae3abbcb..16a43a6f 100644 --- a/lib/core/viewModels/medical/blood_pressure_view_model.dart +++ b/lib/core/viewModels/medical/blood_pressure_view_model.dart @@ -9,14 +9,11 @@ import '../../../core/viewModels/base_view_model.dart'; class BloodPressureViewMode extends BaseViewModel { BloodPressureService bloodPressureService = locator(); - List get monthDiabtecPatientResult => - bloodPressureService.monthDiabtecPatientResult; + List get monthDiabtecPatientResult => bloodPressureService.monthDiabtecPatientResult; - List get weekDiabtecPatientResult => - bloodPressureService.weekDiabtecPatientResult; + List get weekDiabtecPatientResult => bloodPressureService.weekDiabtecPatientResult; - List get yearDiabtecPatientResult => - bloodPressureService.yearDiabtecPatientResult; + List get yearDiabtecPatientResult => bloodPressureService.yearDiabtecPatientResult; List weightWeekTimeSeriesDataTop = []; List weightWeekTimeSeriesDataLow = []; @@ -37,35 +34,36 @@ class BloodPressureViewMode extends BaseViewModel { } else { clearDate(); bloodPressureService.weekDiabtectResultAverageList.forEach((element) { - weightWeekTimeSeriesDataTop.add(TimeSeriesSales2( - element.bloodPressureDate, - element.dailyDiastolicPressureAverageResult.toDouble())); - weightWeekTimeSeriesDataLow.add(TimeSeriesSales2( - element.bloodPressureDate, - element.dailySystolicePressureAverageResult.toDouble())); + weightWeekTimeSeriesDataTop + .add(TimeSeriesSales2(element.bloodPressureDate, element.dailyDiastolicPressureAverageResult.toDouble())); + weightWeekTimeSeriesDataLow + .add(TimeSeriesSales2(element.bloodPressureDate, element.dailySystolicePressureAverageResult.toDouble())); for (int index = 0; index < bloodPressureService.monthDiabtectResultAverageList.length; index++) { - - weighMonthTimeSeriesDataTop.add(TimeSeriesSales3(index, bloodPressureService.monthDiabtectResultAverageList[index].weekDiastolicPressureAverageResult.toDouble())); - - weighMonthTimeSeriesDataLow.add(TimeSeriesSales3(index, bloodPressureService.monthDiabtectResultAverageList[index].weekSystolicePressureAverageResult.toDouble())); + weighMonthTimeSeriesDataTop.add(TimeSeriesSales3( + index, + bloodPressureService.monthDiabtectResultAverageList[index].weekDiastolicPressureAverageResult + .toDouble())); + + weighMonthTimeSeriesDataLow.add(TimeSeriesSales3( + index, + bloodPressureService.monthDiabtectResultAverageList[index].weekSystolicePressureAverageResult + .toDouble())); } bloodPressureService.yearDiabtecResultAverageList.forEach((element) { - weightYearTimeSeriesDataTop.add(TimeSeriesSales2(element.date, - element.monthSystolicePressureAverageResult.toDouble())); + weightYearTimeSeriesDataTop + .add(TimeSeriesSales2(element.date, element.monthSystolicePressureAverageResult.toDouble())); - weightYearTimeSeriesDataLow.add(TimeSeriesSales2(element.date, - element.monthDiastolicPressureAverageResult.toDouble())); + weightYearTimeSeriesDataLow + .add(TimeSeriesSales2(element.date, element.monthDiastolicPressureAverageResult.toDouble())); }); - }); setState(ViewState.Idle); } } - - void clearDate(){ + void clearDate() { weightWeekTimeSeriesDataTop.clear(); weightWeekTimeSeriesDataLow.clear(); weighMonthTimeSeriesDataTop.clear(); @@ -86,24 +84,25 @@ class BloodPressureViewMode extends BaseViewModel { } } - Future addORUpdateDiabtecResult( + Future addORUpdateDiabtecResult( {String bloodPressureDate, String diastolicPressure, String systolicePressure, - int measuredArm,bool isUpdate = false}) async { + int measuredArm, + bool isUpdate = false}) async { setState(ViewState.BusyLocal); - if(!isUpdate) - await bloodPressureService.addDiabtecResult( - bloodPressureDate: bloodPressureDate, - diastolicPressure: diastolicPressure, - systolicePressure: systolicePressure, - measuredArm: measuredArm); + if (!isUpdate) + await bloodPressureService.addDiabtecResult( + bloodPressureDate: bloodPressureDate, + diastolicPressure: diastolicPressure, + systolicePressure: systolicePressure, + measuredArm: measuredArm); else await bloodPressureService.updateDiabtecResult( - bloodPressureDate: bloodPressureDate, - diastolicPressure: diastolicPressure, - systolicePressure: systolicePressure, - measuredArm: measuredArm); + bloodPressureDate: bloodPressureDate, + diastolicPressure: diastolicPressure, + systolicePressure: systolicePressure, + measuredArm: measuredArm); if (bloodPressureService.hasError) { error = bloodPressureService.error; setState(ViewState.ErrorLocal); @@ -113,7 +112,6 @@ class BloodPressureViewMode extends BaseViewModel { } } - Future deactivateDiabeticStatus({int lineItemNo}) async { setState(ViewState.BusyLocal); diff --git a/lib/core/viewModels/medical/labs_view_model.dart b/lib/core/viewModels/medical/labs_view_model.dart index 9e3f09e5..4473c117 100644 --- a/lib/core/viewModels/medical/labs_view_model.dart +++ b/lib/core/viewModels/medical/labs_view_model.dart @@ -16,14 +16,11 @@ class LabsViewModel extends BaseViewModel { List get labOrdersResultsList => _labsService.labOrdersResultsList; - List _patientLabOrdersListClinic = List(); List _patientLabOrdersListHospital = List(); List get patientLabOrdersList => - filterType == FilterType.Clinic - ? _patientLabOrdersListClinic - : _patientLabOrdersListHospital; + filterType == FilterType.Clinic ? _patientLabOrdersListClinic : _patientLabOrdersListHospital; void getLabs() async { if (authenticatedUserObject.isLogin) { @@ -34,41 +31,33 @@ class LabsViewModel extends BaseViewModel { setState(ViewState.Error); } else { _labsService.patientLabOrdersList.forEach((element) { - List patientLabOrdersClinic = - _patientLabOrdersListClinic - .where((elementClinic) => - elementClinic.filterName == element.clinicDescription) - .toList(); + List patientLabOrdersClinic = _patientLabOrdersListClinic + .where((elementClinic) => elementClinic.filterName == element.clinicDescription) + .toList(); if (patientLabOrdersClinic.length != 0) { - _patientLabOrdersListClinic[_patientLabOrdersListClinic - .indexOf(patientLabOrdersClinic[0])] + _patientLabOrdersListClinic[_patientLabOrdersListClinic.indexOf(patientLabOrdersClinic[0])] .patientLabOrdersList .add(element); } else { - _patientLabOrdersListClinic.add(PatientLabOrdersList( - filterName: element.clinicDescription, - patientDoctorAppointment: element)); + _patientLabOrdersListClinic + .add(PatientLabOrdersList(filterName: element.clinicDescription, patientDoctorAppointment: element)); } // doctor list sort via project - List patientLabOrdersHospital = - _patientLabOrdersListHospital - .where( - (elementClinic) => - elementClinic.filterName == element.projectName, - ) - .toList(); + List patientLabOrdersHospital = _patientLabOrdersListHospital + .where( + (elementClinic) => elementClinic.filterName == element.projectName, + ) + .toList(); if (patientLabOrdersHospital.length != 0) { - _patientLabOrdersListHospital[_patientLabOrdersListHospital - .indexOf(patientLabOrdersHospital[0])] + _patientLabOrdersListHospital[_patientLabOrdersListHospital.indexOf(patientLabOrdersHospital[0])] .patientLabOrdersList .add(element); } else { - _patientLabOrdersListHospital.add(PatientLabOrdersList( - filterName: element.projectName, - patientDoctorAppointment: element)); + _patientLabOrdersListHospital + .add(PatientLabOrdersList(filterName: element.projectName, patientDoctorAppointment: element)); } }); @@ -82,24 +71,16 @@ class LabsViewModel extends BaseViewModel { notifyListeners(); } - List get patientLabSpecialResult => - _labsService.patientLabSpecialResult; + List get patientLabSpecialResult => _labsService.patientLabSpecialResult; List get labResultList => _labsService.labResultList; List labResultLists = List(); - getLaboratoryResult( - {String projectID, - int clinicID, - String invoiceNo, - String orderNo}) async { + getLaboratoryResult({String projectID, int clinicID, String invoiceNo, String orderNo}) async { setState(ViewState.Busy); await _labsService.getLaboratoryResult( - invoiceNo: invoiceNo, - orderNo: orderNo, - projectID: projectID, - clinicID: clinicID); + invoiceNo: invoiceNo, orderNo: orderNo, projectID: projectID, clinicID: clinicID); if (_labsService.hasError) { error = _labsService.error; setState(ViewState.Error); @@ -116,14 +97,16 @@ class LabsViewModel extends BaseViewModel { setState(ViewState.Error); } else { _labsService.labResultList.forEach((element) { - List patientLabOrdersClinic = labResultLists.where((elementClinic) => elementClinic.filterName == element.testCode).toList(); + List patientLabOrdersClinic = + labResultLists.where((elementClinic) => elementClinic.filterName == element.testCode).toList(); if (patientLabOrdersClinic.length != 0) { - - var value= labResultLists[labResultLists.indexOf(patientLabOrdersClinic[0])].patientLabResultList - .where((e) => e.sampleCollectedOn== element.sampleCollectedOn && e.resultValue ==element.resultValue ).toList(); - if(value.isEmpty) - labResultLists[labResultLists.indexOf(patientLabOrdersClinic[0])].patientLabResultList.add(element); + var value = labResultLists[labResultLists.indexOf(patientLabOrdersClinic[0])] + .patientLabResultList + .where((e) => e.sampleCollectedOn == element.sampleCollectedOn && e.resultValue == element.resultValue) + .toList(); + if (value.isEmpty) + labResultLists[labResultLists.indexOf(patientLabOrdersClinic[0])].patientLabResultList.add(element); } else { labResultLists.add(LabResultList(filterName: element.testCode, lab: element)); } @@ -132,32 +115,30 @@ class LabsViewModel extends BaseViewModel { } } - - getPatientLabOrdersResults({PatientLabOrders patientLabOrder,String procedure}) async { + getPatientLabOrdersResults({PatientLabOrders patientLabOrder, String procedure}) async { setState(ViewState.Busy); - await _labsService.getPatientLabOrdersResults(patientLabOrder: patientLabOrder,procedure: procedure); + await _labsService.getPatientLabOrdersResults(patientLabOrder: patientLabOrder, procedure: procedure); if (_labsService.hasError) { error = _labsService.error; setState(ViewState.Error); } else { bool isShouldClear = false; - if(_labsService.labOrdersResultsList.length==1) - { - labOrdersResultsList.forEach((element) { - if(element.resultValue.contains('/') ||element.resultValue.contains('*' )|| element.resultValue.isEmpty ) - isShouldClear = true; - });} - if(isShouldClear) - _labsService.labOrdersResultsList.clear(); + if (_labsService.labOrdersResultsList.length == 1) { + labOrdersResultsList.forEach((element) { + if (element.resultValue.contains('/') || element.resultValue.contains('*') || element.resultValue.isEmpty) + isShouldClear = true; + }); + } + if (isShouldClear) _labsService.labOrdersResultsList.clear(); setState(ViewState.Idle); } } - sendLabReportEmail({PatientLabOrders patientLabOrder,String mes}) async { + sendLabReportEmail({PatientLabOrders patientLabOrder, String mes}) async { await _labsService.sendLabReportEmail(patientLabOrder: patientLabOrder); if (_labsService.hasError) { error = _labsService.error; - }else + } else AppToast.showSuccessToast(message: mes); } } diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart index d9665aa4..a3d67613 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart @@ -3,12 +3,14 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HealthCalculator/DiseasesByClinic.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/borderedButton.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -33,122 +35,117 @@ class _BariatricsPageState extends State { return BaseView( onModelReady: (model) => model.getClinicCategory(), - builder: (_, model, w) => - AppScaffold( - isShowAppBar: true, - appBarTitle: "${TranslationBase - .of(context) - .bariatrics}", - baseViewModel: model, - body: Column( - children: [ - Container( - margin: EdgeInsets.all(8.0), - child: Center( - child: Texts(TranslationBase - .of(context) - .bariatricsHeaderMsg), - ), - ), - Expanded( - child: Container( - margin: EdgeInsets.symmetric( - horizontal: 16.0, vertical: 8.0), - child: Row( - children: [ - Expanded( - child: SingleChildScrollView( - child: Column( - children: [ - ...model.diseasesList - .map((item) => - RadioListTile( + builder: (_, model, w) => AppScaffold( + isShowDecPage: false, + isShowAppBar: true, + appBarTitle: "${TranslationBase.of(context).bariatrics}", + baseViewModel: model, + body: Column( + children: [ + Container( + margin: EdgeInsets.all(8.0), + child: Center( + child: Texts(TranslationBase.of(context).bariatricsHeaderMsg), + ), + ), + Expanded( + child: Container( + margin: EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), + child: Row( + children: [ + Expanded( + child: SingleChildScrollView( + child: Column( + children: [ + ...model.diseasesList + .map((item) => RadioListTile( title: Texts("${item.diseases}"), activeColor: Colors.blue.shade700, value: item.diseasesID, - groupValue: _selectedDisease != null - ? _selectedDisease.diseasesID - : -1, - selected: _selectedDisease != null ? item - .diseasesID == - _selectedDisease.diseasesID : false, + groupValue: _selectedDisease != null ? _selectedDisease.diseasesID : -1, + selected: _selectedDisease != null + ? item.diseasesID == _selectedDisease.diseasesID + : false, onChanged: (val) { setState(() { _selectedDisease = item; }); }, )) - .toList() - ], - ), - ), - ), - Image.asset( - _getImageName(widget.gender, widget.obeseResult, - projectProvider.isArabic), - fit: BoxFit.cover, + .toList() + ], ), - ], + ), ), - ), - ), - Container( - margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16), - child: BorderedButton( - TranslationBase - .of(context) - .continues, - fontSize: SizeConfig.textMultiplier * 2.1, - textColor: Colors.white, - vPadding: 8, - hPadding: 8, - backgroundColor: Theme - .of(context) - .primaryColor, - radius: 8, - fontWeight: FontWeight.bold, - handler: () async { - await model.searchDoctorsByTime(_selectedDisease); - if(model.state == ViewState.ErrorLocal){ - AppToast.showErrorToast(message: model.error); - } - // Navigator.push( - // context, - // MaterialPageRoute(builder: (context) => BariatricsPage()), - // ); - }, - ), - ), - Container( - margin: EdgeInsets.only(bottom: 16.0, left: 16, right: 16), - child: BorderedButton( - TranslationBase - .of(context) - .skip, - fontSize: SizeConfig.textMultiplier * 2.1, - textColor: Colors.blue, - vPadding: 8, - hPadding: 8, - backgroundColor: Color(0x00000000), - radius: 8, - hasBorder: true, - borderColor: Color(0x00000000), - fontWeight: FontWeight.bold, - handler: () async { - await model.searchDoctorsByTime(_selectedDisease); - if(model.state == ViewState.ErrorLocal){ - AppToast.showErrorToast(message: model.error); - } - // Navigator.push( - // context, - // MaterialPageRoute(builder: (context) => BariatricsPage()), - // ); - }, - ), + Image.asset( + _getImageName(widget.gender, widget.obeseResult, projectProvider.isArabic), + fit: BoxFit.cover, + ), + ], ), - ], + ), + ), + Container( + margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16), + child: BorderedButton( + TranslationBase.of(context).continues, + fontSize: SizeConfig.textMultiplier * 2.1, + textColor: Colors.white, + vPadding: 8, + hPadding: 8, + backgroundColor: Theme.of(context).primaryColor, + radius: 8, + fontWeight: FontWeight.bold, + handler: () async { + Navigator.push( + context, + FadePage(page: DoctorList()), + ); + // await model.searchDoctorsByTime(_selectedDisease); + // if (model.state == ViewState.ErrorLocal) { + // AppToast.showErrorToast(message: model.error); + // } else {} + + // Navigator.push( + // context, + // MaterialPageRoute(builder: (context) => BariatricsPage()), + // ); + }, + ), + ), + Container( + margin: EdgeInsets.only(bottom: 16.0, left: 16, right: 16), + child: BorderedButton( + TranslationBase.of(context).skip, + fontSize: SizeConfig.textMultiplier * 2.1, + textColor: Colors.blue, + vPadding: 8, + hPadding: 8, + backgroundColor: Color(0x00000000), + radius: 8, + hasBorder: true, + borderColor: Color(0x00000000), + fontWeight: FontWeight.bold, + handler: () async { + Navigator.push( + context, + FadePage(page: DoctorList()), + ); + await model.searchDoctorsByTime(_selectedDisease); + if (model.state == ViewState.ErrorLocal) { + AppToast.showErrorToast(message: model.error); + } + + // Navigator.push( + // context, + // MaterialPageRoute(builder: (context) => BariatricsPage()), + // ); + }, + ), ), - ), + ], + ), + ), ); } diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart index 2282472b..45ea16fd 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart @@ -121,8 +121,7 @@ class _BMICalculatorState extends State { return AppScaffold( isShowAppBar: true, isShowDecPage: false, - appBarTitle: - "${TranslationBase.of(context).bmi} ${TranslationBase.of(context).calcHealth}", + appBarTitle: "${TranslationBase.of(context).bmi} ${TranslationBase.of(context).calcHealth}", body: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.center, @@ -159,8 +158,7 @@ class _BMICalculatorState extends State { Row( children: [ Padding( - padding: EdgeInsets.symmetric( - vertical: 10.0, horizontal: 8.0), + padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0), child: Center( child: Container( width: 60.0, @@ -181,8 +179,7 @@ class _BMICalculatorState extends State { Container( height: 38.0, child: Column( - crossAxisAlignment: - CrossAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Container( @@ -264,18 +261,15 @@ class _BMICalculatorState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: - Offset(0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], color: cmCard, borderRadius: BorderRadius.circular(3.0), ), child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 0.0, horizontal: 18.0), - child: Center( - child: Texts(TranslationBase.of(context).cm)), + padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0), + child: Center(child: Texts(TranslationBase.of(context).cm)), ), ), ), @@ -296,16 +290,13 @@ class _BMICalculatorState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: - Offset(0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], ), child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), - child: Center( - child: Texts(TranslationBase.of(context).feet)), + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: Center(child: Texts(TranslationBase.of(context).feet)), ), ), ), @@ -337,8 +328,7 @@ class _BMICalculatorState extends State { Row( children: [ Padding( - padding: EdgeInsets.symmetric( - vertical: 10.0, horizontal: 8.0), + padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0), child: Center( child: Container( width: 60.0, @@ -359,8 +349,7 @@ class _BMICalculatorState extends State { Container( height: 38.0, child: Column( - crossAxisAlignment: - CrossAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Container( @@ -442,18 +431,15 @@ class _BMICalculatorState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: - Offset(0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], color: kgCard, borderRadius: BorderRadius.circular(3.0), ), child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 0.0, horizontal: 18.0), - child: Center( - child: Texts(TranslationBase.of(context).kg)), + padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0), + child: Center(child: Texts(TranslationBase.of(context).kg)), ), ), ), @@ -474,17 +460,13 @@ class _BMICalculatorState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: - Offset(0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], ), child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), - child: Center( - child: - Texts(TranslationBase.of(context).pound)), + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: Center(child: Texts(TranslationBase.of(context).pound)), ), ), ), diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/result_page.dart index a541b3ce..9b0ee417 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/result_page.dart @@ -50,9 +50,9 @@ class ResultPage extends StatelessWidget { @override Widget build(BuildContext context) { return AppScaffold( + isShowDecPage: false, isShowAppBar: true, - appBarTitle: - "${TranslationBase.of(context).bmi} ${TranslationBase.of(context).calcHealth}", + appBarTitle: "${TranslationBase.of(context).bmi} ${TranslationBase.of(context).calcHealth}", body: Column( children: [ Expanded( @@ -112,11 +112,10 @@ class ResultPage extends StatelessWidget { backgroundColor: Theme.of(context).primaryColor, radius: 8, fontWeight: FontWeight.bold, - handler: (){ + handler: () { Navigator.push( context, - FadePage( - page: BariatricsPage(1, 1, finalResult)), + FadePage(page: BariatricsPage(1, 1, finalResult)), ); }, ), diff --git a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart index 1530d0ee..0ce34e42 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart @@ -148,18 +148,10 @@ class _BodyFatState extends State { void calculateBodyFat() { if (isMale == true) { - bodyFat = 495 / - (1.0324 - - 0.19077 * (log(waist - neck) / ln10) + - 0.15456 * (log(heightCm) / ln10)) - - 450; + bodyFat = 495 / (1.0324 - 0.19077 * (log(waist - neck) / ln10) + 0.15456 * (log(heightCm) / ln10)) - 450; fat = (bodyFat * 10) / 10.round(); } else if (isMale == false) { - bodyFat = 495 / - (1.29579 - - 0.35004 * (log(waist + hip - neck) / ln10) + - 0.22100 * (log(heightCm) / ln10)) - - 450; + bodyFat = 495 / (1.29579 - 0.35004 * (log(waist + hip - neck) / ln10) + 0.22100 * (log(heightCm) / ln10)) - 450; fat = (bodyFat * 10) / 10.round(); } if (fat <= 0) { @@ -180,11 +172,9 @@ class _BodyFatState extends State { } else if (bodyFat > 31 && bodyFat <= 60) { textResult = 'The category falls under obese'; } else if (bodyFat > 60) { - textResult = - 'Please check the value you have entered, since the body fat percentage has crosed the limits.'; + textResult = 'Please check the value you have entered, since the body fat percentage has crosed the limits.'; } else if (bodyFat <= 9) { - textResult = - 'Please check the value you have entered, since the body fat percentage cannot be this low.'; + textResult = 'Please check the value you have entered, since the body fat percentage cannot be this low.'; } } else { if (bodyFat > 5 && fat <= 13) { @@ -196,11 +186,9 @@ class _BodyFatState extends State { } else if (bodyFat > 24 && bodyFat <= 45) { textResult = 'The category falls under obese'; } else if (bodyFat > 45) { - textResult = - 'Please check the value you have entered, since the body fat percentage has crosed the limits.'; + textResult = 'Please check the value you have entered, since the body fat percentage has crosed the limits.'; } else if (bodyFat <= 5) { - textResult = - 'Please check the value you have entered, since the body fat percentage cannot be this low.'; + textResult = 'Please check the value you have entered, since the body fat percentage cannot be this low.'; } } } @@ -229,8 +217,7 @@ class _BodyFatState extends State { children: [ Padding( padding: EdgeInsets.all(10.0), - child: - Texts('Estimates the total body fat based on\n the size'), + child: Texts('Estimates the total body fat based on\n the size'), ), Divider( thickness: 2.0, @@ -308,14 +295,12 @@ class _BodyFatState extends State { child: Row( children: [ Padding( - padding: EdgeInsets.symmetric( - vertical: 10.0, horizontal: 8.0), + padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0), child: Center( child: Container( width: 60.0, foregroundDecoration: BoxDecoration( - borderRadius: - BorderRadius.circular(5.0), + borderRadius: BorderRadius.circular(5.0), border: Border.all( color: Colors.blueGrey, width: 2.0, @@ -331,10 +316,8 @@ class _BodyFatState extends State { Container( height: 38.0, child: Column( - crossAxisAlignment: - CrossAxisAlignment.center, - mainAxisAlignment: - MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ Container( decoration: BoxDecoration( @@ -351,8 +334,7 @@ class _BodyFatState extends State { ), onTap: () { setState(() { - if (heightCm < 250) - heightCm++; + if (heightCm < 250) heightCm++; }); }, ), @@ -364,8 +346,7 @@ class _BodyFatState extends State { ), onTap: () { setState(() { - if (heightCm > 0) - heightCm--; + if (heightCm > 0) heightCm--; }); }, ), @@ -420,16 +401,14 @@ class _BodyFatState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset( - 0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], color: cmCard, borderRadius: BorderRadius.circular(3.0), ), child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 0.0, horizontal: 18.0), + padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0), child: Center(child: Texts('CM')), ), ), @@ -452,14 +431,12 @@ class _BodyFatState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset( - 0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], ), child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), + padding: const EdgeInsets.symmetric(horizontal: 16.0), child: Center(child: Texts('Ft')), ), ), @@ -484,14 +461,12 @@ class _BodyFatState extends State { child: Row( children: [ Padding( - padding: EdgeInsets.symmetric( - vertical: 10.0, horizontal: 8.0), + padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0), child: Center( child: Container( width: 60.0, foregroundDecoration: BoxDecoration( - borderRadius: - BorderRadius.circular(5.0), + borderRadius: BorderRadius.circular(5.0), border: Border.all( color: Colors.blueGrey, width: 2.0, @@ -507,10 +482,8 @@ class _BodyFatState extends State { Container( height: 38.0, child: Column( - crossAxisAlignment: - CrossAxisAlignment.center, - mainAxisAlignment: - MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ Container( decoration: BoxDecoration( @@ -594,16 +567,14 @@ class _BodyFatState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset( - 0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], color: neckCmCard, borderRadius: BorderRadius.circular(3.0), ), child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 0.0, horizontal: 18.0), + padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0), child: Center(child: Texts('CM')), ), ), @@ -626,14 +597,12 @@ class _BodyFatState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset( - 0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], ), child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), + padding: const EdgeInsets.symmetric(horizontal: 16.0), child: Center(child: Texts('Ft')), ), ), @@ -658,14 +627,12 @@ class _BodyFatState extends State { child: Row( children: [ Padding( - padding: EdgeInsets.symmetric( - vertical: 10.0, horizontal: 8.0), + padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0), child: Center( child: Container( width: 60.0, foregroundDecoration: BoxDecoration( - borderRadius: - BorderRadius.circular(5.0), + borderRadius: BorderRadius.circular(5.0), border: Border.all( color: Colors.blueGrey, width: 2.0, @@ -681,10 +648,8 @@ class _BodyFatState extends State { Container( height: 38.0, child: Column( - crossAxisAlignment: - CrossAxisAlignment.center, - mainAxisAlignment: - MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ Container( decoration: BoxDecoration( @@ -701,8 +666,7 @@ class _BodyFatState extends State { ), onTap: () { setState(() { - if (waist < 200) - waist++; + if (waist < 200) waist++; }); }, ), @@ -769,16 +733,14 @@ class _BodyFatState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset( - 0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], color: waistCmCard, borderRadius: BorderRadius.circular(3.0), ), child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 0.0, horizontal: 18.0), + padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0), child: Center(child: Texts('CM')), ), ), @@ -801,14 +763,12 @@ class _BodyFatState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset( - 0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], ), child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), + padding: const EdgeInsets.symmetric(horizontal: 16.0), child: Center(child: Texts('Ft')), ), ), @@ -833,14 +793,12 @@ class _BodyFatState extends State { child: Row( children: [ Padding( - padding: EdgeInsets.symmetric( - vertical: 10.0, horizontal: 8.0), + padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0), child: Center( child: Container( width: 60.0, foregroundDecoration: BoxDecoration( - borderRadius: - BorderRadius.circular(5.0), + borderRadius: BorderRadius.circular(5.0), border: Border.all( color: Colors.blueGrey, width: 2.0, @@ -856,10 +814,8 @@ class _BodyFatState extends State { Container( height: 38.0, child: Column( - crossAxisAlignment: - CrossAxisAlignment.center, - mainAxisAlignment: - MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ Container( decoration: BoxDecoration( @@ -943,16 +899,14 @@ class _BodyFatState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset( - 0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], color: hipCmCard, borderRadius: BorderRadius.circular(3.0), ), child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 0.0, horizontal: 18.0), + padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0), child: Center(child: Texts('CM')), ), ), @@ -975,14 +929,12 @@ class _BodyFatState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset( - 0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], ), child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), + padding: const EdgeInsets.symmetric(horizontal: 16.0), child: Center(child: Texts('Ft')), ), ), @@ -995,7 +947,7 @@ class _BodyFatState extends State { ], ), Container( - height: 100.0, + height: MediaQuery.of(context).size.height * 0.084, width: 350.0, child: SecondaryButton( label: 'CALCULATE', diff --git a/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart b/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart index d19c6017..db5a585c 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart @@ -70,9 +70,7 @@ class _DeliveryDueState extends State { onConfirm: (date) { print('confirm $date'); setState(() { - bloodSugarDate == date - ? null - : bloodSugarDate = DateTime.now(); + bloodSugarDate = date; dateFrom = date.add(Duration(days: 10)); dateTo = date.add(Duration(days: 20)); @@ -90,9 +88,7 @@ class _DeliveryDueState extends State { padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -124,14 +120,14 @@ class _DeliveryDueState extends State { context, FadePage( page: DeliveryDueResult( - conceivedDate: conceivedDate, - dateFrom: dateFrom, - dateTo: dateTo, - deliveryDue: deliveryDue, - firstTrimester: firstTrimester, - secondTrimester: secondTrimester, - thirdTrimester: thirdTrimester, - )), + conceivedDate: conceivedDate, + dateFrom: dateFrom, + dateTo: dateTo, + deliveryDue: deliveryDue, + firstTrimester: firstTrimester, + secondTrimester: secondTrimester, + thirdTrimester: thirdTrimester, + )), ); } }); diff --git a/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart b/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart new file mode 100644 index 00000000..8c84a418 --- /dev/null +++ b/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart @@ -0,0 +1,131 @@ +import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart'; +import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:rating_bar/rating_bar.dart'; + +class DoctorList extends StatelessWidget { + const DoctorList({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return BaseView( + allowAny: true, + onModelReady: (model) => model.getDoctorList(), + builder: (BuildContext context, BariatricsViewModel model, Widget child) => AppScaffold( + isShowDecPage: false, + isShowAppBar: true, + baseViewModel: model, + appBarTitle: "Doctors List", + description: TranslationBase.of(context).infoApprovals, + infoList: TranslationBase.of(context).infoApprovalPoints, + body: ListView.builder( + itemCount: model.doctorLists.length, + itemBuilder: (BuildContext context, int index) { + return ExpansionTile( + title: Text(model.doctorListByTime[index].projectName), + children: [ + Card( + margin: EdgeInsets.fromLTRB(10.0, 16.0, 10.0, 8.0), + color: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: Container( + decoration: BoxDecoration(), + padding: EdgeInsets.all(7.0), + width: MediaQuery.of(context).size.width, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded( + flex: 1, + child: ClipRRect( + borderRadius: BorderRadius.circular(100.0), + child: Image.network(model.doctorListByTime[index].doctorImageURL, + fit: BoxFit.fill, height: 60.0, width: 60.0), + ), + ), + Expanded( + flex: 4, + child: Container( + width: MediaQuery.of(context).size.width * 0.55, + margin: EdgeInsets.fromLTRB(20.0, 10.0, 10.0, 0.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (model.doctorListByTime[index].doctorTitle != null) + Text( + model.doctorListByTime[index].doctorTitle + + " " + + model.doctorListByTime[index].name, + style: TextStyle( + fontSize: 14.0, color: Colors.grey[700], letterSpacing: 1.0)), + Container( + margin: EdgeInsets.only(top: 3.0), + child: Text( + model.doctorListByTime[index].clinicName != null + ? model.doctorListByTime[index].clinicName + : "", + style: TextStyle( + fontSize: 12.0, color: Colors.grey[600], letterSpacing: 1.0)), + ), + Container( + margin: EdgeInsets.only(top: 3.0), + child: Text(model.doctorListByTime[index].projectName, + style: TextStyle( + fontSize: 12.0, color: Colors.grey[600], letterSpacing: 1.0)), + ), + // if (doctor.speciality != null) + // Container( + // margin: EdgeInsets.only(top: 3.0, bottom: 3.0), + // child: Text(getDoctorSpeciality(this.doctor.speciality).trim(), + // style: TextStyle(fontSize: 12.0, color: Colors.grey[600], letterSpacing: 1.0)), + // ), + // this.doctor.nearestFreeSlot != null + // ? Container( + // margin: EdgeInsets.only(top: 3.0, bottom: 3.0), + // child: Text(getDate(this.doctor.nearestFreeSlot), + // style: TextStyle( + // fontSize: 14.0, + // fontWeight: FontWeight.bold, + // color: Colors.green[600], + // letterSpacing: 1.0)), + // ) + // : Container(), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + mainAxisSize: MainAxisSize.max, + children: [ + RatingBar.readOnly( + initialRating: model.doctorListByTime[index].actualDoctorRate.toDouble(), + size: 20.0, + filledColor: Colors.yellow[700], + emptyColor: Colors.grey[500], + isHalfAllowed: true, + halfFilledIcon: Icons.star_half, + filledIcon: Icons.star, + emptyIcon: Icons.star, + ), + Container( + child: Image.network(model.doctorListByTime[index].nationalityFlagURL, + width: 25.0, height: 25.0), + ), + ], + ), + ], + ), + ), + ), + ], + ), + ), + ), + ], + ); + }), + )); + } +} diff --git a/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart b/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart index cf230466..27c89383 100644 --- a/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart +++ b/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart @@ -112,8 +112,7 @@ class _BloodSugarState extends State { onTap: () { setState(() { updateColor(1); - inputValue = - double.parse(textController.text); + inputValue = double.parse(textController.text); inputValue = inputValue / 15; unit = 'mmol/l'; }); @@ -127,16 +126,14 @@ class _BloodSugarState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset( - 0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], color: cardMGColor, borderRadius: BorderRadius.circular(3.0), ), child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 0.0, horizontal: 18.0), + padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0), child: Texts('MG/DLt TO \nMMOL/L'), ), ), @@ -145,8 +142,7 @@ class _BloodSugarState extends State { onTap: () { setState(() { updateColor(2); - inputValue = - double.parse(textController.text); + inputValue = double.parse(textController.text); inputValue = inputValue * 18; unit = 'mg/dlt'; }); @@ -162,15 +158,13 @@ class _BloodSugarState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset( - 0, 3), // changes position of shadow + offset: Offset(0, 3), // changes position of shadow ), ], ), child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 16.0), - child: Texts('MG/DLt TO\n MMOL/L'), + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: Texts('\nMMOL/L TO MG/DLt '), ), ), ), @@ -197,8 +191,7 @@ class _BloodSugarState extends State { keyboardType: TextInputType.number, decoration: InputDecoration( labelText: TranslationBase.of(context).enterReadingValue, - border: OutlineInputBorder( - borderSide: BorderSide(color: Colors.black45)), + border: OutlineInputBorder(borderSide: BorderSide(color: Colors.black45)), labelStyle: TextStyle( color: Colors.black87, ), @@ -260,9 +253,7 @@ class _BloodSugarState extends State { label: TranslationBase.of(context).calculate, onTap: () { setState(() { - _visible == false - ? _visible = !_visible - : _visible = _visible; + _visible == false ? _visible = !_visible : _visible = _visible; calculateBloodSugar(); }); }, diff --git a/lib/pages/AlHabibMedicalService/my_web_view.dart b/lib/pages/AlHabibMedicalService/my_web_view.dart index 59163c15..c4841a24 100644 --- a/lib/pages/AlHabibMedicalService/my_web_view.dart +++ b/lib/pages/AlHabibMedicalService/my_web_view.dart @@ -8,8 +8,7 @@ class MyWebView extends StatelessWidget { final String title; final String selectedUrl; - final Completer _controller = - Completer(); + final Completer _controller = Completer(); MyWebView({ @required this.title, @@ -21,17 +20,12 @@ class MyWebView extends StatelessWidget { return AppScaffold( isShowAppBar: true, appBarTitle: title, - - body: - WebView( + body: WebView( initialUrl: selectedUrl, javascriptMode: JavascriptMode.unrestricted, onWebViewCreated: (WebViewController webViewController) { _controller.complete(webViewController); }, - ) - - - ); + )); } -} \ No newline at end of file +} diff --git a/lib/pages/AlHabibMedicalService/​ health_calculators.dart b/lib/pages/AlHabibMedicalService/​ health_calculators.dart index dbd8939c..fab4eb6d 100644 --- a/lib/pages/AlHabibMedicalService/​ health_calculators.dart +++ b/lib/pages/AlHabibMedicalService/​ health_calculators.dart @@ -9,7 +9,6 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; - import 'health_calculator/bmi_calculator/bmi_calculator.dart'; import 'health_calculator/bmr_calculator/bmr_calculator.dart'; import 'health_calculator/calorie_calculator/calorie_calculator.dart'; @@ -21,8 +20,7 @@ class HealthCalculators extends StatefulWidget { _HealthCalculatorsState createState() => _HealthCalculatorsState(); } -class _HealthCalculatorsState extends State - with SingleTickerProviderStateMixin { +class _HealthCalculatorsState extends State with SingleTickerProviderStateMixin { TabController _tabController; void initState() { super.initState(); @@ -67,22 +65,19 @@ class _HealthCalculatorsState extends State indicatorWeight: 4.0, indicatorColor: Colors.red, labelColor: Theme.of(context).buttonColor, - labelPadding: - EdgeInsets.symmetric(horizontal: 13.0, vertical: 2.0), + labelPadding: EdgeInsets.symmetric(horizontal: 13.0, vertical: 2.0), unselectedLabelColor: Colors.grey, tabs: [ Container( width: MediaQuery.of(context).size.width * 0.35, child: Center( - child: Texts( - TranslationBase.of(context).generalHealth), + child: Texts(TranslationBase.of(context).generalHealth), ), ), Container( width: MediaQuery.of(context).size.width * 0.35, child: Center( - child: - Texts(TranslationBase.of(context).womanHealth), + child: Texts(TranslationBase.of(context).womanHealth), ), ), ], @@ -121,8 +116,7 @@ class _HealthCalculatorsState extends State child: MedicalProfileItem( title: TranslationBase.of(context).bmi, imagePath: 'bmi_health_calculator.png', - subTitle: - TranslationBase.of(context).calcHealth, + subTitle: TranslationBase.of(context).calcHealth, ), ), ), @@ -140,8 +134,7 @@ class _HealthCalculatorsState extends State child: MedicalProfileItem( title: TranslationBase.of(context).calories, imagePath: 'calories-calculator.png', - subTitle: - TranslationBase.of(context).calcHealth, + subTitle: TranslationBase.of(context).calcHealth, ), ), ), @@ -163,8 +156,7 @@ class _HealthCalculatorsState extends State child: MedicalProfileItem( title: TranslationBase.of(context).bmr, imagePath: 'BMR_calculator.png', - subTitle: - TranslationBase.of(context).calcHealth, + subTitle: TranslationBase.of(context).calcHealth, ), ), ), @@ -220,11 +212,9 @@ class _HealthCalculatorsState extends State ); }, child: MedicalProfileItem( - title: - TranslationBase.of(context).carbohydrate, + title: TranslationBase.of(context).carbohydrate, imagePath: 'carb_protein.png', - subTitle: - TranslationBase.of(context).proteinFat, + subTitle: TranslationBase.of(context).proteinFat, ), ), ), diff --git a/lib/pages/medical/my_trackers/Weight/WeightHomePage.dart b/lib/pages/medical/my_trackers/Weight/WeightHomePage.dart index c90b29a7..6f77b83c 100644 --- a/lib/pages/medical/my_trackers/Weight/WeightHomePage.dart +++ b/lib/pages/medical/my_trackers/Weight/WeightHomePage.dart @@ -20,8 +20,7 @@ class WeightHomePage extends StatefulWidget { _WeightHomePageState createState() => _WeightHomePageState(); } -class _WeightHomePageState extends State - with SingleTickerProviderStateMixin { +class _WeightHomePageState extends State with SingleTickerProviderStateMixin { TabController _tabController; @override @@ -43,32 +42,36 @@ class _WeightHomePageState extends State builder: (_, model, w) => AppScaffold( isShowAppBar: true, appBarTitle: TranslationBase.of(context).weight, - appBarIcons: [IconButton( - icon: Icon(Icons.email), - color: Colors.white, - onPressed: () { - showDialog( - context: context, - child: ConfirmSendEmailDialog( - email: model.user.emailAddress, - onTapSendEmail: () async{ - GifLoaderDialogUtils.showMyDialog(context); - model.sendReportByEmail().then((value) { - GifLoaderDialogUtils.hideDialog(context); - if(model.state == ViewState.ErrorLocal){ + appBarIcons: [ + IconButton( + icon: Icon(Icons.email), + color: Colors.white, + onPressed: () { + showDialog( + context: context, + child: ConfirmSendEmailDialog( + email: model.user.emailAddress, + onTapSendEmail: () async { + GifLoaderDialogUtils.showMyDialog(context); + model.sendReportByEmail().then((value) { + GifLoaderDialogUtils.hideDialog(context); + if (model.state == ViewState.ErrorLocal) { + AppToast.showErrorToast(message: model.error); + } else { + AppToast.showSuccessToast( + message: TranslationBase.of(context).emailSentSuccessfully, + ); + } + }).catchError((e) { + GifLoaderDialogUtils.hideDialog(context); AppToast.showErrorToast(message: model.error); - }else{ - AppToast.showSuccessToast(message:TranslationBase.of(context).emailSentSuccessfully, ); - } - }).catchError((e){ - GifLoaderDialogUtils.hideDialog(context); - AppToast.showErrorToast(message: model.error); - }); - }, - ), - ); - }, - ),], + }); + }, + ), + ); + }, + ), + ], baseViewModel: model, body: Scaffold( extendBodyBehindAppBar: true, @@ -89,7 +92,7 @@ class _WeightHomePageState extends State model: model, ), WeightYearPage( - model: model, + model: model, ) ], ), @@ -98,7 +101,12 @@ class _WeightHomePageState extends State ), floatingActionButton: InkWell( onTap: () { - Navigator.push(context, FadePage(page: AddWeightPage(model: model,))); + Navigator.push( + context, + FadePage( + page: AddWeightPage( + model: model, + ))); }, child: Container( width: 55, diff --git a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart index 678ef7dc..c8e07818 100644 --- a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart +++ b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart @@ -29,7 +29,7 @@ class AddBloodPressurePage extends StatefulWidget { {Key key, this.bloodSugarDate, this.measureTimeSelectedType, - this.isUpdate=false, + this.isUpdate = false, this.lineItemNo, this.model, this.bloodSystolicValue, @@ -42,8 +42,7 @@ class AddBloodPressurePage extends StatefulWidget { class _AddBloodPressurePageState extends State { TextEditingController _bloodSystolicValueController = TextEditingController(); - TextEditingController _bloodDiastolicValueController = - TextEditingController(); + TextEditingController _bloodDiastolicValueController = TextEditingController(); DateTime bloodSugarDate = DateTime.now(); DateTime timeSugarDate = DateTime.now(); int measuredArm = 1; @@ -79,41 +78,39 @@ class _AddBloodPressurePageState extends State { return AppScaffold( isShowAppBar: true, - appBarTitle: widget.isUpdate - ? TranslationBase.of(context).update - : TranslationBase.of(context).add, - appBarIcons: widget.isUpdate?[ - IconButton( - icon: Icon(Icons.delete), - color: Colors.white, - onPressed: () { - ConfirmDialog dialog = new ConfirmDialog( - context: context, - confirmMessage: 'Remove this measure', - okText: TranslationBase.of(context).ok, - cancelText: TranslationBase.of(context).cancel, - okFunction: () async { - ConfirmDialog.closeAlertDialog(context); + appBarTitle: widget.isUpdate ? TranslationBase.of(context).update : TranslationBase.of(context).add, + appBarIcons: widget.isUpdate + ? [ + IconButton( + icon: Icon(Icons.delete), + color: Colors.white, + onPressed: () { + ConfirmDialog dialog = new ConfirmDialog( + context: context, + confirmMessage: 'Remove this measure', + okText: TranslationBase.of(context).ok, + cancelText: TranslationBase.of(context).cancel, + okFunction: () async { + ConfirmDialog.closeAlertDialog(context); - GifLoaderDialogUtils.showMyDialog(context); - widget.model - .deactivateDiabeticStatus(lineItemNo: widget.lineItemNo) - .then((value) { - GifLoaderDialogUtils.hideDialog(context); - if (widget.model.state == ViewState.ErrorLocal) - AppToast.showErrorToast(message: widget.model.error); - else - Navigator.pop(context); - }).catchError((e) { - GifLoaderDialogUtils.hideDialog(context); - AppToast.showErrorToast(message: widget.model.error); - }); + GifLoaderDialogUtils.showMyDialog(context); + widget.model.deactivateDiabeticStatus(lineItemNo: widget.lineItemNo).then((value) { + GifLoaderDialogUtils.hideDialog(context); + if (widget.model.state == ViewState.ErrorLocal) + AppToast.showErrorToast(message: widget.model.error); + else + Navigator.pop(context); + }).catchError((e) { + GifLoaderDialogUtils.hideDialog(context); + AppToast.showErrorToast(message: widget.model.error); + }); + }, + cancelFunction: () => {}); + dialog.showAlertDialog(context); }, - cancelFunction: () => {}); - dialog.showAlertDialog(context); - }, - ) - ]:null, + ) + ] + : null, body: SingleChildScrollView( physics: BouncingScrollPhysics(), child: Container( @@ -141,17 +138,13 @@ class _AddBloodPressurePageState extends State { ), InkWell( onTap: () { - confirmSelectMeasureTimeDialog(projectViewModel.isArabic - ? measureTimeEnList - : measureTimeArList); + confirmSelectMeasureTimeDialog(projectViewModel.isArabic ? measureTimeArList : measureTimeEnList); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -178,17 +171,13 @@ class _AddBloodPressurePageState extends State { bloodSugarDate = date; }, ); - }, - currentTime: bloodSugarDate, - locale: projectViewModel.localeType); + }, currentTime: bloodSugarDate, locale: projectViewModel.localeType); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -203,30 +192,22 @@ class _AddBloodPressurePageState extends State { ), InkWell( onTap: () { - DatePicker.showTimePicker(context, showTitleActions: true, - onConfirm: (date) { + DatePicker.showTimePicker(context, showTitleActions: true, onConfirm: (date) { setState( () { timeSugarDate = date; }, ); - }, - currentTime: timeSugarDate, - locale: projectViewModel.localeType); + }, currentTime: timeSugarDate, locale: projectViewModel.localeType); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Texts(TranslationBase.of(context).time), - Texts(getTime()) - ], + children: [Texts(TranslationBase.of(context).time), Texts(getTime())], ), ), ), @@ -245,27 +226,26 @@ class _AddBloodPressurePageState extends State { label: TranslationBase.of(context).save.toUpperCase(), textColor: Colors.white, onTap: () async { - if (_bloodSystolicValueController.text.isNotEmpty && - _bloodDiastolicValueController.text.isNotEmpty) { + if (_bloodSystolicValueController.text.isNotEmpty && _bloodDiastolicValueController.text.isNotEmpty) { GifLoaderDialogUtils.showMyDialog(context); - widget.model.addORUpdateDiabtecResult( + widget.model + .addORUpdateDiabtecResult( isUpdate: widget.isUpdate, bloodPressureDate: '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', - diastolicPressure: - _bloodDiastolicValueController.text.toString(), - systolicePressure: - _bloodSystolicValueController.text.toString(), + diastolicPressure: _bloodDiastolicValueController.text.toString(), + systolicePressure: _bloodSystolicValueController.text.toString(), measuredArm: measuredArm, - ).then((value) { + ) + .then((value) { GifLoaderDialogUtils.hideDialog(context); - if(widget.model.state == ViewState.BusyLocal) - AppToast.showErrorToast(message: widget.model.error); + if (widget.model.state == ViewState.BusyLocal) + AppToast.showErrorToast(message: widget.model.error); else - Navigator.pop(context); -; - }).catchError((e){ + Navigator.pop(context); + ; + }).catchError((e) { GifLoaderDialogUtils.hideDialog(context); AppToast.showErrorToast(message: widget.model.error); }); From 446021eb9055115ba034d85571efc9d4ed99b844 Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Sun, 11 Jul 2021 12:52:30 +0300 Subject: [PATCH 25/59] adding doctor list to health calculator --- .../get_doctor_by_time_model.dart | 1 + .../Bariatrics-viewmodel.dart | 7 +- .../bmr_calculator/bmr_result_page.dart | 12 +- .../body_fat/body_fat_result_page.dart | 8 + .../calorie_result_page.dart | 11 +- .../carbs/carbs_result_page.dart | 8 + .../delivery_due_result_page.dart | 16 +- .../health_calculator/doctor_list.dart | 185 +++++++++--------- .../ideal_body/ideal_body_result_page.dart | 18 +- .../ovulation_result_page.dart | 11 +- .../my_trackers/Weight/WeightHomePage.dart | 1 + .../my_trackers/Weight/WeightMonthlyPage.dart | 90 +++++---- .../my_trackers/Weight/WeightWeeklyPage.dart | 90 +++++---- .../my_trackers/Weight/WeightYeaPage.dart | 100 +++++----- .../medical/my_trackers/my_trackers.dart | 61 +++--- 15 files changed, 328 insertions(+), 291 deletions(-) diff --git a/lib/core/model/health_calcolator/get_doctor_by_time_model.dart b/lib/core/model/health_calcolator/get_doctor_by_time_model.dart index 53688a27..02c4a6ca 100644 --- a/lib/core/model/health_calcolator/get_doctor_by_time_model.dart +++ b/lib/core/model/health_calcolator/get_doctor_by_time_model.dart @@ -193,5 +193,6 @@ class DoctorsListTime { DoctorsListTime({filterName, DoctorListByTimeModel doctor}) { doctorsByTimeList.add(doctor); + this.filterName = filterName; } } diff --git a/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart b/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart index 6f0a345d..609e5424 100644 --- a/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart +++ b/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart @@ -65,12 +65,7 @@ class BariatricsViewModel extends BaseViewModel { doctorLists.where((elementClinic) => elementClinic.filterName == element.projectName).toList(); if (patientLabOrdersClinic.length != 0) { - var value = doctorLists[doctorLists.indexOf(patientLabOrdersClinic[0])] - .doctorsByTimeList - .where((e) => e.projectName == element.projectName) - .toList(); - if (value.isEmpty) - doctorLists[doctorLists.indexOf(patientLabOrdersClinic[0])].doctorsByTimeList.add(element); + doctorLists[doctorLists.indexOf(patientLabOrdersClinic[0])].doctorsByTimeList.add(element); } else { doctorLists.add(DoctorsListTime(filterName: element.projectName, doctor: element)); } diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart index a3fdb5f7..6e7d6279 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.dart @@ -1,6 +1,8 @@ +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:percent_indicator/circular_percent_indicator.dart'; @@ -12,6 +14,7 @@ class BmrResultPage extends StatelessWidget { Widget build(BuildContext context) { return AppScaffold( isShowAppBar: true, + isShowDecPage: false, appBarTitle: 'BMR Calculator', body: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, @@ -55,8 +58,13 @@ class BmrResultPage extends StatelessWidget { Container( width: 350, child: Button( - label: 'See List Of Doctors', - ), + label: 'See List Of Doctors', + onTap: () { + Navigator.push( + context, + FadePage(page: DoctorList()), + ); + }), ), ], ), diff --git a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart index c8c5476e..f41f9598 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.dart @@ -1,6 +1,8 @@ +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:percent_indicator/circular_percent_indicator.dart'; @@ -68,6 +70,12 @@ class FatResult extends StatelessWidget { width: 350, child: Button( label: 'See List Of Doctors', + onTap: () { + Navigator.push( + context, + FadePage(page: DoctorList()), + ); + }, ), ), ], diff --git a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart index 110b2afc..ed3dd8f8 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.dart @@ -1,7 +1,9 @@ +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:percent_indicator/circular_percent_indicator.dart'; @@ -45,13 +47,18 @@ class CalorieResultPage extends StatelessWidget { ), ), Container( - child: - Texts('Daily intake is ${calorie.toStringAsFixed(1)} calories'), + child: Texts('Daily intake is ${calorie.toStringAsFixed(1)} calories'), ), Container( width: 350, child: Button( label: 'See List Of Doctors', + onTap: () { + Navigator.push( + context, + FadePage(page: DoctorList()), + ); + }, ), ), ], diff --git a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart index f8d0815a..474b8613 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.dart @@ -1,6 +1,8 @@ +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'dart:math'; @@ -156,6 +158,12 @@ class CarbsResult extends StatelessWidget { width: 350, child: Button( label: 'See List Of Doctors', + onTap: () { + Navigator.push( + context, + FadePage(page: DoctorList()), + ); + }, ), ), ], diff --git a/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due_result_page.dart index fc53b044..e03e5fce 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due_result_page.dart @@ -1,6 +1,8 @@ +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; @@ -43,17 +45,13 @@ class DeliveryDueResult extends StatelessWidget { fontWeight: FontWeight.w400, ), Texts(DateFormat.yMMMEd().format(dateFrom), - fontWeight: FontWeight.w800, - fontSize: 21.0, - color: Color(0xffC5272D)), + fontWeight: FontWeight.w800, fontSize: 21.0, color: Color(0xffC5272D)), Texts( 'To:', fontWeight: FontWeight.w400, ), Texts(DateFormat.yMMMEd().format(dateTo), - fontWeight: FontWeight.w800, - fontSize: 21.0, - color: Color(0xffC5272D)), + fontWeight: FontWeight.w800, fontSize: 21.0, color: Color(0xffC5272D)), Texts( 'You have conceived on:', fontWeight: FontWeight.w400, @@ -94,6 +92,12 @@ class DeliveryDueResult extends StatelessWidget { width: 350, child: Button( label: 'See List Of Doctors', + onTap: () { + Navigator.push( + context, + FadePage(page: DoctorList()), + ); + }, ), ), ], diff --git a/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart b/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart index 8c84a418..b7d50303 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -24,106 +25,100 @@ class DoctorList extends StatelessWidget { body: ListView.builder( itemCount: model.doctorLists.length, itemBuilder: (BuildContext context, int index) { - return ExpansionTile( - title: Text(model.doctorListByTime[index].projectName), - children: [ - Card( - margin: EdgeInsets.fromLTRB(10.0, 16.0, 10.0, 8.0), - color: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10), + return Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 10.0), + child: Container( + //height: MediaQuery.of(context).size.height * 0.09, + decoration: BoxDecoration(color: Colors.white), + + child: ExpansionTile( + title: Padding( + padding: EdgeInsets.all(21.0), + child: Texts(model.doctorLists[index].filterName), ), - child: Container( - decoration: BoxDecoration(), - padding: EdgeInsets.all(7.0), - width: MediaQuery.of(context).size.width, - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Expanded( - flex: 1, - child: ClipRRect( - borderRadius: BorderRadius.circular(100.0), - child: Image.network(model.doctorListByTime[index].doctorImageURL, - fit: BoxFit.fill, height: 60.0, width: 60.0), - ), - ), - Expanded( - flex: 4, - child: Container( - width: MediaQuery.of(context).size.width * 0.55, - margin: EdgeInsets.fromLTRB(20.0, 10.0, 10.0, 0.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - if (model.doctorListByTime[index].doctorTitle != null) - Text( - model.doctorListByTime[index].doctorTitle + - " " + - model.doctorListByTime[index].name, - style: TextStyle( - fontSize: 14.0, color: Colors.grey[700], letterSpacing: 1.0)), - Container( - margin: EdgeInsets.only(top: 3.0), - child: Text( - model.doctorListByTime[index].clinicName != null - ? model.doctorListByTime[index].clinicName - : "", - style: TextStyle( - fontSize: 12.0, color: Colors.grey[600], letterSpacing: 1.0)), - ), - Container( - margin: EdgeInsets.only(top: 3.0), - child: Text(model.doctorListByTime[index].projectName, - style: TextStyle( - fontSize: 12.0, color: Colors.grey[600], letterSpacing: 1.0)), - ), - // if (doctor.speciality != null) - // Container( - // margin: EdgeInsets.only(top: 3.0, bottom: 3.0), - // child: Text(getDoctorSpeciality(this.doctor.speciality).trim(), - // style: TextStyle(fontSize: 12.0, color: Colors.grey[600], letterSpacing: 1.0)), - // ), - // this.doctor.nearestFreeSlot != null - // ? Container( - // margin: EdgeInsets.only(top: 3.0, bottom: 3.0), - // child: Text(getDate(this.doctor.nearestFreeSlot), - // style: TextStyle( - // fontSize: 14.0, - // fontWeight: FontWeight.bold, - // color: Colors.green[600], - // letterSpacing: 1.0)), - // ) - // : Container(), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - mainAxisSize: MainAxisSize.max, - children: [ - RatingBar.readOnly( - initialRating: model.doctorListByTime[index].actualDoctorRate.toDouble(), - size: 20.0, - filledColor: Colors.yellow[700], - emptyColor: Colors.grey[500], - isHalfAllowed: true, - halfFilledIcon: Icons.star_half, - filledIcon: Icons.star, - emptyIcon: Icons.star, + children: model.doctorLists[index].doctorsByTimeList + .map((doctor) => Card( + margin: EdgeInsets.fromLTRB(10.0, 16.0, 10.0, 8.0), + color: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: Container( + decoration: BoxDecoration(), + padding: EdgeInsets.all(7.0), + width: MediaQuery.of(context).size.width, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded( + flex: 1, + child: ClipRRect( + borderRadius: BorderRadius.circular(100.0), + child: Image.network(doctor.doctorImageURL, + fit: BoxFit.fill, height: 60.0, width: 60.0), ), - Container( - child: Image.network(model.doctorListByTime[index].nationalityFlagURL, - width: 25.0, height: 25.0), + ), + Expanded( + flex: 4, + child: Container( + width: MediaQuery.of(context).size.width * 0.55, + margin: EdgeInsets.fromLTRB(20.0, 10.0, 10.0, 0.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (doctor.doctorTitle != null) + Text(doctor.doctorTitle + " " + doctor.name, + style: TextStyle( + fontSize: 14.0, + color: Colors.grey[700], + letterSpacing: 1.0)), + Container( + margin: EdgeInsets.only(top: 3.0), + child: Text(doctor.clinicName != null ? doctor.clinicName : "", + style: TextStyle( + fontSize: 12.0, + color: Colors.grey[600], + letterSpacing: 1.0)), + ), + Container( + margin: EdgeInsets.only(top: 3.0), + child: Text(doctor.projectName, + style: TextStyle( + fontSize: 12.0, + color: Colors.grey[600], + letterSpacing: 1.0)), + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + mainAxisSize: MainAxisSize.max, + children: [ + RatingBar.readOnly( + initialRating: doctor.actualDoctorRate.toDouble(), + size: 20.0, + filledColor: Colors.yellow[700], + emptyColor: Colors.grey[500], + isHalfAllowed: true, + halfFilledIcon: Icons.star_half, + filledIcon: Icons.star, + emptyIcon: Icons.star, + ), + Container( + child: Image.network(doctor.nationalityFlagURL, + width: 25.0, height: 25.0), + ), + ], + ), + ], + ), ), - ], - ), - ], + ), + ], + ), ), - ), - ), - ], - ), - ), + )) + .toList(), ), - ], + ), ); }), )); diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body_result_page.dart index 605e499a..24fc768f 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body_result_page.dart @@ -1,6 +1,8 @@ +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'dart:math'; @@ -11,12 +13,7 @@ class IdealBodyResult extends StatelessWidget { final double overWeightBy; final String textResult; - IdealBodyResult( - {this.idealBodyWeight, - this.minRange, - this.mixRange, - this.overWeightBy, - this.textResult}); + IdealBodyResult({this.idealBodyWeight, this.minRange, this.mixRange, this.overWeightBy, this.textResult}); @override Widget build(BuildContext context) { return AppScaffold( @@ -82,8 +79,7 @@ class IdealBodyResult extends StatelessWidget { : overWeightBy > 10 && overWeightBy < 17 ? Column( children: [ - Texts( - 'This means that the weight is a little bit more than ideal weight by'), + Texts('This means that the weight is a little bit more than ideal weight by'), Texts(overWeightBy.toStringAsFixed(1)), Texts( 'May wish to consult with the doctor for medical help. Click to view our list of Doctors'), @@ -161,6 +157,12 @@ class IdealBodyResult extends StatelessWidget { width: 350, child: Button( label: 'See List Of Doctors', + onTap: () { + Navigator.push( + context, + FadePage(page: DoctorList()), + ); + }, ), ), ], diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart index 6669bf75..6ced14b2 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart @@ -1,6 +1,8 @@ +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/doctor_list.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; @@ -9,8 +11,7 @@ class OvulationResult extends StatelessWidget { var dateTo; var conceivedDate; var deliveryDue; - OvulationResult( - {this.dateFrom, this.dateTo, this.deliveryDue, this.conceivedDate}); + OvulationResult({this.dateFrom, this.dateTo, this.deliveryDue, this.conceivedDate}); //var newFormat = DateFormat("yy-MM-dd"); @override @@ -84,6 +85,12 @@ class OvulationResult extends StatelessWidget { width: 350, child: Button( label: 'See List Of Doctors', + onTap: () { + Navigator.push( + context, + FadePage(page: DoctorList()), + ); + }, ), ), ], diff --git a/lib/pages/medical/my_trackers/Weight/WeightHomePage.dart b/lib/pages/medical/my_trackers/Weight/WeightHomePage.dart index 6f77b83c..41592110 100644 --- a/lib/pages/medical/my_trackers/Weight/WeightHomePage.dart +++ b/lib/pages/medical/my_trackers/Weight/WeightHomePage.dart @@ -41,6 +41,7 @@ class _WeightHomePageState extends State with SingleTickerProvid onModelReady: (model) => model.getWeight(), builder: (_, model, w) => AppScaffold( isShowAppBar: true, + isShowDecPage: false, appBarTitle: TranslationBase.of(context).weight, appBarIcons: [ IconButton( diff --git a/lib/pages/medical/my_trackers/Weight/WeightMonthlyPage.dart b/lib/pages/medical/my_trackers/Weight/WeightMonthlyPage.dart index 6f64bacb..0de0f451 100644 --- a/lib/pages/medical/my_trackers/Weight/WeightMonthlyPage.dart +++ b/lib/pages/medical/my_trackers/Weight/WeightMonthlyPage.dart @@ -28,46 +28,52 @@ class WeightMonthlyPage extends StatelessWidget { Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( - body: model.weighMonthTimeSeriesData.isEmpty?Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),):ListView( - children: [ - Container( - width: double.maxFinite, - color: Colors.white, - child: MonthLineChartCurved( - horizontalInterval: 1.0, - title: TranslationBase.of(context).weight, - timeSeries: model.weighMonthTimeSeriesData, - indexes: model.weighMonthTimeSeriesData.length ~/ 5.5, - )), - SizedBox( - height: 12, - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Texts(TranslationBase.of(context).details), - ), - Container( - padding: EdgeInsets.all(10), - color: Colors.transparent, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Table( - border: TableBorder.symmetric( - inside: BorderSide(width: 2.0, color: Colors.grey[300]), - ), - children: fullData(context, projectViewModel, model), + isShowDecPage: false, + body: model.weighMonthTimeSeriesData.isEmpty + ? Container( + child: Center( + child: Texts(TranslationBase.of(context).noDataAvailable), + ), + ) + : ListView( + children: [ + Container( + width: double.maxFinite, + color: Colors.white, + child: MonthLineChartCurved( + horizontalInterval: 1.0, + title: TranslationBase.of(context).weight, + timeSeries: model.weighMonthTimeSeriesData, + indexes: model.weighMonthTimeSeriesData.length ~/ 5.5, + )), + SizedBox( + height: 12, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Texts(TranslationBase.of(context).details), ), + Container( + padding: EdgeInsets.all(10), + color: Colors.transparent, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Table( + border: TableBorder.symmetric( + inside: BorderSide(width: 2.0, color: Colors.grey[300]), + ), + children: fullData(context, projectViewModel, model), + ), + ], + ), + ) ], ), - ) - ], - ), ); } - List fullData(BuildContext context, - ProjectViewModel projectViewModel, WeightPressureViewModel model) { + List fullData(BuildContext context, ProjectViewModel projectViewModel, WeightPressureViewModel model) { List tableRow = []; tableRow.add( TableRow( @@ -76,12 +82,8 @@ class WeightMonthlyPage extends StatelessWidget { decoration: BoxDecoration( color: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic - ? Radius.circular(0.0) - : Radius.circular(10.0), - topRight: projectViewModel.isArabic - ? Radius.circular(10.0) - : Radius.circular(0.0), + topLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), + topRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), ), ), child: Center( @@ -109,12 +111,8 @@ class WeightMonthlyPage extends StatelessWidget { decoration: BoxDecoration( color: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic - ? Radius.circular(10.0) - : Radius.circular(0.0), - topRight: projectViewModel.isArabic - ? Radius.circular(0.0) - : Radius.circular(10.0), + topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), + topRight: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), ), ), child: Center( diff --git a/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart b/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart index 866c2b5b..b275431c 100644 --- a/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart +++ b/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart @@ -26,47 +26,53 @@ class WeightWeeklyPage extends StatelessWidget { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( - body: model.weightWeekTimeSeriesData.isEmpty?Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),):ListView( - children: [ - Container( - margin: EdgeInsets.only(top: 12, left: 8, right: 8), - color: Colors.white, - child: LineChartCurved( - horizontalInterval: 1.0, - title: TranslationBase.of(context).weight, - timeSeries: model.weightWeekTimeSeriesData, - indexes: model.weightWeekTimeSeriesData.length ~/ 5.5, - ), - ), - SizedBox( - height: 12, - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Texts(TranslationBase.of(context).details), - ), - Container( - padding: EdgeInsets.all(10), - color: Colors.transparent, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Table( - border: TableBorder.symmetric( - inside: BorderSide(width: 2.0, color: Colors.grey[300]), + isShowDecPage: false, + body: model.weightWeekTimeSeriesData.isEmpty + ? Container( + child: Center( + child: Texts(TranslationBase.of(context).noDataAvailable), + ), + ) + : ListView( + children: [ + Container( + margin: EdgeInsets.only(top: 12, left: 8, right: 8), + color: Colors.white, + child: LineChartCurved( + horizontalInterval: 1.0, + title: TranslationBase.of(context).weight, + timeSeries: model.weightWeekTimeSeriesData, + indexes: model.weightWeekTimeSeriesData.length ~/ 5.5, ), - children: fullData(context, projectViewModel, model), ), + SizedBox( + height: 12, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Texts(TranslationBase.of(context).details), + ), + Container( + padding: EdgeInsets.all(10), + color: Colors.transparent, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Table( + border: TableBorder.symmetric( + inside: BorderSide(width: 2.0, color: Colors.grey[300]), + ), + children: fullData(context, projectViewModel, model), + ), + ], + ), + ) ], ), - ) - ], - ), ); } - List fullData(BuildContext context, - ProjectViewModel projectViewModel, WeightPressureViewModel model) { + List fullData(BuildContext context, ProjectViewModel projectViewModel, WeightPressureViewModel model) { List tableRow = []; tableRow.add( TableRow( @@ -75,12 +81,8 @@ class WeightWeeklyPage extends StatelessWidget { decoration: BoxDecoration( color: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic - ? Radius.circular(0.0) - : Radius.circular(10.0), - topRight: projectViewModel.isArabic - ? Radius.circular(10.0) - : Radius.circular(0.0), + topLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), + topRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), ), ), child: Center( @@ -120,12 +122,8 @@ class WeightWeeklyPage extends StatelessWidget { decoration: BoxDecoration( color: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic - ? Radius.circular(10.0) - : Radius.circular(0.0), - topRight: projectViewModel.isArabic - ? Radius.circular(0.0) - : Radius.circular(10.0), + topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), + topRight: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), ), ), child: Center( diff --git a/lib/pages/medical/my_trackers/Weight/WeightYeaPage.dart b/lib/pages/medical/my_trackers/Weight/WeightYeaPage.dart index 7fa03819..0187a13b 100644 --- a/lib/pages/medical/my_trackers/Weight/WeightYeaPage.dart +++ b/lib/pages/medical/my_trackers/Weight/WeightYeaPage.dart @@ -18,55 +18,61 @@ import 'package:provider/provider.dart'; class WeightYearPage extends StatelessWidget { final WeightPressureViewModel model; - - const WeightYearPage({Key key, this.model, }) - : super(key: key); + const WeightYearPage({ + Key key, + this.model, + }) : super(key: key); @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( - body: model.weightYearTimeSeriesData.isEmpty ? Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),) : ListView( - children: [ - Container( - width: double.maxFinite, - color: Colors.white, - child: LineChartCurved( - horizontalInterval: 2.0, - title: TranslationBase.of(context).weight, - timeSeries: model.weightYearTimeSeriesData, - indexes: model.weightYearTimeSeriesData.length ~/ 5.5, - ) - ), - SizedBox( - height: 12, - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Texts(TranslationBase.of(context).details), - ), - Container( - padding: EdgeInsets.all(10), - color: Colors.transparent, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Table( - border: TableBorder.symmetric( - inside: BorderSide(width: 2.0, color: Colors.grey[300]), - ), - children: fullData(context, projectViewModel, model), + isShowDecPage: false, + body: model.weightYearTimeSeriesData.isEmpty + ? Container( + child: Center( + child: Texts(TranslationBase.of(context).noDataAvailable), + ), + ) + : ListView( + children: [ + Container( + width: double.maxFinite, + color: Colors.white, + child: LineChartCurved( + horizontalInterval: 2.0, + title: TranslationBase.of(context).weight, + timeSeries: model.weightYearTimeSeriesData, + indexes: model.weightYearTimeSeriesData.length ~/ 5.5, + )), + SizedBox( + height: 12, ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Texts(TranslationBase.of(context).details), + ), + Container( + padding: EdgeInsets.all(10), + color: Colors.transparent, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Table( + border: TableBorder.symmetric( + inside: BorderSide(width: 2.0, color: Colors.grey[300]), + ), + children: fullData(context, projectViewModel, model), + ), + ], + ), + ) ], ), - ) - ], - ), ); } - List fullData(BuildContext context, - ProjectViewModel projectViewModel, WeightPressureViewModel model) { + List fullData(BuildContext context, ProjectViewModel projectViewModel, WeightPressureViewModel model) { List tableRow = []; tableRow.add( TableRow( @@ -75,12 +81,8 @@ class WeightYearPage extends StatelessWidget { decoration: BoxDecoration( color: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic - ? Radius.circular(0.0) - : Radius.circular(10.0), - topRight: projectViewModel.isArabic - ? Radius.circular(10.0) - : Radius.circular(0.0), + topLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), + topRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), ), ), child: Center( @@ -108,12 +110,8 @@ class WeightYearPage extends StatelessWidget { decoration: BoxDecoration( color: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic - ? Radius.circular(10.0) - : Radius.circular(0.0), - topRight: projectViewModel.isArabic - ? Radius.circular(0.0) - : Radius.circular(10.0), + topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), + topRight: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), ), ), child: Center( @@ -128,7 +126,7 @@ class WeightYearPage extends StatelessWidget { ), ); model.yearWeightMeasurementResult.forEach( - (diabtec) { + (diabtec) { tableRow.add( TableRow( children: [ diff --git a/lib/pages/medical/my_trackers/my_trackers.dart b/lib/pages/medical/my_trackers/my_trackers.dart index 5e5c4527..c133c67a 100644 --- a/lib/pages/medical/my_trackers/my_trackers.dart +++ b/lib/pages/medical/my_trackers/my_trackers.dart @@ -15,6 +15,7 @@ class MyTrackers extends StatelessWidget { return AppScaffold( appBarTitle: TranslationBase.of(context).myTracker, isShowAppBar: true, + isShowDecPage: false, body: SingleChildScrollView( child: Container( padding: EdgeInsets.all(12), @@ -27,22 +28,24 @@ class MyTrackers extends StatelessWidget { children: [ Expanded( child: InkWell( - onTap: ()=> Navigator.push(context, FadePage(page: BloodSugarHomePage())), + onTap: () => Navigator.push(context, FadePage(page: BloodSugarHomePage())), child: Container( margin: EdgeInsets.all(5), - width: MediaQuery.of(context).size.width*0.35, - height:MediaQuery.of(context).size.width*0.35 , + width: MediaQuery.of(context).size.width * 0.35, + height: MediaQuery.of(context).size.width * 0.35, decoration: BoxDecoration( - shape: BoxShape.rectangle, - borderRadius: BorderRadius.circular(8), - color: Colors.white - ), + shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), color: Colors.white), child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ - Image.asset('assets/tracker/blood-suger.png',width: 60.0,), - SizedBox(height: 15,), + Image.asset( + 'assets/tracker/blood-suger.png', + width: 60.0, + ), + SizedBox( + height: 15, + ), Texts(TranslationBase.of(context).bloodSugar), ], ), @@ -51,22 +54,24 @@ class MyTrackers extends StatelessWidget { ), Expanded( child: InkWell( - onTap: ()=> Navigator.push(context, FadePage(page: BloodPressureHomePage())), + onTap: () => Navigator.push(context, FadePage(page: BloodPressureHomePage())), child: Container( margin: EdgeInsets.all(5), - width: MediaQuery.of(context).size.width*0.35, - height:MediaQuery.of(context).size.width*0.35 , + width: MediaQuery.of(context).size.width * 0.35, + height: MediaQuery.of(context).size.width * 0.35, decoration: BoxDecoration( - shape: BoxShape.rectangle, - borderRadius: BorderRadius.circular(8), - color: Colors.white - ), + shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), color: Colors.white), child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ - Image.asset('assets/tracker/blood-pressure.png',width: 60.0,), - SizedBox(height: 15,), + Image.asset( + 'assets/tracker/blood-pressure.png', + width: 60.0, + ), + SizedBox( + height: 15, + ), Texts(TranslationBase.of(context).bloodPressure), ], ), @@ -80,22 +85,24 @@ class MyTrackers extends StatelessWidget { children: [ Expanded( child: InkWell( - onTap: ()=> Navigator.push(context, FadePage(page: WeightHomePage())), + onTap: () => Navigator.push(context, FadePage(page: WeightHomePage())), child: Container( margin: EdgeInsets.all(5), - width: MediaQuery.of(context).size.width*0.35, - height:MediaQuery.of(context).size.width*0.35 , + width: MediaQuery.of(context).size.width * 0.35, + height: MediaQuery.of(context).size.width * 0.35, decoration: BoxDecoration( - shape: BoxShape.rectangle, - borderRadius: BorderRadius.circular(8), - color: Colors.white - ), + shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8), color: Colors.white), child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ - Image.asset('assets/tracker/weight.png',width: 60.0,), - SizedBox(height: 15,), + Image.asset( + 'assets/tracker/weight.png', + width: 60.0, + ), + SizedBox( + height: 15, + ), Texts(TranslationBase.of(context).weight), ], ), From 38f134b6ffe8f66e84d1ab11dc75d9c8964945a8 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Sun, 11 Jul 2021 15:25:15 +0300 Subject: [PATCH 26/59] Bug PAP-884 fixed, email was not updating. --- .../medical/reports_monthly_view_model.dart | 13 ++-- .../medical/reports/monthly_reports.dart | 62 +++++++++---------- 2 files changed, 36 insertions(+), 39 deletions(-) diff --git a/lib/core/viewModels/medical/reports_monthly_view_model.dart b/lib/core/viewModels/medical/reports_monthly_view_model.dart index adb7223e..15ac9219 100644 --- a/lib/core/viewModels/medical/reports_monthly_view_model.dart +++ b/lib/core/viewModels/medical/reports_monthly_view_model.dart @@ -14,6 +14,10 @@ class ReportsMonthlyViewModel extends BaseViewModel { ReportsService _reportsService = locator(); String get userAgreementContent => _reportsService.userAgreementContent; + bool get receiveHealthSummaryReport => _reportsService?.user?.receiveHealthSummaryReport ?? false; + set receiveHealthSummaryReport(bool val) { + _reportsService?.user?.receiveHealthSummaryReport = val; + } getUserTermsAndConditions() async { setState(ViewState.Busy); @@ -26,14 +30,9 @@ class ReportsMonthlyViewModel extends BaseViewModel { } } - updatePatientHealthSummaryReport( - {String message, - bool isSummary, - bool isUpdateEmail = false, - String email}) async { + updatePatientHealthSummaryReport({String message, bool isSummary, bool isUpdateEmail = false, String email}) async { setState(ViewState.BusyLocal); - await _reportsService.updatePatientHealthSummaryReport( - isSummary: isSummary); + await _reportsService.updatePatientHealthSummaryReport(isSummary: isSummary); if (_reportsService.hasError) { error = _reportsService.error; AppToast.showErrorToast(message: error); diff --git a/lib/pages/medical/reports/monthly_reports.dart b/lib/pages/medical/reports/monthly_reports.dart index 4484bd5f..80f6ac76 100644 --- a/lib/pages/medical/reports/monthly_reports.dart +++ b/lib/pages/medical/reports/monthly_reports.dart @@ -19,15 +19,24 @@ class MonthlyReportsPage extends StatefulWidget { } class _MonthlyReportsPageState extends State { - bool isAgree = false; - bool isSummary = false; - String email = ""; + bool isAgree; + bool isSummary; + String email; final formKey = GlobalKey(); @override Widget build(BuildContext context) { - return BaseView( - builder: (_, model, w) => AppScaffold( + return BaseView(builder: (_, model, w) { + if (isSummary == null) { + isSummary = model.receiveHealthSummaryReport; + } + if (isAgree == null) { + isAgree = model.receiveHealthSummaryReport; + } + if (email == null) { + email = model?.user?.emailAddress ?? ""; + } + return AppScaffold( isShowAppBar: true, appBarTitle: TranslationBase.of(context).monthlyReports, body: SingleChildScrollView( @@ -41,15 +50,10 @@ class _MonthlyReportsPageState extends State { Container( padding: EdgeInsets.all(9), height: 55, - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all(Radius.circular(8)), - shape: BoxShape.rectangle, - border: Border.all(color: Colors.grey)), + decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(8)), shape: BoxShape.rectangle, border: Border.all(color: Colors.grey)), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Texts( TranslationBase.of(context).patientHealthSummaryReport, bold: true, @@ -62,12 +66,12 @@ class _MonthlyReportsPageState extends State { setState(() { isSummary = !isSummary; }); - if(!isSummary) { + if (!isSummary) { GifLoaderDialogUtils.showMyDialog(context); - await model.updatePatientHealthSummaryReport( - message: TranslationBase - .of(context) - .updateSuccessfully, isSummary: isSummary); + await model.updatePatientHealthSummaryReport(message: TranslationBase.of(context).updateSuccessfully, isSummary: isSummary); + model.receiveHealthSummaryReport = isSummary; + isAgree = isSummary; + model.user.emailAddress = ""; GifLoaderDialogUtils.hideDialog(context); } }, @@ -80,11 +84,11 @@ class _MonthlyReportsPageState extends State { ), Container( margin: EdgeInsets.all(8), - child: TextFields( + child: TextFields( fillColor: Colors.red, hintText: 'email@email.com', fontSize: 20, - initialValue: model.user.emailAddress, + initialValue: email, fontWeight: FontWeight.w600, onChanged: (text) { email = text; @@ -111,8 +115,7 @@ class _MonthlyReportsPageState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Expanded( - child: Texts(TranslationBase.of(context) - .toViewTheTermsAndConditions), + child: Texts(TranslationBase.of(context).toViewTheTermsAndConditions), ), InkWell( onTap: () { @@ -156,19 +159,15 @@ class _MonthlyReportsPageState extends State { child: SecondaryButton( textColor: Colors.white, label: TranslationBase.of(context).save, - disabled: (!isAgree || !isSummary ), + disabled: (!isAgree || !isSummary), onTap: () async { final form = formKey.currentState; if (form.validate()) { GifLoaderDialogUtils.showMyDialog(context); await model.updatePatientHealthSummaryReport( - message: TranslationBase - .of(context) - .updateSuccessfully, - isSummary: isSummary, - isUpdateEmail: true, - email: email.isNotEmpty ? email : model.user - .emailAddress); + message: TranslationBase.of(context).updateSuccessfully, isSummary: isSummary, isUpdateEmail: true, email: email.isNotEmpty ? email : model.user.emailAddress); + model.receiveHealthSummaryReport = isSummary; + model.user.emailAddress = email.isNotEmpty ? email : model.user.emailAddress; GifLoaderDialogUtils.hideDialog(context); } }, @@ -177,8 +176,7 @@ class _MonthlyReportsPageState extends State { Padding( padding: const EdgeInsets.all(5.0), child: Texts( - TranslationBase.of(context) - .instructionAgree, + TranslationBase.of(context).instructionAgree, fontWeight: FontWeight.normal, ), ), @@ -191,7 +189,7 @@ class _MonthlyReportsPageState extends State { ), ), ), - ), - ); + ); + }); } } From 85e803651c5ccc8594073d3b777fa9a444c50277 Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Wed, 14 Jul 2021 09:21:08 +0300 Subject: [PATCH 27/59] permission issue fixed --- .../DrawerPages/family/add-family_type.dart | 2 +- lib/pages/login/register-info.dart | 76 ++++++++++--------- lib/pages/login/register.dart | 14 +++- lib/pages/settings/general_setting.dart | 51 ++++++++++--- lib/pages/settings/profile_setting.dart | 16 ++-- .../permission/permission_service.dart | 59 ++++++++------ lib/uitl/translations_delegate_base.dart | 3 + 7 files changed, 139 insertions(+), 82 deletions(-) diff --git a/lib/pages/DrawerPages/family/add-family_type.dart b/lib/pages/DrawerPages/family/add-family_type.dart index 96e055b3..e4a82cb4 100644 --- a/lib/pages/DrawerPages/family/add-family_type.dart +++ b/lib/pages/DrawerPages/family/add-family_type.dart @@ -75,7 +75,7 @@ class AddFamilyMemberType extends StatelessWidget { ), AppText( TranslationBase.of(context) - .nationalID, + .idNo, fontSize: SizeConfig .textMultiplier * 2, diff --git a/lib/pages/login/register-info.dart b/lib/pages/login/register-info.dart index 467068cc..548405f0 100644 --- a/lib/pages/login/register-info.dart +++ b/lib/pages/login/register-info.dart @@ -278,44 +278,46 @@ class _RegisterInfo extends State { registerNow() { dynamic request = getTempUserRequest(); GifLoaderDialogUtils.showMyDialog(context); - this.authService.registerUser(request).then((result) => { - GifLoaderDialogUtils.hideDialog(context), - // userData = result.list; - //AuthenticatedUser.fromJson(result['List'][0]), - if(result is String){ - new ConfirmDialog( - context: context, - confirmMessage: result, - okText: TranslationBase.of(context).ok, - cancelText: TranslationBase.of(context).cancel_nocaps, - okFunction: () => { - ConfirmDialog.closeAlertDialog(context) - }, - cancelFunction: () => {ConfirmDialog.closeAlertDialog(context)}) - .showAlertDialog(context) - - }else - { - result.list.isFamily = false, - sharedPref.setObject(USER_PROFILE, result.list), - this.sharedPref.setObject(MAIN_USER, result.list), - sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID), - sharedPref.setString(TOKEN, result.authenticationTokenID), - Navigator.of(context).pushNamed(HOME) - } - }).catchError((err) { - GifLoaderDialogUtils.hideDialog(context); + this + .authService + .registerUser(request) + .then((result) => { + GifLoaderDialogUtils.hideDialog(context), + // userData = result.list; + //AuthenticatedUser.fromJson(result['List'][0]), + if (result is String) + { + new ConfirmDialog( + context: context, + confirmMessage: result, + okText: TranslationBase.of(context).ok, + cancelText: TranslationBase.of(context).cancel_nocaps, + okFunction: () => + {ConfirmDialog.closeAlertDialog(context)}, + cancelFunction: () => { + ConfirmDialog.closeAlertDialog(context) + }).showAlertDialog(context) + } + else + { + result.list.isFamily = false, + sharedPref.setObject(USER_PROFILE, result.list), + this.sharedPref.setObject(MAIN_USER, result.list), + sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID), + sharedPref.setString(TOKEN, result.authenticationTokenID), + Navigator.of(context).pushNamed(HOME) + } + }) + .catchError((err) { + GifLoaderDialogUtils.hideDialog(context); ConfirmDialog dialog = new ConfirmDialog( context: context, confirmMessage: err, okText: TranslationBase.of(context).confirm, cancelText: TranslationBase.of(context).cancel_nocaps, - okFunction: () => { - ConfirmDialog.closeAlertDialog(context) - }, + okFunction: () => {ConfirmDialog.closeAlertDialog(context)}, cancelFunction: () => {ConfirmDialog.closeAlertDialog(context)}); dialog.showAlertDialog(context); - }); } @@ -347,12 +349,12 @@ class _RegisterInfo extends State { "PatientIdentificationNo": registerInfo.idNumber, "MobileNumber": registerd_data.patientMobileNumber, "PatientOutSA": registerd_data.zipCode == '966' ? 0 : 1, - "FirstNameN":registerInfo.firstNameAr =='-' ?"": registerInfo.firstNameAr, - "FirstName": registerInfo.firstNameEn =='-' ?"":registerInfo.firstNameEn, - "MiddleNameN":registerInfo.secondNameAr =='-' ? "" : registerInfo.secondNameAr, - "MiddleName":registerInfo.secondNameEn == '-' ? "": registerInfo.secondNameEn, - "LastNameN": registerInfo.lastNameAr =='-'? "" : registerInfo.lastNameAr, - "LastName": registerInfo.lastNameEn =='-' ? "": registerInfo.lastNameEn, + "FirstNameN": registerInfo.firstNameAr, + "FirstName": registerInfo.firstNameEn, + "MiddleNameN": registerInfo.secondNameAr, + "MiddleName": registerInfo.secondNameEn, + "LastNameN": registerInfo.lastNameAr, + "LastName": registerInfo.lastNameEn, "StrDateofBirth": registerInfo.dateOfBirth, "DateofBirth": DateUtil.convertISODateToJsonDate( registerInfo.dateOfBirth.replaceAll('/', '-')), diff --git a/lib/pages/login/register.dart b/lib/pages/login/register.dart index c6a3b872..1591d1d5 100644 --- a/lib/pages/login/register.dart +++ b/lib/pages/login/register.dart @@ -21,6 +21,7 @@ import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; class Register extends StatefulWidget { @override @@ -294,12 +295,12 @@ class _Register extends State { // DOB: this.dateOption === '1' ? this.dateOfBirth : moment(this.dateOfBirth).format('DD/MM/YYYY'), // IsHijri: Number(this.dateOption) // } + + final DateFormat dateFormat = DateFormat('dd/MM/yyyy'); GifLoaderDialogUtils.showMyDialog(context); var request = CheckUserStatusRequest(); request.patientIdentificationID = nationalIDorFile.text; - request.dOB = isHijri == 1 - ? dob - : "${selectedDate.toLocal()}".split(' ')[0].replaceAll('-', '/'); + request.dOB = isHijri == 1 ? dob : dateFormat.format(selectedDate); request.isHijri = isHijri; request.patientOutSA = countryCode == '966' ? 0 : 1; this.authService.checkUserStatus(request).then((result) => { @@ -311,7 +312,12 @@ class _Register extends State { Navigator.of(context).push(FadePage(page: ConfirmLogin())), } else - {AppToast.showErrorToast(message: result)} + { + AppToast.showErrorToast( + message: result + ? result + : TranslationBase.of(context).somethingWentWrong) + } }); } diff --git a/lib/pages/settings/general_setting.dart b/lib/pages/settings/general_setting.dart index 0a6b0e73..9a062eac 100644 --- a/lib/pages/settings/general_setting.dart +++ b/lib/pages/settings/general_setting.dart @@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:geolocator/geolocator.dart'; import 'package:provider/provider.dart'; import 'package:screen/screen.dart'; @@ -27,10 +28,14 @@ class _GeneralSettings extends State bool location = false; var sharedPref = new AppSharedPreferences(); var permission = new PermissionService(); + LocationPermission locationPermission; var mediaQueryData; @override void initState() { - getValues(); + setState(() { + getValues(); + }); + super.initState(); } @@ -215,9 +220,12 @@ class _GeneralSettings extends State Switch( value: location, onChanged: (value) { - setState(() { - location = value; - }); + if (value == true) { + Navigator.pop(context); + this.setLocationPermission(); + } else { + Geolocator.openLocationSettings(); + } }, activeTrackColor: Colors.lightGreenAccent, activeColor: Colors.green, @@ -227,6 +235,23 @@ class _GeneralSettings extends State ])); } + setLocationPermission() async { + locationPermission = await Geolocator.checkPermission(); + if (locationPermission == LocationPermission.denied) { + locationPermission = await Geolocator.requestPermission(); + if (locationPermission != LocationPermission.denied) { + setState(() { + location = true; + }); + } else { + this.location = false; + } + } else { + Geolocator.openLocationSettings(); + this.location = true; + } + } + setTheme(value) async { switch (value) { case 0: @@ -277,20 +302,26 @@ class _GeneralSettings extends State vibration = permission.isVibrationEnabled() == null ? false : permission.isVibrationEnabled(); - accsibility = mediaQueryData.accessibleNavigation; - setTheme(blindValue); + // accsibility = mediaQueryData.accessibleNavigation; + //setTheme(blindValue); } + + this.location = await this.permission.isLocationEnabled(); } getTheme(value) async { if (value == 1) { return invertThemes( - fontName: Provider.of(context, listen: false).isArabic ? 'Cairo' : 'WorkSans' - ); + fontName: + Provider.of(context, listen: false).isArabic + ? 'Cairo' + : 'WorkSans'); } else if (value == 3) { return bwThemes( - fontName: Provider.of(context, listen: false).isArabic ? 'Cairo' : 'WorkSans' - ); + fontName: + Provider.of(context, listen: false).isArabic + ? 'Cairo' + : 'WorkSans'); } else { return defaultTheme( fontName: diff --git a/lib/pages/settings/profile_setting.dart b/lib/pages/settings/profile_setting.dart index 833cdf2b..d877514c 100644 --- a/lib/pages/settings/profile_setting.dart +++ b/lib/pages/settings/profile_setting.dart @@ -44,7 +44,7 @@ class _ProfileSettings extends State child: model.user != null ? ListView(scrollDirection: Axis.vertical, children: [ Container( - color: Theme.of(context).primaryColor, + color: Theme.of(context).textTheme.headline2.color, padding: EdgeInsets.all(15), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -74,7 +74,7 @@ class _ProfileSettings extends State padding: EdgeInsets.all(10), ), Container( - color: Theme.of(context).primaryColor, + color: Theme.of(context).textTheme.headline2.color, padding: EdgeInsets.only( top: 0, left: 10, right: 10, bottom: 0), child: Row( @@ -93,7 +93,7 @@ class _ProfileSettings extends State ], )), Container( - color: Theme.of(context).primaryColor, + color: Theme.of(context).textTheme.headline2.color, padding: EdgeInsets.only( top: 0, left: 10, right: 10, bottom: 0), child: Row( @@ -116,7 +116,7 @@ class _ProfileSettings extends State padding: EdgeInsets.all(10), ), Container( - color: Theme.of(context).primaryColor, + color: Theme.of(context).textTheme.headline2.color, padding: EdgeInsets.only( top: 0, left: 10, right: 10, bottom: 0), child: Row( @@ -136,7 +136,7 @@ class _ProfileSettings extends State ], )), Container( - color: Theme.of(context).primaryColor, + color: Theme.of(context).textTheme.headline2.color, padding: EdgeInsets.only( top: 0, left: 10, right: 10, bottom: 0), child: Row( @@ -160,7 +160,7 @@ class _ProfileSettings extends State padding: EdgeInsets.all(10), ), Container( - color: Theme.of(context).primaryColor, + color: Theme.of(context).textTheme.headline2.color, padding: EdgeInsets.only( top: 0, left: 10, right: 10, bottom: 0), child: Column( @@ -175,7 +175,7 @@ class _ProfileSettings extends State ], )), Container( - color: Theme.of(context).primaryColor, + color: Theme.of(context).textTheme.headline2.color, padding: EdgeInsets.only( top: 0, left: 10, right: 10, bottom: 0), child: Column( @@ -190,7 +190,7 @@ class _ProfileSettings extends State ], )), Container( - color: Theme.of(context).primaryColor, + color: Theme.of(context).textTheme.headline2.color, padding: EdgeInsets.only( top: 0, left: 10, right: 10, bottom: 0), child: Column( diff --git a/lib/services/permission/permission_service.dart b/lib/services/permission/permission_service.dart index ea408ce2..ab82172e 100644 --- a/lib/services/permission/permission_service.dart +++ b/lib/services/permission/permission_service.dart @@ -10,9 +10,11 @@ import 'package:flutter/services.dart'; import 'package:localstorage/localstorage.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:vibration/vibration.dart'; +import 'package:geolocator/geolocator.dart' as geo; + class PermissionService extends BaseService { final LocalStorage storage = new LocalStorage("permission"); - + geo.LocationPermission locationPermission; AppGlobal appGlobal = new AppGlobal(); setVibrationPermission(flag) async { @@ -20,23 +22,24 @@ class PermissionService extends BaseService { } isVibrationEnabled() { - return (storage.getItem('isVibration') ==null) || (storage.getItem('isVibration')) ==false ? false :true; + return (storage.getItem('isVibration') == null) || + (storage.getItem('isVibration')) == false + ? false + : true; } - vibrate(callback, context) async{ - if (callback == null) - return null; - if(isVibrationEnabled() ==true){ - if (await Vibration.hasVibrator()) { - Vibration.vibrate(duration: 100); - callback(); + vibrate(callback, context) async { + if (callback == null) return null; + if (isVibrationEnabled() == true) { + if (await Vibration.hasVibrator()) { + Vibration.vibrate(duration: 100); + callback(); } - }else{ + } else { callback(); } } - setTheme(flag) async { storage.setItem('isTheme', flag); } @@ -44,23 +47,35 @@ class PermissionService extends BaseService { isThemeEnabled() { return storage.getItem('isTheme'); } - cameraPermission() async{ - Map statuses = await [ - Permission.camera, - ].request(); - } - isCameraEnabled() async{ + + cameraPermission() async { + Map statuses = await [ + Permission.camera, + ].request(); + } + + isCameraEnabled() async { print(await Permission.camera.status); - return await Permission.camera.status == PermissionStatus.granted ? true : false; + return await Permission.camera.status == PermissionStatus.granted + ? true + : false; } - setCameraLocationPermission(context) async{ + + setCameraLocationPermission(context) async { Navigator.pop(context); openAppSettings(); } - isLocationEnabled() async{ - return await Permission.location.status == PermissionStatus.granted ? true : false; + + isLocationEnabled() async { + var permission = await geo.Geolocator.checkPermission(); + if (permission == geo.LocationPermission.denied) { + return false; + } else { + return true; + } } - openSettings() async{ + + openSettings() async { openAppSettings(); } } diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 0995a5a1..c86012f2 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -1575,6 +1575,9 @@ class TranslationBase { String get preferredunit => localizedValues["preferredunit"][locale.languageCode]; String get trySaying => localizedValues["try-saying"][locale.languageCode]; + String get somethingWentWrong => + localizedValues["somethingWentWrong"][locale.languageCode]; + String get enterIdentificationNumber => localizedValues["enterIdentificationNumber"][locale.languageCode]; String get accountActivationDesc => From d5d48703f9dc2e4e0f3a16186a2c0110f2b6b068 Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Wed, 14 Jul 2021 10:32:07 +0300 Subject: [PATCH 28/59] camera permission fixed --- lib/pages/settings/general_setting.dart | 14 ++++++++------ lib/services/permission/permission_service.dart | 5 +---- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/lib/pages/settings/general_setting.dart b/lib/pages/settings/general_setting.dart index 9a062eac..20c42aa6 100644 --- a/lib/pages/settings/general_setting.dart +++ b/lib/pages/settings/general_setting.dart @@ -32,10 +32,7 @@ class _GeneralSettings extends State var mediaQueryData; @override void initState() { - setState(() { - getValues(); - }); - + this.getValues(); super.initState(); } @@ -204,6 +201,7 @@ class _GeneralSettings extends State setState(() { camera = value; }); + this.permission.openSettings(); }, activeTrackColor: Colors.lightGreenAccent, activeColor: Colors.green, @@ -305,8 +303,12 @@ class _GeneralSettings extends State // accsibility = mediaQueryData.accessibleNavigation; //setTheme(blindValue); } - - this.location = await this.permission.isLocationEnabled(); + var camera = await this.permission.isCameraEnabled(); + var location = await this.permission.isLocationEnabled(); + setState(() { + this.camera = camera; + this.location = location; + }); } getTheme(value) async { diff --git a/lib/services/permission/permission_service.dart b/lib/services/permission/permission_service.dart index ab82172e..3b31e27e 100644 --- a/lib/services/permission/permission_service.dart +++ b/lib/services/permission/permission_service.dart @@ -55,10 +55,7 @@ class PermissionService extends BaseService { } isCameraEnabled() async { - print(await Permission.camera.status); - return await Permission.camera.status == PermissionStatus.granted - ? true - : false; + return await Permission.camera.isGranted; } setCameraLocationPermission(context) async { From 33465b04e56c58249aed006cee545d1432b826cd Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Wed, 14 Jul 2021 11:34:38 +0300 Subject: [PATCH 29/59] permission --- lib/pages/settings/general_setting.dart | 1 - lib/services/permission/permission_service.dart | 5 +++++ pubspec.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/pages/settings/general_setting.dart b/lib/pages/settings/general_setting.dart index 20c42aa6..eff9537a 100644 --- a/lib/pages/settings/general_setting.dart +++ b/lib/pages/settings/general_setting.dart @@ -82,7 +82,6 @@ class _GeneralSettings extends State setState(() { accsibility = value; }); - //setAccisibility(value); }, activeTrackColor: Colors.lightGreenAccent, activeColor: Colors.green, diff --git a/lib/services/permission/permission_service.dart b/lib/services/permission/permission_service.dart index 3b31e27e..237b2fa8 100644 --- a/lib/services/permission/permission_service.dart +++ b/lib/services/permission/permission_service.dart @@ -11,6 +11,7 @@ import 'package:localstorage/localstorage.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:vibration/vibration.dart'; import 'package:geolocator/geolocator.dart' as geo; +import 'package:open_settings/open_settings.dart'; class PermissionService extends BaseService { final LocalStorage storage = new LocalStorage("permission"); @@ -75,4 +76,8 @@ class PermissionService extends BaseService { openSettings() async { openAppSettings(); } + + openAccessbility() { + OpenSettings.openAppSetting(); + } } diff --git a/pubspec.yaml b/pubspec.yaml index 34ac3656..7451cb6a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -176,7 +176,7 @@ dependencies: path: speech_to_text badges: ^1.1.4 - + open_settings: ^2.0.1 # Dep by Zohaib shimmer: ^1.1.2 carousel_slider: ^2.3.1 From bcb4f487854a894a41a6578a08e0e8f306120033 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 14 Jul 2021 16:49:25 +0300 Subject: [PATCH 30/59] build fix --- GoogleService-Info.plist | 36 --- android/app/build.gradle | 3 +- android/app/google-services.json | 30 ++- .../gradle/wrapper/gradle-wrapper.properties | 3 +- android/app/src/main/AndroidManifest.xml | 2 +- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 2350 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 1742 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 3028 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 4339 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 5703 bytes android/build.gradle | 7 +- android/google-services.json | 30 ++- .../gradle/wrapper/gradle-wrapper.properties | 4 +- ...e-services.json => google-services_DQ.json | 0 google-services_HMG.json | 42 +++ .../AppIcon.appiconset/Contents.json | 244 +++++++++--------- .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 564 -> 815 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 1283 -> 1980 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 1588 -> 3664 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 1025 -> 1297 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 1716 -> 3517 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 1920 -> 5549 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 1283 -> 1980 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 1895 -> 5858 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 2665 -> 11154 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 2665 -> 11154 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 3831 -> 20412 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 1888 -> 5152 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 3294 -> 16469 bytes .../Icon-App-83.5x83.5@2x.png | Bin 3612 -> 16408 bytes ios/Runner/GoogleService-Info.plist | 20 +- ios/Runner/Info.plist | 2 +- lib/config/config.dart | 12 +- .../permission/permission_service.dart | 4 +- pubspec.yaml | 4 +- 35 files changed, 232 insertions(+), 211 deletions(-) delete mode 100644 GoogleService-Info.plist mode change 100644 => 100755 android/app/google-services.json mode change 100644 => 100755 android/google-services.json rename google-services.json => google-services_DQ.json (100%) create mode 100755 google-services_HMG.json diff --git a/GoogleService-Info.plist b/GoogleService-Info.plist deleted file mode 100644 index 0c093a2a..00000000 --- a/GoogleService-Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CLIENT_ID - 864393916058-ekeb4s8tgfo58dutv0l54399t7ivr06r.apps.googleusercontent.com - REVERSED_CLIENT_ID - com.googleusercontent.apps.864393916058-ekeb4s8tgfo58dutv0l54399t7ivr06r - API_KEY - AIzaSyA_6ayGCk4fly7o7eTVBrj9kuHBYHMAOfs - GCM_SENDER_ID - 864393916058 - PLIST_VERSION - 1 - BUNDLE_ID - com.cloud.diplomaticquarterapp - PROJECT_ID - diplomaticquarter-d2385 - STORAGE_BUCKET - diplomaticquarter-d2385.appspot.com - IS_ADS_ENABLED - - IS_ANALYTICS_ENABLED - - IS_APPINVITE_ENABLED - - IS_GCM_ENABLED - - IS_SIGNIN_ENABLED - - GOOGLE_APP_ID - 1:864393916058:ios:13f787bbfe6051f8b97923 - DATABASE_URL - https://diplomaticquarter-d2385.firebaseio.com - - \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index 11e99a2a..d88df7fe 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -39,7 +39,8 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.cloud.diplomaticquarterapp" +// applicationId "com.cloud.diplomaticquarterapp" + applicationId "com.ejada.hmg" minSdkVersion 21 targetSdkVersion 30 versionCode flutterVersionCode.toInteger() diff --git a/android/app/google-services.json b/android/app/google-services.json old mode 100644 new mode 100755 index a4655794..dd4038cf --- a/android/app/google-services.json +++ b/android/app/google-services.json @@ -1,37 +1,39 @@ { "project_info": { - "project_number": "864393916058", - "firebase_url": "https://diplomaticquarter-d2385.firebaseio.com", - "project_id": "diplomaticquarter-d2385", - "storage_bucket": "diplomaticquarter-d2385.appspot.com" + "project_number": "815750722565", + "firebase_url": "https://api-project-815750722565.firebaseio.com", + "project_id": "api-project-815750722565", + "storage_bucket": "api-project-815750722565.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:864393916058:android:5b5a65cd6d8c18b4b97923", + "mobilesdk_app_id": "1:815750722565:android:62281cd3e5df4063", "android_client_info": { - "package_name": "com.cloud.diplomaticquarterapp" + "package_name": "com.ejada.hmg" } }, "oauth_client": [ { - "client_id": "864393916058-tphjrn8j39ntevt32ekcvmll8aue7qql.apps.googleusercontent.com", + "client_id": "815750722565-3a0gc7neins0eoahdrimrfksk0sqice8.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBdV3mos1BPhUzNKCj2KANJtiO3o2zh9IM" + "current_key": "AIzaSyDUfg6AKM1-00WyzpvLImUBC46wFrq9-qw" } ], "services": { + "analytics_service": { + "status": 1 + }, "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "864393916058-tphjrn8j39ntevt32ekcvmll8aue7qql.apps.googleusercontent.com", - "client_type": 3 - } - ] + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 2 } } } diff --git a/android/app/gradle/wrapper/gradle-wrapper.properties b/android/app/gradle/wrapper/gradle-wrapper.properties index 8fc3bbec..a2c20300 100644 --- a/android/app/gradle/wrapper/gradle-wrapper.properties +++ b/android/app/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip +#distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 1a3d4cfe..1238814b 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -34,7 +34,7 @@ android:name="io.flutter.app.FlutterApplication" android:icon="@mipmap/ic_launcher" android:usesCleartextTraffic="true" - android:label="diplomaticquarterapp"> + android:label="Dr. Alhabib"> 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 UoY!dqQvd(}07*qoM6N<$f~7q{L;wH) literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..410b1b1e59ec6f502163a727e67ceea9a9b48d5a 100644 GIT binary patch delta 1737 zcmV;)1~&P+1I`VQ8Gi-<00374`G)`i010qNS#tmY3labT3lag+-G2N400w|bL_t(& z-ql)bY!p=#-o%6-z9I#o&jWOyE z(|`H{T%uHra|)EjeN$-4M^YC{M7Ti?ze zlIq*4MR=R);)aAkvM8h0*h%*WEX|YfIBG~LqBN>y2hbW^JHV+;!}}`9jI#E}@Q)Lu zdAjM{vMK>!{(pALrOVu;GPnb_&5KD;HNrPA#e!73(7tENh?YViVjgobT*w-3g8iv>0#URaC0Li8SWG_?uGCO!s{`TrU7Ev*G=bXKeV zOichUTsLt?14z?bVC?Ww7}>QK61UfLU`|;DfWXC+^?%zy+4LMJ8+$={x&&?90m|l` zkXrdLE;_FWgeCml^FeOywt1G|o87w~3cn2kU6~y(LE_FvCjg850nAzi$>t@XOG(DS zFboKD8TmY9dUi2Q(qe2EP2p!Q0J(EDsHaXx;>iK*jtZa^lJl0@0Cb%#7({H2s+jrl#eaD)ZJq=eefJ~R+)_LZO=Aif2Y_XuC&B^X3+imHcJ2Zs7j|7?tj~rnuIeUEBTto9+W#*fgHb& zQ~OFt&R@o&qmj$GK{(DqX6MVGJoPM3^fqiq?H?D~*NXs;zViVyJ4&17j#Zqx?&mv+ ziY%3)$3hhpn21q6ZV}!~Oql_>PY+tTjei$Jse|rJJ=8x=G9f8bWxQ!Elc)wLQ)9$J zm2||!Nmy*qp~}9x-(}NI5YBsaR-6adOxEbi9sGiu2%Q)2I%R|}3m}l@@a%Hrl{b8o zy`W6fWp2Vn<_;XPY`hX##swg|_f5;LeE|fxU8gI}eJ*yOv3=qJ1e#EjFrnAq3V$>q zKl^uqGXWer!pcZyLTs(Ld#u!itV4`JjcQ%;!;I)~VUS8pnF+bi4*48nG3LgYYowY& zPbgY+Pq|KGqT#ee6;bffQo%v>gSp({ad6Yd(TLTOraGyrU3Bag)C zM>m6Z@iNn(E~hvpiDchEW{&AK>mhOLY_8Fn3z-naS37$?IFJ!vOkMP$1P`1T(JAn; zKvu)gNa#RjYCr$eFQv0ZpD0X#SuVsB(P6n=mdqXdHhL;CmWR}ebu3OWUVotq8cODx zyO=h@By+APeC8Y^7u>^>xq44Bclc<;WUerAHF4;48qLHP0PVn+$D-8(VqT`N{{|K` z48U@K0F@RreS0bZ(6Yq!TIEIqa1}I>cfdRYp7eL}05D%IRs!Jfvn<`7SO9yjF94@2 zR8NNk5b4EMbT1?T3`-GSEq`hPz?onG)~iJ|oB$H#-%fiMqcnn|xbMr|4+kQc zkTC%}UB-sBVQd&BdODkfWaS(wmZmVaWPRa>LGl<;C4r9<2+zCECw z(5n=L;cTtqSkM|e$wFfGncqtc(6i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@UyR~ox9lR?jCn3T_0!|T0bQzs0tKVbNodY`}Q1*4~9JpZ!O!h&`^zS`ZO5=`<@*Ll5<6Egv0j|A6uf)ba(ce6M;0=@@+j zGx;eY7;Z!Y*5(u^k>@SnHxhE_m>B`xNWgRGsSOU7E6RHk#9^h;KObQBNr;zvZw{Ma zrljn(1p$(3@_X^cK#p<(YD$0w5vE~kfRB2rR6aA`!t^-=+r1#j38;EJJ4}__+Ksdh*a<3kQ;l00r$cLseQaT;oC*a!V;TN@Z zDrc{N-P@jHt1N5t+}g>+?j>9>2O=MCgjje9WPkqx;E~z68zScfy(PftWFjAFg2>s^ z=}T*lvxD@2!nE1S1G^wW{~IKcnTFcPH64UWEf8&A1gVWZAfD(0?a1uIM654%WG!anq?yWtXs3>ma zSHFSCN1N@LAv8Uc+aPhp=S!6Ci76V31n7!W3CJBh48oLldoMYRq{ze>FnIF@Qx64B zfICNrNB+p`H1@V7BND)ROKL-pnEc3E%{90yqIG z=6n!Oobhtvr8$5H$8sp&{e>g&1NTFYk4lBp(m;F>Rka9*qJteyL^6qSI1 z>sIRNK0QHg2Zpqsm14AqLvu$J5?H2Um6TyE5L=>_jHeu~)%O@>vilqeHD!vaPY1=h z)tewK?Kk|hUslz!tw=DnFh)2Mj|#5%peS3zY{>oXHPd%hYRSbJIHyPQhMSdoAs01F zt}Eln8MB8?KeUr77sPkpE5(1`HG}=0R_!2*Qb~fl5?NS*Mu~Z?Di6DQG1%Y$vr>BR zw8#hR$~TPUBq2%_AL9GH49CqlegeeaKIP1MCHleSjcZiX)8StaFp_|+lE^>>pm{KW z{+~Hdt$G-d_~g})`|E2ZJ)xqbQx$}TQTTmG1Ugzes}Ls6pvtxQ;$=j>NwH<_Z>n%m zP1VqryCD|3l*(?9OgbCUz7V1pUQEMqJPXsb?syKYRkDSlkx5#U?Iw+Z_=3z*NdTll+E8 zV*)lP6?)yNOZ#6H0j|H4wIpNF={R{aT3dqCpKFOJ6^ zfCL;EB?MeM&Imw1(7;U43xDE0pne3*hU|-f9vuXH_PTLM0DFou}uEm~kqoZOmLiL9?N|?z0X>6e(YiSSAJvh$kriBSm8%XNJr67^{#){@7cl zgp=)OsWJ>veK1aodQNGl8Hr}Jn}NT>hMt%=jbC;pDb98a9%AR=;gWQtWkM#eCB5%erT}4_UJdFIiqer3=wrP?5@N2x-6+4* zFEGNRL^^?e7W+<85~hGY$R9lhgR5_KvPehmmMXy5IL79krz0gt5lcEV;;>iQny804 z;d7f|#9;H=Y{8=l4b+_WB z3cMxYh;stgZt|x#RGTNf`=|a?#?_-b+8qJ6d*46|JpkW7I01h508YRtC{O1Ej5h+% z3AdvYKFJBF8v(8Js7BI10uFNm>PrCc0rl?zQ#b+jBjD9Tv_$ZzCScE)Cg9-cC*biX zIRSMg;4xp<4dn!s5U^`Z6X3=N^l$>I4s>br!(MvDe%+213%X^anSe2~Y^4tb6y|Ly z1Z19gQeQdOGTG6rB#aVQt*})cF(wG`Z0Tb4;gZ+iWEBE_w8!7o)3w4X zFAsbJ#=0CW4B>PS0gT)Z|70)tab)&9O%;FMua=_L1tq__8U}Cr79>}$h2+<}O0lvF z23M^kXK2DVZ=+@92fGYd-wml-w?Jy+7TTEtr;H}QvRbj{E|ss(V?Mu~rXXoDm6h`w z>r3SJRg=1)Ni8(mz)FBq0TE@ z7t~P^`UFw^Lpd7cL^x>eMk|6k%%R!Ql^+bBqw4;QfawCSgW;ZNFqA?kfu4GRE7Ua+ zs5{i5;&934Zxi$eUr@fOC#ctr?ERpdou6muHL%KifX#8fdfkUZO@^(y!!;-$b^m{j W9_r$-EVF+A0000y!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..0b9d9359e3dbcedc1337fce588f4c35b2ea84b33 100644 GIT binary patch literal 4339 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 KG-}lBqyGn)&?Wo; literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372eebdb28e45604e46eeda8dd24651419bc0..aaa9808d6995beb1a391a35dd8ba72fc5a922ef9 100644 GIT binary patch literal 5703 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 UZ+=VB!XXY&SJqOhQm_vFKNIGqH~;_u literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` diff --git a/android/build.gradle b/android/build.gradle index 32bda0b1..ffbdc324 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -9,16 +9,17 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:3.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath 'com.google.gms:google-services:4.3.4' + classpath 'com.google.gms:google-services:4.3.8' } } allprojects { repositories { google() - jcenter() +// jcenter() + mavenCentral() } } diff --git a/android/google-services.json b/android/google-services.json old mode 100644 new mode 100755 index a4655794..dd4038cf --- a/android/google-services.json +++ b/android/google-services.json @@ -1,37 +1,39 @@ { "project_info": { - "project_number": "864393916058", - "firebase_url": "https://diplomaticquarter-d2385.firebaseio.com", - "project_id": "diplomaticquarter-d2385", - "storage_bucket": "diplomaticquarter-d2385.appspot.com" + "project_number": "815750722565", + "firebase_url": "https://api-project-815750722565.firebaseio.com", + "project_id": "api-project-815750722565", + "storage_bucket": "api-project-815750722565.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:864393916058:android:5b5a65cd6d8c18b4b97923", + "mobilesdk_app_id": "1:815750722565:android:62281cd3e5df4063", "android_client_info": { - "package_name": "com.cloud.diplomaticquarterapp" + "package_name": "com.ejada.hmg" } }, "oauth_client": [ { - "client_id": "864393916058-tphjrn8j39ntevt32ekcvmll8aue7qql.apps.googleusercontent.com", + "client_id": "815750722565-3a0gc7neins0eoahdrimrfksk0sqice8.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBdV3mos1BPhUzNKCj2KANJtiO3o2zh9IM" + "current_key": "AIzaSyDUfg6AKM1-00WyzpvLImUBC46wFrq9-qw" } ], "services": { + "analytics_service": { + "status": 1 + }, "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "864393916058-tphjrn8j39ntevt32ekcvmll8aue7qql.apps.googleusercontent.com", - "client_type": 3 - } - ] + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 2 } } } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 1f9de82f..6fdb0e44 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Sep 03 16:26:30 EEST 2020 +#Wed Jul 14 15:55:18 AST 2021 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip diff --git a/google-services.json b/google-services_DQ.json similarity index 100% rename from google-services.json rename to google-services_DQ.json diff --git a/google-services_HMG.json b/google-services_HMG.json new file mode 100755 index 00000000..dd4038cf --- /dev/null +++ b/google-services_HMG.json @@ -0,0 +1,42 @@ +{ + "project_info": { + "project_number": "815750722565", + "firebase_url": "https://api-project-815750722565.firebaseio.com", + "project_id": "api-project-815750722565", + "storage_bucket": "api-project-815750722565.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:815750722565:android:62281cd3e5df4063", + "android_client_info": { + "package_name": "com.ejada.hmg" + } + }, + "oauth_client": [ + { + "client_id": "815750722565-3a0gc7neins0eoahdrimrfksk0sqice8.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDUfg6AKM1-00WyzpvLImUBC46wFrq9-qw" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 2 + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json index d36b1fab..e83c3bf5 100644 --- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,122 +1,128 @@ { - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" + "images":[ + { + "idiom":"iphone", + "size":"20x20", + "scale":"2x", + "filename":"Icon-App-20x20@2x.png" + }, + { + "idiom":"iphone", + "size":"20x20", + "scale":"3x", + "filename":"Icon-App-20x20@3x.png" + }, + { + "idiom":"iphone", + "size":"29x29", + "scale":"1x", + "filename":"Icon-App-29x29@1x.png" + }, + { + "idiom":"iphone", + "size":"29x29", + "scale":"2x", + "filename":"Icon-App-29x29@2x.png" + }, + { + "idiom":"iphone", + "size":"29x29", + "scale":"3x", + "filename":"Icon-App-29x29@3x.png" + }, + { + "idiom":"iphone", + "size":"40x40", + "scale":"2x", + "filename":"Icon-App-40x40@2x.png" + }, + { + "idiom":"iphone", + "size":"40x40", + "scale":"3x", + "filename":"Icon-App-40x40@3x.png" + }, + { + "idiom":"iphone", + "size":"60x60", + "scale":"2x", + "filename":"Icon-App-60x60@2x.png" + }, + { + "idiom":"iphone", + "size":"60x60", + "scale":"3x", + "filename":"Icon-App-60x60@3x.png" + }, + { + "idiom":"iphone", + "size":"76x76", + "scale":"2x", + "filename":"Icon-App-76x76@2x.png" + }, + { + "idiom":"ipad", + "size":"20x20", + "scale":"1x", + "filename":"Icon-App-20x20@1x.png" + }, + { + "idiom":"ipad", + "size":"20x20", + "scale":"2x", + "filename":"Icon-App-20x20@2x.png" + }, + { + "idiom":"ipad", + "size":"29x29", + "scale":"1x", + "filename":"Icon-App-29x29@1x.png" + }, + { + "idiom":"ipad", + "size":"29x29", + "scale":"2x", + "filename":"Icon-App-29x29@2x.png" + }, + { + "idiom":"ipad", + "size":"40x40", + "scale":"1x", + "filename":"Icon-App-40x40@1x.png" + }, + { + "idiom":"ipad", + "size":"40x40", + "scale":"2x", + "filename":"Icon-App-40x40@2x.png" + }, + { + "idiom":"ipad", + "size":"76x76", + "scale":"1x", + "filename":"Icon-App-76x76@1x.png" + }, + { + "idiom":"ipad", + "size":"76x76", + "scale":"2x", + "filename":"Icon-App-76x76@2x.png" + }, + { + "idiom":"ipad", + "size":"83.5x83.5", + "scale":"2x", + "filename":"Icon-App-83.5x83.5@2x.png" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "scale" : "1x", + "filename" : "ItunesArtwork@2x.png" + } + ], + "info":{ + "version":1, + "author":"easyappicon" } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } } diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png index 28c6bf03016f6c994b70f38d1b7346e5831b531f..0e65243a651fa2330f24384a29d876657308b73f 100644 GIT binary patch delta 792 zcmV+z1Lyp-1g{2=B!3BTNLh0L01m_e01m_fl`9S#0008vNkl2O9_IMehNW~2tN2_eDTF+Ax)xGgn|z(Y12w( zMEc?+VE^iux=`3P9D_~7J6e4l2 zNBDCG1kCvr?D8Tw3nG{^XV8NI#j_3c!y%x!%)yk$-&$klr*-7ibSf@Hij6G>cOO8E z%-mVWfBy~QU4LeK^!N$I#&+h?)s%_|rga)KcMd8*1H_eOa1P3VSy{v`%!4tA2=VAB z?Pc)~hW9qw`Fe)%hpMNG^pTDI1?G?H|pxE3-hex?e z>3*`RO@jg^Dek{rqxI-Ma`s~wjVj@$(Eb5~Umh}g@)XJdn%Wl;RKZB?%L%hqeiH#z zvQY z;jvf|tlIEA#$#jA#CNVxRMGtdLho(9dW1;%_kS*02GB_S=U>8`z2@o_CHnq-)j@^R zo4c4~vVvJ$z%DOU!$BZMV)rfKuid0uX9=^gfLH?}s4Cj+5qIAZ%MuZ(0gtsJl7cF0 z&R&0)G2d!UNdj=yd~S@W3XzGKnAuW*nC+O)NS^cK6Fbixw0S-0`Efn6`Rk^H{{deE WP7z4L{!>)|0000 z_-cHBsnVnni(n&I*!e#wNI)z_s}Kk_X;Y*OwkZM@L99}Q5JXfk*ocY`5X~B8qdRxb z%{fa3_HoBugJ+mKFTUS==P`qh10FEc1G0*!djTaC;zf>@mw!l3D#BD;Cthymh&~=f z$Q8nn0J<}ZrusBy4PvRNE}+1ceuj8u0mW5k8fmgeLnTbWHGwfKA3@PdZxhn|PypR& z^p?weGftrtCbjF#+zk_5BJh7;0`#WrgDpM_;Ax{jO##IrT`Oz;MvfwGfV$zD#c2xc zkpcXC6oou4MSnqn;3m3^$(nLgRStOuoa~_k?BSXTj79in$2xZ2ATz?ejJcSpJR${yA71LEn>R`(gT}YR{(1CZ%rRzZW>-DMa2Z5h$J?ElWw<7g!?opVq9Q dUzU9LFBBHi?hQ;g#7Y1F002ovPDHLkV1gl=`c?n{ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index 2ccbfd967d9697cd4b83225558af2911e9571c9b..2e4c79638b62611653dde1e4c3a83e3db156c2ce 100644 GIT binary patch delta 1967 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 WYK#ibz}*4>0000D2MHI(> zXYRdr{78xtwP{*PQBez}fP@g0id3W`3Zk&;2EG6i5(_>COT-3=1$$Nq76_0~7Tq8o zQ7HnI(oIX!2Wd!YoY=8_XAX;*d+%I39m)219_ReebN+Jsz<&u91O*7+BJ4flbqyb> zZ}i|J_7fAxKGUJ`h13*+=7zS4j>pMH%HmX@5Ze z%VqMFUr}ojV@OV&Bt7#YW^T4J(imi60n_a;_~bL}=KWx)AL*pqWp0+no3E2S|E#wn za+eN=j1C& zIvg?n;b+FnmvFsp#9HjyE%e@o2P8$t6wRSz&gO5MO-MEQaJV5J%_ehQ%^_}d(d8FM! zAM_y4ajUn;fBVA&^ce$4>|VcM=H_U=eUa?kS>I)hK{{=u+4M^PUSqs`30=R3?3<%; z;XLN(5ok2XPQO6<^i#pbmht5)xDP+Vt$*DKB~_G+M!mp*%yvkRA0t^>3@=RtOBMP9 z*d3xyVLV26`k?9?L$irA8>I=!_6{;X54Y~tp2V~;x>Ripm}F1RQYF2zXSa!BC905^ zDd1k|q;T~@r-(rug}u@EsYunG9`fFs3Vd0u^}jVd>RVd?hB|Pr4n$*$=Vw#Bw}0@6 z7Rb(U=s$hBk;Ho3Vpfo$@TLY}5>ZhJ=XX&hs+fA63Ly#dJOC?RehUA`jJAqlo|hP63+kC& zu+BoMXVeoRmngTYY}A-NYfM9`dv%%`yD?a*T41lg1oa`*sCpe+Bs{oPB(gWMSYk`d o+Ycks(`XABljZPGeie=X0rv|pc}tL#_y7O^07*qoM6N<$f}68d)c^nh delta 1004 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 literal 1716 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 delta 1906 zcmV-&2aWixD}WD>BYy`+Nkl^fDmF(5(5$|?Cx}D zKEJa&XZP%OyE`*GvvYQ4PV&!g2|L^Q?YG}tx;sY@GzV#^0C$Z`m}blr)&(OPMHT6T@%AxHOWYGG zm>@=0?<)?0r0XK9>leRXyD^j4O4bXT!@LESVI<~>`yB+S2b_f__vvyMHkwGyyXedq3usx&X*}E{O;}+nJ#G_xm zJbQX5 zuFrVK*|x9RQeZ1J@1v9MX;>n34(i>=YE@Iur`0Vah(inE3VUFZNqf~ ztSz{1fz3Fsn_x4F>o(Yo;kpqvBe-sbwH(*Yuz!}~S^-;|MX;9Py1im8!}VY-!u4P+ z!nLEvx?+Rogo+Kw9OBXy&lGIvJ51_7Hl6Q>*MAJa!lMDGGML530`Te&0ciU({DC7` z;RKg{uC>($*mdXnVQQBjiVyqYC7mf!Z%e-Q!?Oo{ufu`G3CAC=UjiTpU<94UTFz2KEDuNS@KKkg)K8!v1L8RUP$_! z({LG$Dy&JLEVpiNVe^G(HCbA*SpsX?292)#=JVQDUMp-cOJPl`+yTHTD!AOit-zAD zptXYa!q%OVLa^mo25b7^Z>kE`3rqgr-G4i;Lw<+P(8khESW8aaBmxfY`WS#6j<92Q z-++&Y z$gbH4#2sT0cU0SdFs=*W*4hKGpuR1QGacHFy;`# zR&NJkbTNp}Ee5f08HmLzK%D(q3@lH;Tzx$?VT;&xJq-KyHV__o3dD)?KrE<6*iXV0 z8;6<{IKw@dyDwJ90H5^3h;|9?twz{UGr|>1Pzhdn6W(r0ifeZd=JI+AAz<~yL(QJk zAWW))+=`8mGj|J!70oF@d4B;WxB=jBM1bWWRBb&1!ie3BUzOdm}yC-xA%SY``k$rbfk;CHqifhU*jfGM@DkYCec zD9&E@F9*za0?~OQZiDE|Cf;;0 z`uZ%H=IeGyG^H0ruev{yIVARgwZUG)j7>F#3~dh+8DOtPByR=(VDhz2enf#EjcXCI z=NUPYr4@S)GhX!?s(0Eh(nGe!y$#$r1B$||I~`wPhUuCQEo;#Xb$EXk=6HgBBRd#c ziK|jN$e~{zV~|;*E@Ij-Z(+tI^B8RW51ptE!nMnPyZ`_I07*qoM6N<$f<4WQFaQ7m diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png index 2ccbfd967d9697cd4b83225558af2911e9571c9b..2e4c79638b62611653dde1e4c3a83e3db156c2ce 100644 GIT binary patch delta 1967 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 a0{1_&;gnn2jcRKE0000tk|)`#2!0#oEV%S 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 delta 1881 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 P00000NkvXXu0mjf>-ZXx diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png index a6d6b8609df07bf62e5100a53a01510388bd2b22..3eaa1fb65a92fe5fed88b2ffbd811a6c51bcd8ad 100644 GIT binary patch literal 11154 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 P00000NkvXXu0mjf>-ZXx diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index 75b2d164a5a98e212cca15ea7bf2ab5de5108680..fd80aa4170174408dbd3cc3f8eeacec3c652bba6 100644 GIT binary patch literal 20412 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index c4df70d39da7941ef3f6dcb7f06a192d8dcb308d..39c7958dc6ce747613182bf6d46bcdb352408033 100644 GIT binary patch literal 5152 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 O0000x~L`~4d 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 iW8 CLIENT_ID - 864393916058-ekeb4s8tgfo58dutv0l54399t7ivr06r.apps.googleusercontent.com + 815750722565-da8p56le8bd6apsbm9eft0jjl1rtpgkt.apps.googleusercontent.com REVERSED_CLIENT_ID - com.googleusercontent.apps.864393916058-ekeb4s8tgfo58dutv0l54399t7ivr06r + com.googleusercontent.apps.815750722565-da8p56le8bd6apsbm9eft0jjl1rtpgkt + ANDROID_CLIENT_ID + 815750722565-m14h8mkosm7cnq6uh6rhqr54dn02d705.apps.googleusercontent.com API_KEY - AIzaSyA_6ayGCk4fly7o7eTVBrj9kuHBYHMAOfs + AIzaSyDiXnCO00li4V7Ioa2YZ_M4ECxRsu_P9tA GCM_SENDER_ID - 864393916058 + 815750722565 PLIST_VERSION 1 BUNDLE_ID - com.cloud.diplomaticquarterapp + com.HMG.HMG-Smartphone PROJECT_ID - diplomaticquarter-d2385 + api-project-815750722565 STORAGE_BUCKET - diplomaticquarter-d2385.appspot.com + api-project-815750722565.appspot.com IS_ADS_ENABLED IS_ANALYTICS_ENABLED @@ -29,8 +31,8 @@ IS_SIGNIN_ENABLED GOOGLE_APP_ID - 1:864393916058:ios:13f787bbfe6051f8b97923 + 1:815750722565:ios:328ec247a81a2ca23c186c DATABASE_URL - https://diplomaticquarter-d2385.firebaseio.com + https://api-project-815750722565.firebaseio.com \ No newline at end of file diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index ae084167..72bd4ac9 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -11,7 +11,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - diplomaticquarterapp + Dr. Alhabib CFBundlePackageType APPL CFBundleShortVersionString diff --git a/lib/config/config.dart b/lib/config/config.dart index f87b7628..b197a515 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -13,16 +13,16 @@ const PACKAGES_CUSTOMER = '/api/customers'; const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items'; const PACKAGES_ORDERS = '/api/orders'; -const BASE_URL = 'https://uat.hmgwebservices.com/'; -//const BASE_URL = 'https://hmgwebservices.com/'; +//const BASE_URL = 'https://uat.hmgwebservices.com/'; +const BASE_URL = 'https://hmgwebservices.com/'; // Pharmacy UAT URLs -const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; -const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; +//const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; +//const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; // Pharmacy Production URLs -// const BASE_PHARMACY_URL = 'https://mdlaboratories.com/exacartapi/api/'; -// const PHARMACY_BASE_URL = 'https://mdlaboratories.com/exacartapi/api/'; +const BASE_PHARMACY_URL = 'https://mdlaboratories.com/exacartapi/api/'; +const PHARMACY_BASE_URL = 'https://mdlaboratories.com/exacartapi/api/'; const PING_SERVICE = 'Services/Weather.svc/REST/CheckConnectivity'; diff --git a/lib/services/permission/permission_service.dart b/lib/services/permission/permission_service.dart index 237b2fa8..d88ec599 100644 --- a/lib/services/permission/permission_service.dart +++ b/lib/services/permission/permission_service.dart @@ -11,7 +11,7 @@ import 'package:localstorage/localstorage.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:vibration/vibration.dart'; import 'package:geolocator/geolocator.dart' as geo; -import 'package:open_settings/open_settings.dart'; +// import 'package:open_settings/open_settings.dart'; class PermissionService extends BaseService { final LocalStorage storage = new LocalStorage("permission"); @@ -78,6 +78,6 @@ class PermissionService extends BaseService { } openAccessbility() { - OpenSettings.openAppSetting(); + // OpenSettings.openAppSetting(); } } diff --git a/pubspec.yaml b/pubspec.yaml index 7451cb6a..c86b4a59 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -162,7 +162,7 @@ dependencies: # recase: ^3.0.0 wakelock: ^0.1.4 after_layout: ^1.0.7 - twilio_programmable_video: ^0.5.0+3 + twilio_programmable_video: ^0.6.2 cached_network_image: ^2.4.1 flutter_tts: path: flutter_tts-voice_enhancement @@ -176,7 +176,7 @@ dependencies: path: speech_to_text badges: ^1.1.4 - open_settings: ^2.0.1 +# open_settings: ^2.0.1 # Dep by Zohaib shimmer: ^1.1.2 carousel_slider: ^2.3.1 From 29c43e9757198c971d3b7ab8a16ad47615f51ff2 Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Thu, 15 Jul 2021 10:23:26 +0300 Subject: [PATCH 31/59] splash image added --- assets/images/powerd-by.jpg | Bin 150482 -> 23220 bytes assets/images/powerd-by2.jpg | Bin 0 -> 150482 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/images/powerd-by2.jpg diff --git a/assets/images/powerd-by.jpg b/assets/images/powerd-by.jpg index 93bdbb1881c65b9ad9e8463f2d0d251f1e0e64a1..eda1688c1e4aacec49b57985026b92e9e31c9c0f 100644 GIT binary patch literal 23220 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 F{|9iKfB*mh diff --git a/assets/images/powerd-by2.jpg b/assets/images/powerd-by2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..93bdbb1881c65b9ad9e8463f2d0d251f1e0e64a1 GIT binary patch literal 150482 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 F{|9iKfB*mh literal 0 HcmV?d00001 From 8d8fbc3edc0ec360b06fec5e7773dc8824d837ed Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Thu, 15 Jul 2021 10:30:48 +0300 Subject: [PATCH 32/59] jira bugs --- .../blood_pressure/AddBloodPressurePage.dart | 62 +------------------ 1 file changed, 1 insertion(+), 61 deletions(-) diff --git a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart index fc2df783..1d4fba82 100644 --- a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart +++ b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart @@ -46,7 +46,6 @@ class _AddBloodPressurePageState extends State { DateTime bloodSugarDate = DateTime.now(); DateTime timeSugarDate = DateTime.now(); int measuredArm = 1; - bool isButtonDisabled = false; final List measureTimeEnList = [ 'Left', 'Right', @@ -70,7 +69,6 @@ class _AddBloodPressurePageState extends State { measuredArm = measureTimeArList.indexOf(widget.measureTimeSelectedType); _bloodSystolicValueController.text = widget.bloodSystolicValue; _bloodDiastolicValueController.text = widget.bloodDiastolicValue; - validateForm(); } } @@ -80,13 +78,7 @@ class _AddBloodPressurePageState extends State { return AppScaffold( isShowAppBar: true, -<<<<<<< HEAD appBarTitle: widget.isUpdate ? TranslationBase.of(context).update : TranslationBase.of(context).add, -======= - appBarTitle: widget.isUpdate - ? TranslationBase.of(context).update - : TranslationBase.of(context).add, ->>>>>>> bcb4f487854a894a41a6578a08e0e8f306120033 appBarIcons: widget.isUpdate ? [ IconButton( @@ -102,21 +94,10 @@ class _AddBloodPressurePageState extends State { ConfirmDialog.closeAlertDialog(context); GifLoaderDialogUtils.showMyDialog(context); -<<<<<<< HEAD widget.model.deactivateDiabeticStatus(lineItemNo: widget.lineItemNo).then((value) { GifLoaderDialogUtils.hideDialog(context); if (widget.model.state == ViewState.ErrorLocal) AppToast.showErrorToast(message: widget.model.error); -======= - widget.model - .deactivateDiabeticStatus( - lineItemNo: widget.lineItemNo) - .then((value) { - GifLoaderDialogUtils.hideDialog(context); - if (widget.model.state == ViewState.ErrorLocal) - AppToast.showErrorToast( - message: widget.model.error); ->>>>>>> bcb4f487854a894a41a6578a08e0e8f306120033 else Navigator.pop(context); }).catchError((e) { @@ -143,8 +124,6 @@ class _AddBloodPressurePageState extends State { hintText: TranslationBase.of(context).systolicAdd, controller: _bloodSystolicValueController, keyboardType: TextInputType.number, - maxLength: 3, - onChanged: (value) => validateForm(), ), SizedBox( height: 8, @@ -153,15 +132,13 @@ class _AddBloodPressurePageState extends State { hintText: TranslationBase.of(context).diastolicAdd, controller: _bloodDiastolicValueController, keyboardType: TextInputType.number, - maxLength: 3, - onChanged: (value) => validateForm(), ), SizedBox( height: 8, ), InkWell( onTap: () { - confirmSelectMeasureTimeDialog(projectViewModel.isArabic ? measureTimeArList : measureTimeEnList); + confirmSelectMeasureTimeDialog(projectViewModel.isArabic ? measureTimeEnList : measureTimeArList); }, child: Container( padding: EdgeInsets.all(12), @@ -248,9 +225,6 @@ class _AddBloodPressurePageState extends State { loading: widget.model.state == ViewState.BusyLocal, label: TranslationBase.of(context).save.toUpperCase(), textColor: Colors.white, - color: isButtonDisabled - ? Colors.grey[900] - : Colors.grey, onTap: () async { if (_bloodSystolicValueController.text.isNotEmpty && _bloodDiastolicValueController.text.isNotEmpty) { GifLoaderDialogUtils.showMyDialog(context); @@ -301,43 +275,9 @@ class _AddBloodPressurePageState extends State { setState(() { measureTimeSelectedType = value; measuredArm = list.indexOf(value); - validateForm(); }); }, ), ); } - - void validateForm() { - print("_bloodSystolicValueController "+_bloodSystolicValueController.text.length.toString()); - if (measureTimeSelectedType != 'Left Arm' && - _bloodSystolicValueController.text.length > 0 && - _bloodDiastolicValueController.text.length > 0) { - setState(() { - isButtonDisabled = true; - }); - } else { - setState(() { - isButtonDisabled = false; - }); - } - // if(measureTimeSelectedType == 'Left Arm'){ - // setState(() { - // isButtonDisabled = false; - // }); - // }else if(_bloodSystolicValueController.text.length < 0){ - // setState(() { - // isButtonDisabled = false; - // }); - // }else if(_bloodDiastolicValueController.text.length < 0){ - // setState(() { - // isButtonDisabled = false; - // }); - // }else{ - // setState(() { - // isButtonDisabled = true; - // }); - // } - } - } From f310f9d0abc8fcc6fd0f2f89ca1231a5ca2405f7 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Thu, 15 Jul 2021 11:01:09 +0300 Subject: [PATCH 33/59] config --- lib/config/config.dart | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index a2640d90..013f1772 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -13,20 +13,16 @@ const PACKAGES_CUSTOMER = '/api/customers'; const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items'; const PACKAGES_ORDERS = '/api/orders'; -<<<<<<< HEAD -// const BASE_URL = 'https://uat.hmgwebservices.com/'; -======= -//const BASE_URL = 'https://uat.hmgwebservices.com/'; ->>>>>>> bcb4f487854a894a41a6578a08e0e8f306120033 -const BASE_URL = 'https://hmgwebservices.com/'; + const BASE_URL = 'https://uat.hmgwebservices.com/'; +//const BASE_URL = 'https://hmgwebservices.com/'; // Pharmacy UAT URLs -//const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; +const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; //const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; // Pharmacy Production URLs -const BASE_PHARMACY_URL = 'https://mdlaboratories.com/exacartapi/api/'; -const PHARMACY_BASE_URL = 'https://mdlaboratories.com/exacartapi/api/'; +//const BASE_PHARMACY_URL = 'https://mdlaboratories.com/exacartapi/api/'; +//const PHARMACY_BASE_URL = 'https://mdlaboratories.com/exacartapi/api/'; const PING_SERVICE = 'Services/Weather.svc/REST/CheckConnectivity'; From 4504b4bf751f91be716a6a6ee21e0d56c9cbc1cf Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Thu, 15 Jul 2021 11:02:45 +0300 Subject: [PATCH 34/59] config --- lib/config/config.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index 013f1772..e52be1a1 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -18,7 +18,7 @@ const PACKAGES_ORDERS = '/api/orders'; // Pharmacy UAT URLs const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; -//const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; +const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; // Pharmacy Production URLs //const BASE_PHARMACY_URL = 'https://mdlaboratories.com/exacartapi/api/'; From e934e7cd2c295f198df720c887fc35f0d3b764c8 Mon Sep 17 00:00:00 2001 From: "Mirza.Shafique" Date: Thu, 15 Jul 2021 14:47:26 +0300 Subject: [PATCH 35/59] Merge Fix --- lib/config/config.dart | 401 ++++++++++++------ lib/pages/feedback/send_feedback_page.dart | 150 +++---- lib/pages/medical/balance/new_text_Field.dart | 82 ++-- .../my_trackers/Weight/AddWeightPage.dart | 92 ++-- .../blood_pressure/AddBloodPressurePage.dart | 185 +++++--- .../blood_suger/AddBloodSugarPage.dart | 118 +++--- 6 files changed, 608 insertions(+), 420 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index a2640d90..40e0a300 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -13,12 +13,8 @@ const PACKAGES_CUSTOMER = '/api/customers'; const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items'; const PACKAGES_ORDERS = '/api/orders'; -<<<<<<< HEAD -// const BASE_URL = 'https://uat.hmgwebservices.com/'; -======= -//const BASE_URL = 'https://uat.hmgwebservices.com/'; ->>>>>>> bcb4f487854a894a41a6578a08e0e8f306120033 -const BASE_URL = 'https://hmgwebservices.com/'; +const BASE_URL = 'https://uat.hmgwebservices.com/'; +// const BASE_URL = 'https://hmgwebservices.com/'; // Pharmacy UAT URLs //const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; @@ -37,7 +33,8 @@ const GET_GEO_ZONES = 'Services/Patients.svc/REST/GeoF_GetAllPoints'; const LOG_GEO_ZONES = 'Services/Patients.svc/REST/GeoF_InsertPatientFileInfo'; // Delivery Driver -const DRIVER_LOCATION = 'Services/Patients.svc/REST/PatientER_GetDriverLocation'; +const DRIVER_LOCATION = + 'Services/Patients.svc/REST/PatientER_GetDriverLocation'; //weather const WEATHER_INDICATOR = 'Services/Weather.svc/REST/GetCityInfo'; @@ -45,36 +42,51 @@ const WEATHER_INDICATOR = 'Services/Weather.svc/REST/GetCityInfo'; const GET_PRIVILEGE = 'Services/Patients.svc/REST/Service_Privilege'; // Wifi Credentials -const WIFI_CREDENTIALS = "Services/Patients.svc/Hmg_SMS_Get_By_ProjectID_And_PatientID"; +const WIFI_CREDENTIALS = + "Services/Patients.svc/Hmg_SMS_Get_By_ProjectID_And_PatientID"; ///Doctor -const GET_MY_DOCTOR = 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; +const GET_MY_DOCTOR = + 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; const GET_DOCTOR_PROFILE = 'Services/Doctors.svc/REST/GetDocProfiles'; -const GET_DOCTOR_RATING_NOTES = 'Services/Doctors.svc/REST/dr_GetNotesDoctorRating'; -const GET_DOCTOR_RATING_DETAILS = 'Services/Doctors.svc/REST/dr_GetDoctorRatingDetails'; +const GET_DOCTOR_RATING_NOTES = + 'Services/Doctors.svc/REST/dr_GetNotesDoctorRating'; +const GET_DOCTOR_RATING_DETAILS = + 'Services/Doctors.svc/REST/dr_GetDoctorRatingDetails'; const GET_DOCTOR_RATING = 'Services/Doctors.svc/REST/dr_GetAvgDoctorRating'; ///Prescriptions const PRESCRIPTIONS = 'Services/Patients.svc/REST/GetPrescriptionApptList'; -const GET_PRESCRIPTIONS_ALL_ORDERS = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const GET_PRESCRIPTION_REPORT = 'Services/Patients.svc/REST/INP_GetPrescriptionReport'; -const SEND_PRESCRIPTION_EMAIL = 'Services/Notifications.svc/REST/SendPrescriptionEmail'; -const GET_PRESCRIPTION_REPORT_ENH = 'Services/Patients.svc/REST/GetPrescriptionReport_enh'; +const GET_PRESCRIPTIONS_ALL_ORDERS = + 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const GET_PRESCRIPTION_REPORT = + 'Services/Patients.svc/REST/INP_GetPrescriptionReport'; +const SEND_PRESCRIPTION_EMAIL = + 'Services/Notifications.svc/REST/SendPrescriptionEmail'; +const GET_PRESCRIPTION_REPORT_ENH = + 'Services/Patients.svc/REST/GetPrescriptionReport_enh'; ///Lab Order const GET_Patient_LAB_ORDERS = 'Services/Patients.svc/REST/GetPatientLabOrders'; -const GET_Patient_LAB_SPECIAL_RESULT = 'Services/Patients.svc/REST/GetPatientLabSpecialResults'; -const SEND_LAB_RESULT_EMAIL = 'Services/Notifications.svc/REST/SendLabReportEmail'; -const GET_Patient_LAB_RESULT = 'Services/Patients.svc/REST/GetPatientLabResults'; -const GET_Patient_LAB_ORDERS_RESULT = 'Services/Patients.svc/REST/GetPatientLabOrdersResults'; +const GET_Patient_LAB_SPECIAL_RESULT = + 'Services/Patients.svc/REST/GetPatientLabSpecialResults'; +const SEND_LAB_RESULT_EMAIL = + 'Services/Notifications.svc/REST/SendLabReportEmail'; +const GET_Patient_LAB_RESULT = + 'Services/Patients.svc/REST/GetPatientLabResults'; +const GET_Patient_LAB_ORDERS_RESULT = + 'Services/Patients.svc/REST/GetPatientLabOrdersResults'; /// const GET_PATIENT_ORDERS = 'Services/Patients.svc/REST/GetPatientRadOrders'; -const GET_PATIENT_LAB_ORDERS_BY_APPOINTMENT = 'Services/Patients.svc/REST/GetPatientLabResultsByAppointmentNo'; +const GET_PATIENT_LAB_ORDERS_BY_APPOINTMENT = + 'Services/Patients.svc/REST/GetPatientLabResultsByAppointmentNo'; -const GET_PATIENT_ORDERS_DETAILS = 'Services/Patients.svc/REST/Rad_UpdatePatientRadOrdersToRead'; +const GET_PATIENT_ORDERS_DETAILS = + 'Services/Patients.svc/REST/Rad_UpdatePatientRadOrdersToRead'; const GET_RAD_IMAGE_URL = 'Services/Patients.svc/Rest/GetRadImageURL'; -const SEND_RAD_REPORT_EMAIL = 'Services/Notifications.svc/REST/SendRadReportEmail'; +const SEND_RAD_REPORT_EMAIL = + 'Services/Notifications.svc/REST/SendRadReportEmail'; ///Feedback const SEND_FEEDBACK = 'Services/COCWS.svc/REST/InsertCOCItemInSPList'; @@ -83,23 +95,32 @@ const GET_PATIENT_AppointmentHistory = 'Services' '/Doctors.svc/REST/PateintHasAppoimentHistory'; ///VITAL SIGN -const GET_PATIENT_VITAL_SIGN = 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign'; +const GET_PATIENT_VITAL_SIGN = + 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign'; ///Er Nearest -const GET_NEAREST_HOSPITAL = 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime'; +const GET_NEAREST_HOSPITAL = + 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime'; ///ED Online -const ER_GET_VISUAL_TRIAGE_QUESTIONS = "services/Doctors.svc/REST/ER_GetVisualTriageQuestions"; -const ER_SAVE_TRIAGE_INFORMATION = "services/Doctors.svc/REST/ER_SaveTriageInformation"; +const ER_GET_VISUAL_TRIAGE_QUESTIONS = + "services/Doctors.svc/REST/ER_GetVisualTriageQuestions"; +const ER_SAVE_TRIAGE_INFORMATION = + "services/Doctors.svc/REST/ER_SaveTriageInformation"; const ER_GetPatientPaymentInformationForERClinic = "services/Doctors.svc/REST/ER_GetPatientPaymentInformationForERClinic"; ///Er Nearest -const GET_AMBULANCE_REQUEST = 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod'; -const GET_PATIENT_ALL_PRES_ORDERS = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID = 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID'; -const UPDATE_PRESS_ORDER = 'Services/Patients.svc/REST/PatientER_UpdatePresOrder'; -const INSERT_ER_INERT_PRES_ORDER = 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; +const GET_AMBULANCE_REQUEST = + 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod'; +const GET_PATIENT_ALL_PRES_ORDERS = + 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID = + 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID'; +const UPDATE_PRESS_ORDER = + 'Services/Patients.svc/REST/PatientER_UpdatePresOrder'; +const INSERT_ER_INERT_PRES_ORDER = + 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; ///FindUs const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations'; @@ -108,13 +129,15 @@ const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations'; const GET_LIVECHAT_REQUEST = 'Services/Patients.svc/REST/GetPatientICProjects'; ///babyInformation -const GET_BABYINFORMATION_REQUEST = 'Services/Community.svc/REST/GetBabyByUserID'; +const GET_BABYINFORMATION_REQUEST = + 'Services/Community.svc/REST/GetBabyByUserID'; ///Get Baby By User ID const GET_BABY_BY_USER_ID = 'Services/Community.svc/REST/GetBabyByUserID'; ///userInformation -const GET_USERINFORMATION_REQUEST = 'Services/Community.svc/REST/GetUserInformation_New'; +const GET_USERINFORMATION_REQUEST = + 'Services/Community.svc/REST/GetUserInformation_New'; ///Update email const UPDATE_PATENT_EMAIL = 'Services/Patients.svc/REST/UpdatePateintEmail'; @@ -136,21 +159,29 @@ const GET_TABLE_REQUEST = 'Services/Community.svc/REST/CreateVaccinationTable'; const GET_CITIES_REQUEST = 'Services/Lists.svc/REST/GetAllCities'; ///BloodDetails -const GET_BLOOD_REQUEST = 'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails'; +const GET_BLOOD_REQUEST = + 'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails'; -const SAVE_BLOOD_REQUEST = 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; +const SAVE_BLOOD_REQUEST = + 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; -const GET_BLOOD_AGREEMENT = 'Services/PatientVarification.svc/REST/CheckUserAgreementForBloodDonation'; -const SAVE_BLOOD_AGREEMENT = 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; +const GET_BLOOD_AGREEMENT = + 'Services/PatientVarification.svc/REST/CheckUserAgreementForBloodDonation'; +const SAVE_BLOOD_AGREEMENT = + 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; ///Reports const REPORTS = 'Services/Doctors.svc/REST/GetPatientMedicalReportStatusInfo'; -const INSERT_REQUEST_FOR_MEDICAL_REPORT = 'Services/Doctors.svc/REST/InsertRequestForMedicalReport'; -const SEND_MEDICAL_REPORT_EMAIL = 'Services/Notifications.svc/REST/SendMedicalReportEmail'; +const INSERT_REQUEST_FOR_MEDICAL_REPORT = + 'Services/Doctors.svc/REST/InsertRequestForMedicalReport'; +const SEND_MEDICAL_REPORT_EMAIL = + 'Services/Notifications.svc/REST/SendMedicalReportEmail'; ///Rate -const IS_LAST_APPOITMENT_RATED = 'Services/Doctors.svc/REST/IsLastAppoitmentRated'; -const GET_APPOINTMENT_DETAILS_BY_NO = 'Services/MobileNotifications.svc/REST/GetAppointmentDetailsByApptNo'; +const IS_LAST_APPOITMENT_RATED = + 'Services/Doctors.svc/REST/IsLastAppoitmentRated'; +const GET_APPOINTMENT_DETAILS_BY_NO = + 'Services/MobileNotifications.svc/REST/GetAppointmentDetailsByApptNo'; const GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID'; @@ -162,7 +193,8 @@ const GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID'; const GET_CLINICS_LIST_URL = "Services/lists.svc/REST/GetClinicCentralized"; //URL to get active appointment list -const GET_ACTIVE_APPOINTMENTS_LIST_URL = "Services/Doctors.svc/Rest/Dr_GetAppointmentActiveNumber"; +const GET_ACTIVE_APPOINTMENTS_LIST_URL = + "Services/Doctors.svc/Rest/Dr_GetAppointmentActiveNumber"; //URL to get projects list const GET_PROJECTS_LIST = 'Services/Lists.svc/REST/GetProject'; @@ -171,85 +203,115 @@ const GET_PROJECTS_LIST = 'Services/Lists.svc/REST/GetProject'; const GET_DOCTORS_LIST_URL = "Services/Doctors.svc/REST/SearchDoctorsByTime"; //URL to dental doctors list -const GET_DENTAL_DOCTORS_LIST_URL = "Services/Doctors.svc/REST/Dental_DoctorChiefComplaintMapping"; +const GET_DENTAL_DOCTORS_LIST_URL = + "Services/Doctors.svc/REST/Dental_DoctorChiefComplaintMapping"; //URL to get doctor free slots const GET_DOCTOR_FREE_SLOTS = "Services/Doctors.svc/REST/GetDoctorFreeSlots"; //URL to insert appointment -const INSERT_SPECIFIC_APPOINTMENT = "Services/Doctors.svc/REST/InsertSpecificAppointment"; +const INSERT_SPECIFIC_APPOINTMENT = + "Services/Doctors.svc/REST/InsertSpecificAppointment"; //URL to get patient share -const GET_PATIENT_SHARE = "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNO"; +const GET_PATIENT_SHARE = + "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNO"; //URL to get patient appointment history -const GET_PATIENT_APPOINTMENT_HISTORY = "Services/Doctors.svc/REST/PateintHasAppoimentHistory"; +const GET_PATIENT_APPOINTMENT_HISTORY = + "Services/Doctors.svc/REST/PateintHasAppoimentHistory"; -const SEND_REPORT_EYE_EMAIL = "Services/Notifications.svc/REST/SendGlassesPrescriptionEmail"; +const SEND_REPORT_EYE_EMAIL = + "Services/Notifications.svc/REST/SendGlassesPrescriptionEmail"; -const SEND_CONTACT_LENS_PRESCRIPTION_EMAIL = "Services/Notifications.svc/REST/SendContactLensPrescriptionEmail"; +const SEND_CONTACT_LENS_PRESCRIPTION_EMAIL = + "Services/Notifications.svc/REST/SendContactLensPrescriptionEmail"; //URL to get patient appointment curfew history -const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = "Services/Doctors.svc/REST/AppoimentHistoryForCurfew"; +const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = + "Services/Doctors.svc/REST/AppoimentHistoryForCurfew"; //URL to confirm appointment -const CONFIRM_APPOINTMENT = "Services/MobileNotifications.svc/REST/ConfirmAppointment"; +const CONFIRM_APPOINTMENT = + "Services/MobileNotifications.svc/REST/ConfirmAppointment"; -const INSERT_VIDA_REQUEST = "Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart"; +const INSERT_VIDA_REQUEST = + "Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart"; //URL to cancel appointment const CANCEL_APPOINTMENT = "Services/Doctors.svc/REST/CancelAppointment"; //URL get appointment QR -const GENERATE_QR_APPOINTMENT = "Services/Doctors.svc/REST/GenerateQRAppointmentNo"; +const GENERATE_QR_APPOINTMENT = + "Services/Doctors.svc/REST/GenerateQRAppointmentNo"; //URL send email appointment QR -const EMAIL_QR_APPOINTMENT = "Services/Notifications.svc/REST/sendEmailForOnLineCheckin"; +const EMAIL_QR_APPOINTMENT = + "Services/Notifications.svc/REST/sendEmailForOnLineCheckin"; //URL check payment status -const CHECK_PAYMENT_STATUS = "Services/PayFort_Serv.svc/REST/GetRequestStatusByRequestID"; +const CHECK_PAYMENT_STATUS = + "Services/PayFort_Serv.svc/REST/GetRequestStatusByRequestID"; //URL create advance payment const CREATE_ADVANCE_PAYMENT = "Services/Doctors.svc/REST/CreateAdvancePayment"; -const HIS_CREATE_ADVANCE_PAYMENT = "Services/Patients.svc/REST/HIS_CreateAdvancePayment"; +const HIS_CREATE_ADVANCE_PAYMENT = + "Services/Patients.svc/REST/HIS_CreateAdvancePayment"; -const ADD_ADVANCE_NUMBER_REQUEST = 'Services/PayFort_Serv.svc/REST/AddAdvancedNumberRequest'; +const ADD_ADVANCE_NUMBER_REQUEST = + 'Services/PayFort_Serv.svc/REST/AddAdvancedNumberRequest'; -const IS_ALLOW_ASK_DOCTOR = 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; -const GET_CALL_REQUEST_TYPE = 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; -const ADD_VIDA_REQUEST = 'Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart'; +const IS_ALLOW_ASK_DOCTOR = + 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; +const GET_CALL_REQUEST_TYPE = + 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; +const ADD_VIDA_REQUEST = + 'Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart'; const SEND_CALL_REQUEST = 'Services/Doctors.svc/REST/InsertCallInfo'; -const GET_LIVECARE_CLINICS = 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinics'; +const GET_LIVECARE_CLINICS = + 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinics'; -const GET_LIVECARE_SCHEDULE_CLINICS = 'Services/Doctors.svc/REST/PatientER_GetClinicsHaveSchedule'; +const GET_LIVECARE_SCHEDULE_CLINICS = + 'Services/Doctors.svc/REST/PatientER_GetClinicsHaveSchedule'; -const GET_LIVECARE_SCHEDULE_CLINIC_DOCTOR_LIST = 'Services/Doctors.svc/REST/PatientER_GetDoctorByClinicID'; +const GET_LIVECARE_SCHEDULE_CLINIC_DOCTOR_LIST = + 'Services/Doctors.svc/REST/PatientER_GetDoctorByClinicID'; -const GET_LIVECARE_SCHEDULE_DOCTOR_TIME_SLOTS = 'Services/Doctors.svc/REST/PatientER_GetDoctorFreeSlots'; +const GET_LIVECARE_SCHEDULE_DOCTOR_TIME_SLOTS = + 'Services/Doctors.svc/REST/PatientER_GetDoctorFreeSlots'; -const INSERT_LIVECARE_SCHEDULE_APPOINTMENT = 'Services/Doctors.svc/REST/InsertSpecificAppoitmentForSchedule'; +const INSERT_LIVECARE_SCHEDULE_APPOINTMENT = + 'Services/Doctors.svc/REST/InsertSpecificAppoitmentForSchedule'; const GET_PATIENT_SHARE_LIVECARE = "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNOForLiveCare"; -const GET_LIVECARE_CLINIC_TIMING = 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinicsServiceTimingsSchedule'; +const GET_LIVECARE_CLINIC_TIMING = + 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinicsServiceTimingsSchedule'; -const GET_ER_APPOINTMENT_FEES = 'Services/DoctorApplication.svc/REST/GetERAppointmentFees'; +const GET_ER_APPOINTMENT_FEES = + 'Services/DoctorApplication.svc/REST/GetERAppointmentFees'; const GET_ER_APPOINTMENT_TIME = 'Services/ER_VirtualCall.svc/REST/GetRestTime'; -const ADD_NEW_CALL_FOR_PATIENT_ER = 'Services/DoctorApplication.svc/REST/NewCallForPatientER'; +const ADD_NEW_CALL_FOR_PATIENT_ER = + 'Services/DoctorApplication.svc/REST/NewCallForPatientER'; -const GET_LIVECARE_HISTORY = 'Services/ER_VirtualCall.svc/REST/GetPatientErVirtualHistory'; -const CANCEL_LIVECARE_REQUEST = 'Services/ER_VirtualCall.svc/REST/DeleteErRequest'; -const SEND_LIVECARE_INVOICE_EMAIL = 'Services/Notifications.svc/REST/SendInvoiceForLiveCare'; +const GET_LIVECARE_HISTORY = + 'Services/ER_VirtualCall.svc/REST/GetPatientErVirtualHistory'; +const CANCEL_LIVECARE_REQUEST = + 'Services/ER_VirtualCall.svc/REST/DeleteErRequest'; +const SEND_LIVECARE_INVOICE_EMAIL = + 'Services/Notifications.svc/REST/SendInvoiceForLiveCare'; const GET_USER_TERMS = 'Services/Patients.svc/REST/GetUserTermsAndConditions'; -const UPDATE_HEALTH_TERMS = 'services/Patients.svc/REST/UpdatePateintHealthSummaryReport'; +const UPDATE_HEALTH_TERMS = + 'services/Patients.svc/REST/UpdatePateintHealthSummaryReport'; -const GET_PATIENT_HEALTH_STATS = 'Services/Patients.svc/REST/Med_GetTransactionsSts'; +const GET_PATIENT_HEALTH_STATS = + 'Services/Patients.svc/REST/Med_GetTransactionsSts'; //URL to get medicine and pharmacies list const CHANNEL = 3; @@ -270,16 +332,21 @@ var DeviceTypeID = Platform.isIOS ? 1 : 2; const LANGUAGE_ID = 2; const GET_PHARMCY_ITEMS = "Services/Lists.svc/REST/GetPharmcyItems_Region"; const GET_PHARMACY_LIST = "Services/Patients.svc/REST/GetPharmcyList"; -const GET_PAtIENTS_INSURANCE = "Services/Patients.svc/REST/Get_PatientInsuranceDetails"; -const GET_PAtIENTS_INSURANCE_UPDATED = "Services/Patients.svc/REST/PatientER_GetPatientInsuranceCardUpdateHistory"; +const GET_PAtIENTS_INSURANCE = + "Services/Patients.svc/REST/Get_PatientInsuranceDetails"; +const GET_PAtIENTS_INSURANCE_UPDATED = + "Services/Patients.svc/REST/PatientER_GetPatientInsuranceCardUpdateHistory"; const INSURANCE_DETAILS = "Services/Patients.svc/REST/Get_InsuranceCheckList"; -const GET_PATIENT_INSURANCE_DETAILS = "Services/Patients.svc/REST/PatientER_GetPatientInsuranceDetails"; -const UPLOAD_INSURANCE_CARD = 'Services/Patients.svc/REST/PatientER_PatientInfoForInsuranceCardUpdate'; +const GET_PATIENT_INSURANCE_DETAILS = + "Services/Patients.svc/REST/PatientER_GetPatientInsuranceDetails"; +const UPLOAD_INSURANCE_CARD = + 'Services/Patients.svc/REST/PatientER_PatientInfoForInsuranceCardUpdate'; const GET_VACCINES = "Services/Patients.svc/REST/GetDoneVaccinesByPatientID"; const GET_VACCINES_EMAIL = "Services/Notifications.svc/REST/SendVaccinesEmail"; -const GET_PAtIENTS_INSURANCE_APPROVALS = "Services/Patients.svc/REST/GetApprovalStatus"; +const GET_PAtIENTS_INSURANCE_APPROVALS = + "Services/Patients.svc/REST/GetApprovalStatus"; const SEARCH_BOT = 'HabibiChatBotApi/BotInterface/GetVoiceCommandResponse'; const GET_VACCINATIONS_ITEMS = "/Services/ERP.svc/REST/GET_VACCINATIONS_ITEMS"; @@ -289,54 +356,81 @@ const GET_PATIENT_SICK_LEAVE = 'Services/Patients.svc/REST/GetPatientSickLeave'; const SendSickLeaveEmail = 'Services/Notifications.svc/REST/SendSickLeaveEmail'; -const GET_PATIENT_AdVANCE_BALANCE_AMOUNT = 'Services/Patients.svc/REST/GetPatientAdvanceBalanceAmount'; -const GET_PATIENT_INFO_BY_ID = 'Services/Doctors.svc/REST/GetPatientInfoByPatientID'; +const GET_PATIENT_AdVANCE_BALANCE_AMOUNT = + 'Services/Patients.svc/REST/GetPatientAdvanceBalanceAmount'; +const GET_PATIENT_INFO_BY_ID = + 'Services/Doctors.svc/REST/GetPatientInfoByPatientID'; const GET_PATIENT_INFO_BY_ID_AND_MOBILE_NUMBER = 'Services/Patients.svc/REST/AP_GetPatientInfoByPatientIDandMobileNumber'; -const SEND_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/REST/SendActivationCodeForAdvancePayment'; +const SEND_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = + 'Services/Authentication.svc/REST/SendActivationCodeForAdvancePayment'; const CHECK_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/REST/CheckActivationCodeForAdvancePayment'; -const GET_COVID_DRIVETHRU_PROJECT_LIST = 'Services/Doctors.svc/REST/COVID19_ProjectDriveThroughTestingCenter'; +const GET_COVID_DRIVETHRU_PROJECT_LIST = + 'Services/Doctors.svc/REST/COVID19_ProjectDriveThroughTestingCenter'; -const GET_COVID_DRIVETHRU_PAYMENT_INFO = 'Services/Doctors.svc/REST/COVID19_GetPatientPaymentInormation'; +const GET_COVID_DRIVETHRU_PAYMENT_INFO = + 'Services/Doctors.svc/REST/COVID19_GetPatientPaymentInormation'; -const GET_COVID_DRIVETHRU_FREE_SLOTS = 'Services/Doctors.svc/REST/COVID19_GetFreeSlots'; +const GET_COVID_DRIVETHRU_FREE_SLOTS = + 'Services/Doctors.svc/REST/COVID19_GetFreeSlots'; ///Smartwatch Integration Services -const GET_PATIENT_LAST_RECORD = 'Services/Patients.svc/REST/Med_GetPatientLastRecord'; +const GET_PATIENT_LAST_RECORD = + 'Services/Patients.svc/REST/Med_GetPatientLastRecord'; ///My Trackers -const GET_DIABETIC_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage'; -const GET_DIABTEC_RESULT = 'Services/Patients.svc/REST/Patient_GetDiabtecResults'; -const ADD_DIABTEC_RESULT = 'Services/Patients.svc/REST/Patient_AddDiabtecResult'; - -const GET_BLOOD_PRESSURE_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage'; -const GET_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_GetBloodPressureResult'; -const ADD_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_AddBloodPressureResult'; - -const GET_WEIGHT_PRESSURE_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage'; -const GET_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResult'; -const ADD_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_AddWeightMeasurementResult'; +const GET_DIABETIC_RESULT_AVERAGE = + 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage'; +const GET_DIABTEC_RESULT = + 'Services/Patients.svc/REST/Patient_GetDiabtecResults'; +const ADD_DIABTEC_RESULT = + 'Services/Patients.svc/REST/Patient_AddDiabtecResult'; + +const GET_BLOOD_PRESSURE_RESULT_AVERAGE = + 'Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage'; +const GET_BLOOD_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_GetBloodPressureResult'; +const ADD_BLOOD_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_AddBloodPressureResult'; + +const GET_WEIGHT_PRESSURE_RESULT_AVERAGE = + 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage'; +const GET_WEIGHT_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResult'; +const ADD_WEIGHT_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_AddWeightMeasurementResult'; const ADD_ACTIVE_PRESCRIPTIONS_REPORT_BY_PATIENT_ID = 'Services/Patients.svc/Rest/GetActivePrescriptionReportByPatientID'; -const GET_CALL_INFO_HOURS_RESULT = 'Services/Doctors.svc/REST/GetCallInfoHoursResult'; -const GET_CALL_REQUEST_TYPE_LOV = 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; - -const UPDATE_DIABETIC_RESULT = 'Services/Patients.svc/REST/Patient_UpdateDiabeticResult'; - -const SEND_AVERAGE_BLOOD_SUGAR_REPORT = 'Services/Notifications.svc/REST/SendAverageBloodSugarReport'; -const DEACTIVATE_DIABETIC_STATUS = 'services/Patients.svc/REST/Patient_DeactivateDiabeticStatus'; -const DEACTIVATE_BLOOD_PRESSURES_STATUS = 'services/Patients.svc/REST/Patient_DeactivateBloodPressureStatus'; - -const UPDATE_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_UpdateBloodPressureResult'; -const SEND_AVERAGE_BLOOD_WEIGHT_REPORT = 'Services/Notifications.svc/REST/SendAverageBodyWeightReport'; -const SEND_AVERAGE_BLOOD_PRESSURE_REPORT = 'Services/Notifications.svc/REST/SendAverageBloodPressureReport'; - -const UPDATE_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_UpdateWeightMeasurementResult'; -const DEACTIVATE_WEIGHT_PRESSURE_RESULT = 'services/Patients.svc/REST/Patient_DeactivateWeightMeasurementStatus'; +const GET_CALL_INFO_HOURS_RESULT = + 'Services/Doctors.svc/REST/GetCallInfoHoursResult'; +const GET_CALL_REQUEST_TYPE_LOV = + 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; + +const UPDATE_DIABETIC_RESULT = + 'Services/Patients.svc/REST/Patient_UpdateDiabeticResult'; + +const SEND_AVERAGE_BLOOD_SUGAR_REPORT = + 'Services/Notifications.svc/REST/SendAverageBloodSugarReport'; +const DEACTIVATE_DIABETIC_STATUS = + 'services/Patients.svc/REST/Patient_DeactivateDiabeticStatus'; +const DEACTIVATE_BLOOD_PRESSURES_STATUS = + 'services/Patients.svc/REST/Patient_DeactivateBloodPressureStatus'; + +const UPDATE_BLOOD_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_UpdateBloodPressureResult'; +const SEND_AVERAGE_BLOOD_WEIGHT_REPORT = + 'Services/Notifications.svc/REST/SendAverageBodyWeightReport'; +const SEND_AVERAGE_BLOOD_PRESSURE_REPORT = + 'Services/Notifications.svc/REST/SendAverageBloodPressureReport'; + +const UPDATE_WEIGHT_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_UpdateWeightMeasurementResult'; +const DEACTIVATE_WEIGHT_PRESSURE_RESULT = + 'services/Patients.svc/REST/Patient_DeactivateWeightMeasurementStatus'; const GET_DOCTOR_RESPONSE = 'Services/Patients.svc/REST/GetDoctorResponse'; const UPDATE_READ_STATUS = 'Services/Patients.svc/REST/UpdateReadStatus'; const INSERT_CALL_INFO = 'Services/Doctors.svc/REST/InsertCallInfo'; @@ -344,29 +438,41 @@ const INSERT_CALL_INFO = 'Services/Doctors.svc/REST/InsertCallInfo'; const GET_PATIENT_ALLERGIES = 'Services/Patients.svc/REST/GetPatientAllergies'; // H2O -const H2O_GET_USER_PROGRESS = "Services/H2ORemainder.svc/REST/H2O_GetUserProgress"; -const H2O_INSERT_USER_ACTIVITY = "Services/H2ORemainder.svc/REST/H2O_InsertUserActivity"; -const H2O_GET_USER_DETAIL = "Services/H2ORemainder.svc/REST/H2O_GetUserDetails_New"; -const H2O_UPDATE_USER_DETAIL = "Services/H2ORemainder.svc/REST/H2O_UpdateUserDetails_New"; -const H2O_UNDO_USER_ACTIVITY = "Services/H2ORemainder.svc/REST/H2o_UndoUserActivity"; +const H2O_GET_USER_PROGRESS = + "Services/H2ORemainder.svc/REST/H2O_GetUserProgress"; +const H2O_INSERT_USER_ACTIVITY = + "Services/H2ORemainder.svc/REST/H2O_InsertUserActivity"; +const H2O_GET_USER_DETAIL = + "Services/H2ORemainder.svc/REST/H2O_GetUserDetails_New"; +const H2O_UPDATE_USER_DETAIL = + "Services/H2ORemainder.svc/REST/H2O_UpdateUserDetails_New"; +const H2O_UNDO_USER_ACTIVITY = + "Services/H2ORemainder.svc/REST/H2o_UndoUserActivity"; //E_Referral Services -const GET_ALL_RELATIONSHIP_TYPES = "Services/Patients.svc/REST/GetAllRelationshipTypes"; -const SEND_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/SendActivationCodeForEReferral'; -const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral'; +const GET_ALL_RELATIONSHIP_TYPES = + "Services/Patients.svc/REST/GetAllRelationshipTypes"; +const SEND_ACTIVATION_CODE_FOR_E_REFERRAL = + 'Services/Authentication.svc/REST/SendActivationCodeForEReferral'; +const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL = + 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral'; const GET_ALL_CITIES = 'services/Lists.svc/rest/GetAllCities'; const CREATE_E_REFERRAL = "Services/Patients.svc/REST/CreateEReferral"; const GET_E_REFERRALS = "Services/Patients.svc/REST/GetEReferrals"; // Encillary Orders -const GET_ANCILLARY_ORDERS = 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderList'; +const GET_ANCILLARY_ORDERS = + 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderList'; -const GET_ANCILLARY_ORDERS_DETAILS = 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderProcList'; +const GET_ANCILLARY_ORDERS_DETAILS = + 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderProcList'; //Pharmacy wishlist // const GET_WISHLIST = "http://swd-pharapp-01:7200/api/shopping_cart_items/"; +const GET_DOCTOR_LIST_BY_TIME = "Services/Doctors.svc/REST/SearchDoctorsByTime"; + // pharmacy const PHARMACY_AUTORZIE_CUSTOMER = "AutorizeCustomer"; const PHARMACY_VERIFY_CUSTOMER = "VerifyCustomer"; @@ -392,34 +498,50 @@ const GET_SHIPPING_OPTIONS = "get_shipping_option/"; const DELETE_SHOPPING_CART = "delete_shopping_cart_items/"; const DELETE_SHOPPING_CART_ALL = "delete_shopping_cart_item_by_customer/"; const ORDER_SHOPPING_CART = "orders"; -const GET_LACUM_ACCOUNT_INFORMATION = "Services/Patients.svc/REST/GetLakumAccountInformation"; -const GET_LACUM_GROUP_INFORMATION = "Services/Patients.svc/REST/GetlakumInQueryInfoGrouping"; -const LACUM_ACCOUNT_ACTIVATE = "Services/Patients.svc/REST/LakumAccountActivation"; -const LACUM_ACCOUNT_DEACTIVATE = "Services/Patients.svc/REST/LakumAccountDeactivation"; -const CREATE_LAKUM_ACCOUNT = "Services/Patients.svc/REST/PHR_CreateLakumAccount"; -const TRANSFER_YAHALA_LOYALITY_POINTS = "Services/Patients.svc/REST/TransferYaHalaLoyaltyPoints"; -const LAKUM_GET_USER_TERMS_AND_CONDITIONS = "Services/ERP.svc/REST/GetUserTermsAndConditionsForEPharmcy"; +const GET_LACUM_ACCOUNT_INFORMATION = + "Services/Patients.svc/REST/GetLakumAccountInformation"; +const GET_LACUM_GROUP_INFORMATION = + "Services/Patients.svc/REST/GetlakumInQueryInfoGrouping"; +const LACUM_ACCOUNT_ACTIVATE = + "Services/Patients.svc/REST/LakumAccountActivation"; +const LACUM_ACCOUNT_DEACTIVATE = + "Services/Patients.svc/REST/LakumAccountDeactivation"; +const CREATE_LAKUM_ACCOUNT = + "Services/Patients.svc/REST/PHR_CreateLakumAccount"; +const TRANSFER_YAHALA_LOYALITY_POINTS = + "Services/Patients.svc/REST/TransferYaHalaLoyaltyPoints"; +const LAKUM_GET_USER_TERMS_AND_CONDITIONS = + "Services/ERP.svc/REST/GetUserTermsAndConditionsForEPharmcy"; const PRESCRIPTION = 'Services/Patients.svc/REST/GetPrescriptionApptList'; const GET_RECOMMENDED_PRODUCT = 'alsoProduct/'; const GET_MOST_VIEWED_PRODUCTS = "mostview?"; const GET_NEW_PRODUCTS = "newproducts?"; // Home Health Care -const HHC_GET_ALL_SERVICES = "Services/Patients.svc/REST/PatientER_HHC_GetAllServices"; -const HHC_GET_ALL_CMC_SERVICES = "Services/Patients.svc/REST/PatientER_CMC_GetAllServices"; -const PATIENT_ER_UPDATE_PRES_ORDER = "Services/Patients.svc/REST/PatientER_UpdatePresOrder"; -const GET_ORDER_DETAIL_BY_ID = "Services/Patients.svc/REST/PatientER_HHC_GetTransactionsForOrder"; -const GET_CMC_ORDER_DETAIL_BY_ID = "Services/Patients.svc/REST/PatientER_CMC_GetTransactionsForOrder"; +const HHC_GET_ALL_SERVICES = + "Services/Patients.svc/REST/PatientER_HHC_GetAllServices"; +const HHC_GET_ALL_CMC_SERVICES = + "Services/Patients.svc/REST/PatientER_CMC_GetAllServices"; +const PATIENT_ER_UPDATE_PRES_ORDER = + "Services/Patients.svc/REST/PatientER_UpdatePresOrder"; +const GET_ORDER_DETAIL_BY_ID = + "Services/Patients.svc/REST/PatientER_HHC_GetTransactionsForOrder"; +const GET_CMC_ORDER_DETAIL_BY_ID = + "Services/Patients.svc/REST/PatientER_CMC_GetTransactionsForOrder"; const GET_CHECK_UP_ITEMS = "Services/Patients.svc/REST/GetCheckUpItems"; const PUSH_NOTIFICATION_GET_ALL_NOTIFICATIONS = 'Services/MobileNotifications.svc/REST/PushNotification_GetAllNotifications'; const PUSH_NOTIFICATION_SET_MESSAGES_FROM_POOL_AS_READ = 'Services/MobileNotifications.svc/REST/PushNotification_SetMessagesFromPoolAsRead'; -const GET_PATIENT_ALL_PRES_ORD = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const PATIENT_ER_INSERT_PRES_ORDER = 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; +const GET_PATIENT_ALL_PRES_ORD = + 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const PATIENT_ER_INSERT_PRES_ORDER = + 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; const PHARMACY_MAKE_REVIEW = 'epharmacy/api/insertreviews'; -const BLOOD_DONATION_REGISTER_BLOOD_TYPE = 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; -const ADD_USER_AGREEMENT_FOR_BLOOD_DONATION = 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; +const BLOOD_DONATION_REGISTER_BLOOD_TYPE = + 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; +const ADD_USER_AGREEMENT_FOR_BLOOD_DONATION = + 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; //Pharmacy wishlist const GET_WISHLIST = "shopping_cart_items/"; @@ -452,7 +574,8 @@ const GET_SUB_PRODUCTS = 'products?categoryid='; const GET_FINAL_PRODUCTS = 'products?fields=id,reviews,discount_ids,name,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage&CategoryId='; const GET_CLINIC_CATEGORY = 'Services/Doctors.svc/REST/DP_GetClinicCategory'; -const GET_DISEASE_BY_CLINIC_ID = 'Services/Doctors.svc/REST/DP_GetDiseasesByClinicID'; +const GET_DISEASE_BY_CLINIC_ID = + 'Services/Doctors.svc/REST/DP_GetDiseasesByClinicID'; const SEARCH_DOCTOR_BY_TIME = 'Services/Doctors.svc/REST/SearchDoctorsByTime'; const TIMER_MIN = 10; @@ -468,10 +591,6 @@ const SCAN_QR_CODE = 'productbysku/'; const FILTERED_PRODUCTS = 'products?categoryids='; -const GET_DOCTOR_LIST_CALCULATION = "Services/Doctors.svc/REST/GetCallculationDoctors"; - -const GET_DOCTOR_LIST_BY_TIME = "Services/Doctors.svc/REST/SearchDoctorsByTime"; - class AppGlobal { static var context; diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index fca9624c..e41e4d27 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -167,7 +167,7 @@ class _SendFeedbackPageState extends State { margin: EdgeInsets.all(10), child: Column( crossAxisAlignment: - CrossAxisAlignment.start, + CrossAxisAlignment.start, children: [ Texts( appointHistory.doctorNameObj, @@ -176,8 +176,8 @@ class _SendFeedbackPageState extends State { Texts( DateUtil .getMonthDayYearDateFormatted( - appointHistory - .appointmentDate), + appointHistory + .appointmentDate), variant: 'caption3', ), StarRating( @@ -235,7 +235,7 @@ class _SendFeedbackPageState extends State { flex: 4, child: Column( crossAxisAlignment: - CrossAxisAlignment.start, + CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.all(10.0), @@ -246,11 +246,11 @@ class _SendFeedbackPageState extends State { child: LargeAvatar( name: model .appointHistoryList[ - index] + index] .doctorNameObj, url: model .appointHistoryList[ - index] + index] .doctorImageURL, ), ), @@ -260,27 +260,27 @@ class _SendFeedbackPageState extends State { margin: EdgeInsets.all(10), child: Column( crossAxisAlignment: - CrossAxisAlignment - .start, + CrossAxisAlignment + .start, children: [ Texts( model .appointHistoryList[ - index] + index] .doctorNameObj, bold: true, ), Texts( DateUtil.getMonthDayYearDateFormatted(model .appointHistoryList[ - index] + index] .appointmentDate), variant: 'caption3', ), StarRating( totalAverage: model .appointHistoryList[ - index] + index] .doctorRate .toDouble(), forceStars: true), @@ -364,11 +364,11 @@ class _SendFeedbackPageState extends State { InkWell( onTap: () { ImageOptions.showImageOptions(context, - (String image, File file) { - setState(() { - images.add(image); - }); - }); + (String image, File file) { + setState(() { + images.add(image); + }); + }); }, child: Container( margin: EdgeInsets.only(left: 10, right: 10, top: 15), @@ -397,37 +397,37 @@ class _SendFeedbackPageState extends State { ), ...List.generate( images.length, - (index) => Container( - margin: EdgeInsets.all(10), - padding: EdgeInsets.all(8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + (index) => Container( + margin: EdgeInsets.all(10), + padding: EdgeInsets.all(8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Icon(FontAwesomeIcons.paperclip), - SizedBox( - width: 8, - ), - Texts( - 'image ${index + 1}.png', - ), - ], + Icon(FontAwesomeIcons.paperclip), + SizedBox( + width: 8, + ), + Texts( + 'image ${index + 1}.png', ), - InkWell( - onTap: () { - setState(() { - images.remove(images[index]); - }); - }, - child: Icon( - FontAwesomeIcons.trashAlt, - color: Colors.red[300], - )) ], ), - )), + InkWell( + onTap: () { + setState(() { + images.remove(images[index]); + }); + }, + child: Icon( + FontAwesomeIcons.trashAlt, + color: Colors.red[300], + )) + ], + ), + )), SizedBox( height: 100, ), @@ -452,33 +452,33 @@ class _SendFeedbackPageState extends State { final form = formKey.currentState; if (form.validate()) { - GifLoaderDialogUtils.showMyDialog(context); - model - .sendCOCItem( - title: titleController.text, - attachment: images.length > 0 ? images[0] : "", - details: messageController.text, - cOCTypeName: getCOCName(), - appointHistory: messageType == - MessageType.ComplaintOnAnAppointment - ? appointHistory - : null) - .then((value) { - if (value) { - setState(() { - titleController.text = ""; - messageController.text = ""; - images = []; - }); - setMessageType(MessageType.NON); - GifLoaderDialogUtils.hideDialog(context); - AppToast.showSuccessToast( - message: TranslationBase.of(context).yourFeedback); - } else { - AppToast.showErrorToast(message: model.error); - GifLoaderDialogUtils.hideDialog(context); - } - }); + GifLoaderDialogUtils.showMyDialog(context); + model + .sendCOCItem( + title: titleController.text, + attachment: images.length > 0 ? images[0] : "", + details: messageController.text, + cOCTypeName: getCOCName(), + appointHistory: messageType == + MessageType.ComplaintOnAnAppointment + ? appointHistory + : null) + .then((value) { + if (value) { + setState(() { + titleController.text = ""; + messageController.text = ""; + images = []; + }); + setMessageType(MessageType.NON); + GifLoaderDialogUtils.hideDialog(context); + AppToast.showSuccessToast( + message: TranslationBase.of(context).yourFeedback); + } else { + AppToast.showErrorToast(message: model.error); + GifLoaderDialogUtils.hideDialog(context); + } + }); } }, @@ -623,7 +623,7 @@ class FeedbackTypeDialogState extends State { onTap: () => setMessageDialogType(MessageType.NON), child: ListTile( title: - Texts(TranslationBase.of(context).notClassified), + Texts(TranslationBase.of(context).notClassified), leading: Radio( value: MessageType.NON, groupValue: messageTypeDialog, @@ -648,7 +648,7 @@ class FeedbackTypeDialogState extends State { MessageType.ComplaintOnAnAppointment), child: ListTile( title: - Texts(TranslationBase.of(context).complainAppo), + Texts(TranslationBase.of(context).complainAppo), leading: Radio( value: MessageType.ComplaintOnAnAppointment, groupValue: messageTypeDialog, @@ -805,9 +805,9 @@ class FeedbackTypeDialogState extends State { padding: const EdgeInsets.all(8.0), child: Center( child: Texts( - TranslationBase.of(context).ok, - fontWeight: FontWeight.w400, - )), + TranslationBase.of(context).ok, + fontWeight: FontWeight.w400, + )), ), )), ], diff --git a/lib/pages/medical/balance/new_text_Field.dart b/lib/pages/medical/balance/new_text_Field.dart index 3e20dc00..ec3eaf3b 100644 --- a/lib/pages/medical/balance/new_text_Field.dart +++ b/lib/pages/medical/balance/new_text_Field.dart @@ -42,39 +42,39 @@ final _mobileFormatter = NumberTextInputFormatter(); class NewTextFields extends StatefulWidget { NewTextFields( {Key key, - this.type, - this.hintText, - this.suffixIcon, - this.autoFocus, - this.onChanged, - this.initialValue, - this.minLines, - this.maxLines, - this.inputFormatters, - this.padding, - this.focus = false, - this.maxLengthEnforced = true, - this.suffixIconColor, - this.inputAction, - this.onSubmit, - this.keepPadding = true, - this.textCapitalization = TextCapitalization.none, - this.controller, - this.keyboardType, - this.validator, - this.borderOnlyError = false, - this.onSaved, - this.onSuffixTap, - this.readOnly: false, - this.maxLength, - this.prefixIcon, - this.bare = false, - this.onTap, - this.fontSize = 16.0, - this.fontWeight = FontWeight.w700, - this.autoValidate = false, - this.hintColor, - this.isEnabled = true,this.counterText=""}) + this.type, + this.hintText, + this.suffixIcon, + this.autoFocus, + this.onChanged, + this.initialValue, + this.minLines, + this.maxLines, + this.inputFormatters, + this.padding, + this.focus = false, + this.maxLengthEnforced = true, + this.suffixIconColor, + this.inputAction, + this.onSubmit, + this.keepPadding = true, + this.textCapitalization = TextCapitalization.none, + this.controller, + this.keyboardType, + this.validator, + this.borderOnlyError = false, + this.onSaved, + this.onSuffixTap, + this.readOnly: false, + this.maxLength, + this.prefixIcon, + this.bare = false, + this.onTap, + this.fontSize = 16.0, + this.fontWeight = FontWeight.w700, + this.autoValidate = false, + this.hintColor, + this.isEnabled = true,this.counterText=""}) : super(key: key); final String hintText; @@ -171,10 +171,10 @@ class _NewTextFieldsState extends State { textCapitalization: widget.textCapitalization, onFieldSubmitted: widget.inputAction == TextInputAction.next ? (widget.onSubmit != null - ? widget.onSubmit - : (val) { - _focusNode.nextFocus(); - }) + ? widget.onSubmit + : (val) { + _focusNode.nextFocus(); + }) : widget.onSubmit, textInputAction: widget.inputAction, minLines: widget.minLines ?? 1, @@ -194,15 +194,15 @@ class _NewTextFieldsState extends State { fontSize: widget.fontSize, fontWeight: widget.fontWeight), inputFormatters: widget.keyboardType == TextInputType.phone ? [ - WhitelistingTextInputFormatter.digitsOnly, - _mobileFormatter, - ] + WhitelistingTextInputFormatter.digitsOnly, + _mobileFormatter, + ] : widget.inputFormatters, decoration: InputDecoration( labelText: widget.hintText, counterText: widget.counterText, labelStyle: - TextStyle(color: Theme.of(context).textTheme.bodyText1.color), + TextStyle(color: Theme.of(context).textTheme.bodyText1.color), errorBorder: OutlineInputBorder( borderSide: BorderSide( color: Theme.of(context).errorColor.withOpacity(0.5), diff --git a/lib/pages/medical/my_trackers/Weight/AddWeightPage.dart b/lib/pages/medical/my_trackers/Weight/AddWeightPage.dart index 62f4e878..9c588f73 100644 --- a/lib/pages/medical/my_trackers/Weight/AddWeightPage.dart +++ b/lib/pages/medical/my_trackers/Weight/AddWeightPage.dart @@ -27,13 +27,13 @@ class AddWeightPage extends StatefulWidget { AddWeightPage( {Key key, - this.model, - this.isUpdate = false, - this.dayWeightDate, - this.lineItemNo, - this.weightValue, - this.measureTimeSelectedType, - this.weightUnit}) + this.model, + this.isUpdate = false, + this.dayWeightDate, + this.lineItemNo, + this.weightValue, + this.measureTimeSelectedType, + this.weightUnit}) : super(key: key); @override @@ -79,39 +79,39 @@ class _AddWeightPageState extends State { ? TranslationBase.of(context).update : TranslationBase.of(context).add, appBarIcons: widget.isUpdate - ? [ - IconButton( - icon: Icon(Icons.delete), - color: Colors.white, - onPressed: () { - ConfirmDialog dialog = new ConfirmDialog( - context: context, - confirmMessage: 'Remove this measure', - okText: TranslationBase.of(context).ok, - cancelText: TranslationBase.of(context).cancel, - okFunction: () async { - ConfirmDialog.closeAlertDialog(context); + ? [ + IconButton( + icon: Icon(Icons.delete), + color: Colors.white, + onPressed: () { + ConfirmDialog dialog = new ConfirmDialog( + context: context, + confirmMessage: 'Remove this measure', + okText: TranslationBase.of(context).ok, + cancelText: TranslationBase.of(context).cancel, + okFunction: () async { + ConfirmDialog.closeAlertDialog(context); - GifLoaderDialogUtils.showMyDialog(context); - widget.model - .deleteWeightResult(lineItemNo: widget.lineItemNo) - .then((value) { - GifLoaderDialogUtils.hideDialog(context); - if (widget.model.state == ViewState.ErrorLocal) - AppToast.showErrorToast( - message: widget.model.error); - else - Navigator.pop(context); - }).catchError((e) { - GifLoaderDialogUtils.hideDialog(context); - AppToast.showErrorToast(message: widget.model.error); - }); - }, - cancelFunction: () => {}); - dialog.showAlertDialog(context); - }, - ) - ] + GifLoaderDialogUtils.showMyDialog(context); + widget.model + .deleteWeightResult(lineItemNo: widget.lineItemNo) + .then((value) { + GifLoaderDialogUtils.hideDialog(context); + if (widget.model.state == ViewState.ErrorLocal) + AppToast.showErrorToast( + message: widget.model.error); + else + Navigator.pop(context); + }).catchError((e) { + GifLoaderDialogUtils.hideDialog(context); + AppToast.showErrorToast(message: widget.model.error); + }); + }, + cancelFunction: () => {}); + dialog.showAlertDialog(context); + }, + ) + ] : null, body: SingleChildScrollView( physics: BouncingScrollPhysics(), @@ -246,12 +246,12 @@ class _AddWeightPageState extends State { GifLoaderDialogUtils.showMyDialog(context); widget.model .updateWeightResult( - weightDate: - '${dayWeightDate.year}-${dayWeightDate.month}-${dayWeightDate.day} ${timeWeightDate.hour}:${timeWeightDate.minute}:00', - weightMeasured: - _weightValueController.text.toString(), - weightUnit: weightUnit, - lineItemNo: widget.lineItemNo) + weightDate: + '${dayWeightDate.year}-${dayWeightDate.month}-${dayWeightDate.day} ${timeWeightDate.hour}:${timeWeightDate.minute}:00', + weightMeasured: + _weightValueController.text.toString(), + weightUnit: weightUnit, + lineItemNo: widget.lineItemNo) .then((value) { GifLoaderDialogUtils.hideDialog(context); if (widget.model.state == ViewState.Error) @@ -263,7 +263,7 @@ class _AddWeightPageState extends State { widget.model .addWeightResult( weightDate: - '${dayWeightDate.year}-${dayWeightDate.month}-${dayWeightDate.day} ${timeWeightDate.hour}:${timeWeightDate.minute}:00', + '${dayWeightDate.year}-${dayWeightDate.month}-${dayWeightDate.day} ${timeWeightDate.hour}:${timeWeightDate.minute}:00', weightMeasured: _weightValueController.text.toString(), weightUnit: weightUnit, ) diff --git a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart index 1d4fba82..8bd180fa 100644 --- a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart +++ b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart @@ -27,13 +27,13 @@ class AddBloodPressurePage extends StatefulWidget { const AddBloodPressurePage( {Key key, - this.bloodSugarDate, - this.measureTimeSelectedType, - this.isUpdate = false, - this.lineItemNo, - this.model, - this.bloodSystolicValue, - this.bloodDiastolicValue}) + this.bloodSugarDate, + this.measureTimeSelectedType, + this.isUpdate = false, + this.lineItemNo, + this.model, + this.bloodSystolicValue, + this.bloodDiastolicValue}) : super(key: key); @override @@ -42,10 +42,12 @@ class AddBloodPressurePage extends StatefulWidget { class _AddBloodPressurePageState extends State { TextEditingController _bloodSystolicValueController = TextEditingController(); - TextEditingController _bloodDiastolicValueController = TextEditingController(); + TextEditingController _bloodDiastolicValueController = + TextEditingController(); DateTime bloodSugarDate = DateTime.now(); DateTime timeSugarDate = DateTime.now(); int measuredArm = 1; + bool isButtonDisabled = false; final List measureTimeEnList = [ 'Left', 'Right', @@ -69,6 +71,7 @@ class _AddBloodPressurePageState extends State { measuredArm = measureTimeArList.indexOf(widget.measureTimeSelectedType); _bloodSystolicValueController.text = widget.bloodSystolicValue; _bloodDiastolicValueController.text = widget.bloodDiastolicValue; + validateForm(); } } @@ -78,38 +81,44 @@ class _AddBloodPressurePageState extends State { return AppScaffold( isShowAppBar: true, - appBarTitle: widget.isUpdate ? TranslationBase.of(context).update : TranslationBase.of(context).add, + appBarTitle: widget.isUpdate + ? TranslationBase.of(context).update + : TranslationBase.of(context).add, appBarIcons: widget.isUpdate - ? [ - IconButton( - icon: Icon(Icons.delete), - color: Colors.white, - onPressed: () { - ConfirmDialog dialog = new ConfirmDialog( - context: context, - confirmMessage: 'Remove this measure', - okText: TranslationBase.of(context).ok, - cancelText: TranslationBase.of(context).cancel, - okFunction: () async { - ConfirmDialog.closeAlertDialog(context); + ? [ + IconButton( + icon: Icon(Icons.delete), + color: Colors.white, + onPressed: () { + ConfirmDialog dialog = new ConfirmDialog( + context: context, + confirmMessage: 'Remove this measure', + okText: TranslationBase.of(context).ok, + cancelText: TranslationBase.of(context).cancel, + okFunction: () async { + ConfirmDialog.closeAlertDialog(context); - GifLoaderDialogUtils.showMyDialog(context); - widget.model.deactivateDiabeticStatus(lineItemNo: widget.lineItemNo).then((value) { - GifLoaderDialogUtils.hideDialog(context); - if (widget.model.state == ViewState.ErrorLocal) - AppToast.showErrorToast(message: widget.model.error); - else - Navigator.pop(context); - }).catchError((e) { - GifLoaderDialogUtils.hideDialog(context); - AppToast.showErrorToast(message: widget.model.error); - }); - }, - cancelFunction: () => {}); - dialog.showAlertDialog(context); - }, - ) - ] + GifLoaderDialogUtils.showMyDialog(context); + widget.model + .deactivateDiabeticStatus( + lineItemNo: widget.lineItemNo) + .then((value) { + GifLoaderDialogUtils.hideDialog(context); + if (widget.model.state == ViewState.ErrorLocal) + AppToast.showErrorToast( + message: widget.model.error); + else + Navigator.pop(context); + }).catchError((e) { + GifLoaderDialogUtils.hideDialog(context); + AppToast.showErrorToast(message: widget.model.error); + }); + }, + cancelFunction: () => {}); + dialog.showAlertDialog(context); + }, + ) + ] : null, body: SingleChildScrollView( physics: BouncingScrollPhysics(), @@ -124,6 +133,8 @@ class _AddBloodPressurePageState extends State { hintText: TranslationBase.of(context).systolicAdd, controller: _bloodSystolicValueController, keyboardType: TextInputType.number, + maxLength: 3, + onChanged: (value) => validateForm(), ), SizedBox( height: 8, @@ -132,19 +143,25 @@ class _AddBloodPressurePageState extends State { hintText: TranslationBase.of(context).diastolicAdd, controller: _bloodDiastolicValueController, keyboardType: TextInputType.number, + maxLength: 3, + onChanged: (value) => validateForm(), ), SizedBox( height: 8, ), InkWell( onTap: () { - confirmSelectMeasureTimeDialog(projectViewModel.isArabic ? measureTimeEnList : measureTimeArList); + confirmSelectMeasureTimeDialog(projectViewModel.isArabic + ? measureTimeEnList + : measureTimeArList); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -166,18 +183,22 @@ class _AddBloodPressurePageState extends State { showTitleActions: true, minTime: DateTime(DateTime.now().year - 1, 1, 1), maxTime: DateTime.now(), onConfirm: (date) { - setState( - () { - bloodSugarDate = date; + setState( + () { + bloodSugarDate = date; + }, + ); }, - ); - }, currentTime: bloodSugarDate, locale: projectViewModel.localeType); + currentTime: bloodSugarDate, + locale: projectViewModel.localeType); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -192,22 +213,30 @@ class _AddBloodPressurePageState extends State { ), InkWell( onTap: () { - DatePicker.showTimePicker(context, showTitleActions: true, onConfirm: (date) { - setState( - () { - timeSugarDate = date; + DatePicker.showTimePicker(context, showTitleActions: true, + onConfirm: (date) { + setState( + () { + timeSugarDate = date; + }, + ); }, - ); - }, currentTime: timeSugarDate, locale: projectViewModel.localeType); + currentTime: timeSugarDate, + locale: projectViewModel.localeType); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [Texts(TranslationBase.of(context).time), Texts(getTime())], + children: [ + Texts(TranslationBase.of(context).time), + Texts(getTime()) + ], ), ), ), @@ -225,17 +254,23 @@ class _AddBloodPressurePageState extends State { loading: widget.model.state == ViewState.BusyLocal, label: TranslationBase.of(context).save.toUpperCase(), textColor: Colors.white, + color: isButtonDisabled + ? Colors.grey[900] + : Colors.grey, onTap: () async { - if (_bloodSystolicValueController.text.isNotEmpty && _bloodDiastolicValueController.text.isNotEmpty) { + if (_bloodSystolicValueController.text.isNotEmpty && + _bloodDiastolicValueController.text.isNotEmpty) { GifLoaderDialogUtils.showMyDialog(context); widget.model .addORUpdateDiabtecResult( isUpdate: widget.isUpdate, bloodPressureDate: - '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', - diastolicPressure: _bloodDiastolicValueController.text.toString(), - systolicePressure: _bloodSystolicValueController.text.toString(), + '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', + diastolicPressure: + _bloodDiastolicValueController.text.toString(), + systolicePressure: + _bloodSystolicValueController.text.toString(), measuredArm: measuredArm, ) .then((value) { @@ -275,9 +310,43 @@ class _AddBloodPressurePageState extends State { setState(() { measureTimeSelectedType = value; measuredArm = list.indexOf(value); + validateForm(); }); }, ), ); } + + void validateForm() { + print("_bloodSystolicValueController "+_bloodSystolicValueController.text.length.toString()); + if (measureTimeSelectedType != 'Left Arm' && + _bloodSystolicValueController.text.length > 0 && + _bloodDiastolicValueController.text.length > 0) { + setState(() { + isButtonDisabled = true; + }); + } else { + setState(() { + isButtonDisabled = false; + }); + } + // if(measureTimeSelectedType == 'Left Arm'){ + // setState(() { + // isButtonDisabled = false; + // }); + // }else if(_bloodSystolicValueController.text.length < 0){ + // setState(() { + // isButtonDisabled = false; + // }); + // }else if(_bloodDiastolicValueController.text.length < 0){ + // setState(() { + // isButtonDisabled = false; + // }); + // }else{ + // setState(() { + // isButtonDisabled = true; + // }); + // } + } + } diff --git a/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart b/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart index 2ed34c0f..6f186104 100644 --- a/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart +++ b/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart @@ -27,13 +27,13 @@ class AddBloodSugarPage extends StatefulWidget { AddBloodSugarPage( {Key key, - this.bloodSugarDate, - this.measureUnitSelectedType, - this.isUpdate = false, - this.measuredTime, - this.bloodSugarValue, - this.lineItemNo, - this.bloodSugarViewMode}) + this.bloodSugarDate, + this.measureUnitSelectedType, + this.isUpdate = false, + this.measuredTime, + this.bloodSugarValue, + this.lineItemNo, + this.bloodSugarViewMode}) : super(key: key); @override @@ -99,42 +99,42 @@ class _AddBloodSugarPageState extends State { ? TranslationBase.of(context).update : TranslationBase.of(context).add, appBarIcons: widget.isUpdate - ? [ - IconButton( - icon: Icon(Icons.delete), - color: Colors.white, - onPressed: () { - ConfirmDialog dialog = new ConfirmDialog( - context: context, - confirmMessage: 'Remove this measure', - okText: TranslationBase.of(context).ok, - cancelText: TranslationBase.of(context).cancel, - okFunction: () async { - ConfirmDialog.closeAlertDialog(context); + ? [ + IconButton( + icon: Icon(Icons.delete), + color: Colors.white, + onPressed: () { + ConfirmDialog dialog = new ConfirmDialog( + context: context, + confirmMessage: 'Remove this measure', + okText: TranslationBase.of(context).ok, + cancelText: TranslationBase.of(context).cancel, + okFunction: () async { + ConfirmDialog.closeAlertDialog(context); - GifLoaderDialogUtils.showMyDialog(context); - widget.bloodSugarViewMode - .deactivateDiabeticStatus( - lineItemNo: widget.lineItemNo) - .then((value) { - GifLoaderDialogUtils.hideDialog(context); - if (widget.bloodSugarViewMode.state == - ViewState.ErrorLocal) - AppToast.showErrorToast( - message: widget.bloodSugarViewMode.error); - else - Navigator.pop(context); - }).catchError((e) { - GifLoaderDialogUtils.hideDialog(context); - AppToast.showErrorToast( - message: widget.bloodSugarViewMode.error); - }); - }, - cancelFunction: () => {}); - dialog.showAlertDialog(context); - }, - ) - ] + GifLoaderDialogUtils.showMyDialog(context); + widget.bloodSugarViewMode + .deactivateDiabeticStatus( + lineItemNo: widget.lineItemNo) + .then((value) { + GifLoaderDialogUtils.hideDialog(context); + if (widget.bloodSugarViewMode.state == + ViewState.ErrorLocal) + AppToast.showErrorToast( + message: widget.bloodSugarViewMode.error); + else + Navigator.pop(context); + }).catchError((e) { + GifLoaderDialogUtils.hideDialog(context); + AppToast.showErrorToast( + message: widget.bloodSugarViewMode.error); + }); + }, + cancelFunction: () => {}); + dialog.showAlertDialog(context); + }, + ) + ] : null, body: SingleChildScrollView( physics: BouncingScrollPhysics(), @@ -186,10 +186,10 @@ class _AddBloodSugarPageState extends State { showTitleActions: true, minTime: DateTime(DateTime.now().year - 1, 1, 1), maxTime: DateTime.now(), onConfirm: (date) { - setState(() { - bloodSugarDate = date; - }); - }, + setState(() { + bloodSugarDate = date; + }); + }, currentTime: bloodSugarDate, locale: projectViewModel.localeType); }, @@ -216,10 +216,10 @@ class _AddBloodSugarPageState extends State { onTap: () { DatePicker.showTimePicker(context, showTitleActions: true, onConfirm: (date) { - setState(() { - timeSugarDate = date; - }); - }, + setState(() { + timeSugarDate = date; + }); + }, currentTime: timeSugarDate, locale: projectViewModel.localeType); }, @@ -288,13 +288,13 @@ class _AddBloodSugarPageState extends State { GifLoaderDialogUtils.showMyDialog(context); widget.bloodSugarViewMode .updateDiabtecResult( - month: bloodSugarDate, - hour: timeSugarDate, - diabtecUnit: measureUnitSelectedType, - measuredTime: measuredTime, - lineItemNo: widget.lineItemNo, - bloodSugerResult: - _bloodSugarValueController.text.toString()) + month: bloodSugarDate, + hour: timeSugarDate, + diabtecUnit: measureUnitSelectedType, + measuredTime: measuredTime, + lineItemNo: widget.lineItemNo, + bloodSugerResult: + _bloodSugarValueController.text.toString()) .then((value) { GifLoaderDialogUtils.hideDialog(context); if (widget.bloodSugarViewMode.state == @@ -310,9 +310,9 @@ class _AddBloodSugarPageState extends State { diabtecUnit: measureUnitSelectedType, measuredTime: measuredTime, bloodSugerResult: - _bloodSugarValueController.text.toString(), + _bloodSugarValueController.text.toString(), bloodSugerDateChart: - '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', + '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', ) .then((value) { GifLoaderDialogUtils.hideDialog(context); From fb0a67e5bd2a904b44d94ed1ad4500c47e9fd4f7 Mon Sep 17 00:00:00 2001 From: "Mirza.Shafique" Date: Sun, 25 Jul 2021 11:34:57 +0300 Subject: [PATCH 36/59] PAP 828 and 792 issue fix --- assets/images/bc_parking.png | Bin 0 -> 1216174 bytes lib/config/localized_values.dart | 7 +++++++ .../AlHabibMedicalService/parking_page.dart | 9 ++++++++- lib/uitl/translations_delegate_base.dart | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 assets/images/bc_parking.png diff --git a/assets/images/bc_parking.png b/assets/images/bc_parking.png new file mode 100644 index 0000000000000000000000000000000000000000..64633516c9128050a8c9386a46fac329f7e3c3ef GIT binary patch literal 1216174 zcmbTd2Ut^I(=QrID4|F<^e#kdC`u^Odk-jGdK2lr8jwz?BF)f?4I)VINC{Pn(SRV$ zfS^$VA_7vp`M=-$z0W!Kp4$!&d9t$i>{)Bpnl-cLH?uP=%=8&RTp$1dz+h;g0|x*o zc1a&G8Yr6%+*zRINbKbK{M1pY-5=BFm4`A>%ewx$*W z+JPaS0*cZ%q}-tjiUK!b($E|73NV;K&TpE@8-t*PmM z`uJat#ozxwU4(||Mv%n#_k{c}sY9)!gFI#6o}q!^A?}{K5u{-X|07M1vUZ54Ygk~2 zbztEA|6VAI{~oe{w)Q^@0}~K8b#?a*_(u-N|L~Njj%%2wn$SNKQnHFtvP#xaS!H=e zWksljth}H2+ae^;%lAI%MkrigOTbW9`vw$t36&5*ROuZOaSl9#NzyQ_zkg1el8l!C0gf|L^MriYZ5 zJ4{vyrT|lrzj@=opVtX=5C2CG{`+~4|DVsBhxn5Aq3iwsZ9f0(&VLk0*}ylHw6xLx z-al5J!T)aE_Z9e;&M3RO|Faj=gxvp80#6U2e_!_f-=2a0VjJn>Nn-l{pcnr|78>Xk z7U>$|sp(Cct^aSzCqt4z=AW(mU&6@zpXL15z5ijG|2H|wcKp-)kI^Fi_>bB13?SLM z5Ry^TaZ`r?m;eAn9Zl;fRM>@YW4&JlU#c4MgdtXW$NEEm=hGF_h*nru87o~5D-fD& zt04r<@XV~Gr|9@OqVA>=!JP>N&msh<+^CC$Me=xu7@5ZOJPaE|vg#!5>Qd+Bg!5lh zS+VK1^b(sK!e>9mKESJNkJ}Sgot>@$6?y_bJntXej9=`4Mea44FnH#ef}EIO7CN6GGuG8NwKZej`T> z;KXtIG_{~5P_03;?qDha;+PNS-ADit)c`K@dFO2O=utP)MKw563h0VF6GPFrBK@SaXo6BDR~4wLkQ_P8B@B8n00$9zgvOE*76t2RZqt`_ypg5<6$tQQ zU?a_v=6YL6QTIS-_h2E55hOhDaRIYC0-m{;sXfUlD5gQ?>a?K1R}a7{xOcAfw?^Q? zQ{W(@=YIwY;YYCua-xa?PFU3brXZ#GeE(GI9n5@1%P;RkRc%O0gYUPyAi?(+1@NSH z4v6=t0RbDETM*h$h4^h|M0==;4c+;RvtOt%uHS>zDz@E8hqz^vttt0V0|h*N-0$&( z%zij3IORfxhCi?{@s)L?20K+Dbs-=lUt7OsN#po{kO%gD;`Mo(I9B!=?nhdHI8KRltcG!Wbl6S-5`sHOdm#^g|so>E{nL;Q}M z%>HZ*Ay!pgeXwb2`D5M6ymX@VmIdl;E4#lNj_kN2^Vi6Te^&$2rcX0btPy9tSbm?WeF=ZlgI*$jJvG6nUnJxv436WmtZ;cluD?1##h;=6sSe_^|Tg<6sU! zR$GGMF#=3pF>8JjKKONUv-0F}J;V8g`vLcZQ<-ymoUe|bvIa%B$ZVQVZlR+^VM+j( z31lPm72p03=TjzP{1^6|GhP6LAG<1B<3SWpMGGN@4bUP|7p}YVyBVWhk30+-E@ z-SKQt<03a37j{G1E&>rr+n=&7kw4912FUzZT+681q?%-+_m+K=o8QHBp}x|~Q>BfN zLG_UM6Eo=*1qNh|>TO)v=*#KtOf(USr1&$CrbrdY&+mJsjiD_(Dkd%&&NXY-=AYHI zpKyZUFD_h96QeZaQ^pa$E|{Wm`dqO&dyM7IGaXp- zF+-8(Fq-J1u+23K_HmarV?`d8q%j+Cb{upKs&D>yax;vGbG>`DuAsU)I8t>Z4mP5c zMp6&L(G*ldIJy0c49r`J*pkXVYrj>JZ>)!HM?JBSVhz#Ep(Tk9(JgV4eMM(v21eWX zcrUa|H3TOeR^T!$OTGZdS1VqP)vOcqt%i?c$SiihPjl*Vd(^k2B1R6MMDdj?wm5b{os)(!{EB{#1kQcLla-9z*ul2BQ*#`SvFXi?UP0HyPaO;#^9}5lPW@`#}$`)GMYE*k@s? z&eBW7h>3a)?(AS5!ND)l7;64FM0CZ$`MJr?T{1QW=|%Y-^w>evuu``5l?M2sB<##; z7ExmxnxH(wl{J!Z#ouK05kyqM^kFa$)J&LfkGN?{@hoY4M-1Gw(9Vl$kBW&QZ%e%c z8t|Q0WccFw2EWp|MEq@msqt4^9vE5a49qvyTxqi{;?yO}4s14)cQc$vnTyxYhx78S z-x3PF>{uZ(3w@}`pBwL@8ZDH4B_FeHIqL@btt4@Jt`nUfK4128qgl_V{@$#54n^CY zG*4P*8}-Y|%NBXWL$(b672KA6!N(52uKh0}AW*$W9jf}V)&{w8!8j8+*Lp}z9bjG) z6{3}yp)Mn|1HaNeoPidZSV=Z7U^i6gm~3UEg!9b*T~LhPvHaN-v}o^Mc1;`z_EWN) zKZ+G;$*0uaTRfv$QyOJrw$j1cHVSG6*HDUs86*iv`k3A9@N_{92k9C27qq{_E5teH zd)6GV3WfLWDS*JHfRt{w$b$DN;q^L|S6>B#2(NLK`E^b#YLFaJ&LRdmQ!A<2btwT~ zVMPY^TDa{~Tkx~Vb6&=J5sj;bbsH#MP4xOohxJkb-GqOlNZJ!N$DhX`rmsu4d5sHJ z6--U@$}qxWJ(YRSssiF3CRr~g_gT3=GmrrEwOA_@k{2e~$`wM>pCnl)u9XA0+w^^; zY5}H%U|wlOgpS$g=dxAaBDw_tzF(wWVL1U4Oa%~C<*efuU*91!a>R0x0mZ3`?bqGP zY{YL@u`%6AK$lg7u5{1{3N95XkArSdeV^cnrd2(wQJ1J#jeQy zWOB^_CM@qFN(}6MupK|u`zZM~uC|o}D(dqx-%W#_bFDL|sA7)gj*rEH2P#n-Wbupl zP_=fQxT}l<)GNsCu1%AW|{FIsa}63b^mPJ1#zy`C#%9}ANdIi7nYD^?MdV=!@QhgxGrIIgn` zM!eF9&on{3ny5@tFKh9R7g~O{zT^WIfU5a+?6xJ3G{R4fy{To0D@{>ywbl_GN$L_jLkSnJa2M{rxdiInA|aFLcSFyyo-s6 znYHoeeCB}m@8)B^Y1NS!b7Ed-if3tcd(6}MI>nuD-Tufor*V3-oM#tgMr2r3Z9j@R z0i*Tfbf_$tzuG!6n1gi6E!~N^F%Dkn@53QecSEkK!nl1{aBz;vD z*iBl$G`}=Icrv*2^5kRXIpq9(<(cskF>-&ls*b)^fec&^5VibdNW0)0c1+x);~z*P zp8nj~Ut3k%GmBMKb8a4`^iJ%f3iHnj=p51Kk4HMKk3>xwqo5jhXawDI$ReMz4)?i$ zsd#=)LsC{J=3_S=4Q}ULERRgMY5)CxDnf|qEHF~&v1_xH-#Sq zg%w>PPJ;|-nGO~3{!}I;I25{Y{QC#@7HU3Rtxe8A)D5Ng>jxtza3l!R(-=kUKhA^k z8`0m}V~i~!N8%?4r3g~MaQDGEG@@4x*X&kKoBk_%d|+KTI7dx}PEHOkNix%v@ZY>e zzDajLvkPmn2{C%uD3qDLqqL3BY+%l~N?-IL6->V`?v$mT?fl!#!NiN;+-Ou)lkQ5J zID~>rwg~hJ6G=JxILQ^97mC>n8j@?8fW2vFaAO3gWguV_swgv(chDMKdBd4CeFVZw z_Q?ljj|Xw)TWPHmnedrx6vJFCgh+9ihHn;(vMoCe0tCLeMcst(wcS`@d^_u2eswDk znj;L)QCchCKR>6hXH&z5k13gv9Jr=$%Fa{oDO0wfC4P$#%;7fuONBN?*-uOMN|6C& zRH9-ttmS@-1mN-UaZq;JokDl@^2!#1@)r5bH1Z6~+osq>PoY(%brz|= zb5fn1nly~ZvofCXosE#0&w1N6F$=Q?t+j*4OJ{%aKpm+S22xr%23o{HCu7d%)KM4N z=JVnYuMGZz#hvyJCS5jN=0-T4)t z`|803;h&QvRw3%}3q#+r;x)gfmPUy-c-R$J-ONH~F86yC$7|Czw#A6)Bl0G8#x#mA z(OT)&H|=+rtUQLkCwJ!Nh9x|vui6Mwa;@<4xD1?f5_%~8Yj33k$THu~i}6JqGOj6} zY}GFAXOCTm4fR-{MO_L5RYU3`{T$NJ#Ql@sQgF!9kKZL2vNeZBl!LuD)QlBg(;8_< z?lf54!(62rTj4E9$iyC`qgb@kea;xMvQ+@tSvNkhsp%&ibc-y00#$sV<}$aMz^|Wd z%0kB3@MGsoxflD3Na)*+tn0k<4#CWp8e?u#rAB+?Z1s7k8%29>nk2Zy!8HP+(tVG0 zkz^KyLm;i!Qd9L4`AOxO0pZ%eL@Bn_i)*ZzS__}e%i9M-pTX=T3@nw=4IIfKxhq>{ zEc%+tUrR+i9xp^N;K0>w!(1Fu#AoT5)prM5IM(b1JV#N_nrRCG+_wZM-vihJ@4WZc z0+v0eZ59zN*x!NQtGQP`*2BbdEv1=~>Xc|6N!)%=ux02bMRdLl*wpFf5Pe}$)q<`u z#&9*dCWcm2Oe))G2wWrgqXg#-+gH5mbEf48c|~plxH)97Rvh+ZtHKB}j|u6lbs1b= zOtwa({+Np)(we@d^`j9ts;=rgG>Hl)o7jytqECbm+9*5Jd)S@@P{(GS7>0-~3KAZJ zxu}3C2cjX_(s{j`r+GY&N0vsTt`T;-a`;a%JUcIo!#! z#iyPSDz7Je&CN+%+NT$-jaRa?v$6HN*S8$8wS89JI=?KtZ@lrIi`;0^+T>m~Ioaec z(`>%2{wxe}oDrJyn>F&yS-`jntJ{;5$0bfcM0k@wJGezmJYLk48tgwsM zz8QsuE$2RIQEx161`YK{(|_(@KY!GRkLkBqsFP~+j2Pm2W-&!8`0lR%lT;NvD^hXv ziv^bv`xZG$##<=|3WXP|{TzTUYaCuqpr~yL&xSto%g#}r7_fABew_HTv=>OW)^|K1 zT8&upTZ7r|eB0^92tQ2@cWP;*V@wmqg^wMc(tGnZLU;c#9xC8tx@&y7zh9wN(qHV5 zq{~U85RIRCSN4?FX@zvaAzlBZrn+G>c)*hup{hRiR-9`HQCdta_E@$Xe3lajQi^5>*d909fTUp&V)+eUV79fQ_?KfZFX ze#x-@PPAfWP;A;o;!qVvv3Zs`IRB8QiR9#UL4~_|v#vv?6`poMN<2(%q}3(G zD=<&6|3VuBl(SKP3;m%7J)i0JULm_nr5s>z+}mH?2^037qQiwJlFvt|85z#x2yhh2 zt|gOv0&j!wR>{U@ADNNf;x8ZjTt&%Iae6Yms!$`_t3Lx`2-X)E(DfS@_|w;t&9j>o zoJ^*Rn=$>LL;8n18F~h^GnuhUH6FknwMM9qV^%O1Bn|g#2Lo1BSJU<{34_8dKOD#V z7oDIJ;RyM{UZ+g0IkJg7GdlyM#yB^?x4dwJv6Rb@z_Y`~&B%KJMbwLoY>fMnr~PvK%; zrWEET3^b@N%q99_j#vUK*WU3h^S7YM(nhM$*_c>`0nMq5S(2;M#=`sEBuNoh4`$h< zWT({5UcSMXJVGPtGNeo2{Qf58o}J25i3_vaA(WB=sDVCGHg@0SsU4vm5vQK~h>-m+e) zY2<3am67nwV@9lM?GNSTu3@gU_`x*X5LbFrT{~uo_ko{O2r|9frR*v9^vy=w;*{AR zQ!b*v3&V@PspxLJXr~$<$+zpFOlDp37U$36j9({lF&Q!Ni??IKJ?7F*v1MPg+UswW zaLZKsekI*+^tJ0C^1ZL~+uV!YD-W6q-@V_uuBSwV&}t^WD@^9{4_H<37hkykjP8av zC?uqWvv%E(1L8uyyutgYT;v{H$M7kf#r{;~YnxHkqng{#-ox)3xox97r*=%ze6QID zuXH4PjX&x5sBBbW*Z*c>z z4uK$E_PJDDcd6=7^G8x_)<4>&Rk|$oY46u0zo-%iigK5(cY1w0xNLqp3a)?GV)dt; z1^9K|Sgtc3x3W&htpRCRXdw3?&rb(Ae&Z_4kp%eoWwfx+yunhPODaNXjb5a%^h?my z)3>?iHCeD!%8Ay`#)@n6vNBYO_qDF+7!??6ZiR0)rfhpyda$^P{y|yfZ*v-N#;!Pz zI+pHauzE1mmwvERK(@@!7jEpXoQapxX;Q&Mw$L5jhG3s276Gla{P`b&MDHgS56TKI zzJC4)_Od~g^7h^A@C&0`x=*JIDeOcnar|n`xOLT^@*4BLBE7a0eUYc`Y|4NNRRf@N z0>n3DsZ!D;e)#ZNTf;OOJsfnfhJEnV@y$G# zwG88CuNOtwR2>T^m$wGq_gn`x3)8lQhRvH{lRJE$8P5{#9{gb)GIL91d$|&O9@e;= z^eFLBgt+w|IjAXD0>%Wgm}#qt{A3m4vY;T9x;X_+8!AQ#p&~y4`N)7p$2#IZ%B*m$ zDcbl&)}gn6TExv9`~X7u9K^Xlz>e`>8CJ=SF0E1wKO_6L=I4J}3VLQp02);vFhab< zo0!Nc1~Z3lEk7X>6jAbXRghmrs&wH-Qv( zA!_Co)fzH1hA#rrN?1sSpeS6AM#rv@$ECM33X=-Zu%# z0damyQY^F@HIM{T^_AD=lt;GN;DWNMNvG~<)!HrcMO#v!zom5+)Tv&z&cDByut(fb zzc^6O-RZ2X^5@B;!%U|io^lReM4m^SU-|33p6mQ)%y~HXZ~kAv+$(4I2M@IHJRj6y zZ+vR-UKY%B;(aF@e3cjbWHNgWac4FI>1lY{;QA7Ys&P4U3xIM_GW`th-YGpqJY7(r zk<1kPCT9FynNG@*LSnkbD9*QxbcDyBo+E?1+!l|lB^hiAb-I_Q&TJ&!RskMnqoz}t z#O-Xjil^l%ETp7&#Bx|Q23J1BbHZ!{l_PRj_YiPUL$J( z3AYvbH*XFclV!6QZp&Z z1y?n`Jz<_k7fE_1&~uozN4G0@(3hM+|d*HakKU12d6Oh#O6 z8r;WatQkXq5HU0vh(d;Sn*pQYmq`q%w3mol5lBXyovEN?uJ*a!(8a5@yoL{7Hjjsc zEi5+rwO2a8=&Npi!8zL9L=f>g3`$SIIPMON6(t&!E)7VGFYp+CzWG+ZvBSb*e_2Zt z|3fVB;H~oo)!he&ink6^=02|s5>@u=WggIFvH(z@3xXM8%({PT&F|vFl;40Kj*sh0 zPA8F&d{4XmFF&}^8DUN9BE%;<-LJ2TUXC#t>yzeJ}Xp-^$|HAF)m)di$}IaK&--@qPyv2=!15~qqTxhLo5@0l5{Og zjbloT6ZxfaMWK}i!K!@F9M%@WyPqhG9@R;S`nY#bGB2E@Ry=~1Jf-dSXmg76OM;~6 zpv**yex)*5c5$wDs+BbW6*Lz&T34gfqEVZY(8xBNNMyadtK#4>b;8_Y8!nq|6qA?J zU1*~GsBoiEdyS1DQw0pv$fSL~wR|L+c>@Tpzx|`i&OP5a=Bbr*+F}vob@4|c>G1gp znNt@zUJ}F91K?qPXYyLP?Doidirlb5D ziUrjY^l40cHfUC8C*8BuwcYJG00H0SG}6*~&LXTY(RPP2bH6`;j`2GD`4Smh_}wa| zJ6bQaw+Q%1O~X|NwvQ1nw_!#Lk{N-E;peNAqZVn1Qif7cE}PYl%RrSbhwHrvatB$j zm&a@(fzw`j$96`~%S-%i_*(5r}Yl)R_|Y_Qc_ z!GcxD?j}6lA2M!lmCtZ{K8BhNCm?90*;Ha@A;)gmt<>*T6OsQI_BD#YJ=a7?d zC;b#d!J%nzN@2hl!ax^Z2X0`?1BF{#&B)>el7WzGg<3?%1j|H+^pA<;L~aGstl$df z&r<;I{zuUju8o`FWzobg5E_ZMR?+m=cPf9p%>vPFYuedL>(g%x|4=((|MOwqMfvoP z^E_{>_60}Mo)^$Sv~$eHnqaLtmEOIj9=gxxKo@FPOrD&skisG;;C+2K#ZcQ%?M;x) zEsy2MZjWyr!EYRmyuKs>*zy&MAzG04?e2}5nY1pcS}QkvmWv*7y&FqWwBE=(=L9E9 zj`C#$r?fDdVqLkO_9WEN$fNR4;=#`_21q8x!$!wey$rqdr zkZbTvw9L8n1pgXJg;%OwZ*R|PN#&H1uTCW(z_xcSKxGYMr!g3kTP^IU?Fzc(ESoJH zw^DV$hgDiFA;$@fvadz+n2Whl$jbH;luj?VFqC zmo5C`&gYZrX=ejZ&y!W&8a?vRw0w+Y5^g+-3ja$saPouyv+?>RFm5}``Ay5Jd&P6^ za$~*Dl@W)BY!t|FFuJa(W6f%YV!lmkc1OODyr)AyJ;MjHEFeiYrY>Ejl_{PAX2B~h z^oF%vi8vFkJaPG*t~p4E>Te3;7f7wyZCdmk>oaLC8hTEG?fga~0g4>tAg9Hjr$#eE zFQwef#9uI-VE??xa=uEQNXk~vJoT+`?bo%{0=@{D+>#hhNjYTTT9?DhK(oGnNhD>Z zPiI7_ys;_w{^NLat z@wtSk6rmakt#l<`#*zlkSw#y{c1Eo6P%GsGJ^s>0rUl8`;Oiw*oiSj(Bzc&eS{g&b zTXCYKLWPaZF*-NMTX`<&FkJYXi!ADy!=&J{Dl#|!#9jOu2`nzDLTX!<9tuviwhK1j zbE4h}5}Y)4z4JuO^g`A#@U31^3NIt| zRsnQYzNqCh`_+ z=&L_Pe3T1zUswl4$6#JvUO2xId*zJ(6*Sx#Ki9eWa{a7aslQ9#K%y^v>6qH&Fr9?+ zMa5kEn+6u%a~>Fyn~REz5i#l+FpSEs1}}B^1Nmi&jiu&wi(;p}-!%FvcMf&0^)xEV z$Y^AfaDl$4gPPZ5jh!VNnJ;-`quLp6V!<=bYXxlA7a|AZ&rTPj!>+9 zp&x9hj213PsX|fVMv0yQ_j}PEL(0}c>vn0YuGC{g=SLwVM8JPBFQyfCaaf@n3GP zpS7bxg>{=nN=3zNwO1P(`~${t*IaS-@}P=pDfZvuZV7dkaJ?L)gm{$)h!GtDVI^n; z6haO6>Z=O0d|vM4dDvzuLryv}UPIrPv)=0n=P;rWq>5S;c$yR~XjBQH+(;4CO^j=3 z@3^Pe7|awSVEM&x9Wq(O*8RapGH)_f@%@605y+^f-C>7`v)#;568`RO{ZpzoA?pUj zuYK5dnXQ9gVvWXfPz>e*P1>GDoVeWr2xGj=z0D4w!q#0~n_k_nI)VI3zm+1zm}E(a zXY-6i-(aaT?RMCi8hJ9HGs*Er`1I1_S8Laqz->R0U>9#?-FVuze; z53!Zyiwyo$A8E5|QtWFHht&p~Jo4h@92|-iA9x)BL>BBQmWO&XevT0Cklnz^SCP*u?K1y{ew@xtfEIoM~!p+~&{$aG`|@^=5O zlA82$Pdgr+qj)3v+^C?2-SWql8i-XN)aanUY~7Hh$dTg7S8pNo;>Z-gS5gkm#;5uQ zY5R$COokRE-M5>Fdr3$x0^OpQkG$pt1a6mGkzGBF4M^!_iy#jZx$A)Q*_znkSzqL6 z%pGY-)vtZDVNz$cXY4pKo83cYI-2zhR811%*S$OL|_d-DIy5s#|W+EBjS0uCem# zD1kLn;@R|EiokehVa5-kV1ZOb$t1sK*nxQcw<9;2-Co8uW+xLrhL>L*f0|k`B+=AY z`lV57)c0U7=WIvd$M_-!P2((zfLV`OZ&On(l;7GxNfiP4Va9w&JhMedJ8*?#L^e;8 z89Um}%)yWtc!yi^{=K^P=NmaVu3|z;Ke^8p?!C-faq+zpmT6(=gm!RnnOM}0t0eSc z-w_EQFVpi9eg>MKC==Dbsr;}Z7~!W%p)jISAk=-!@QcwkqslOT&$)?Eb_>r6Z-s%x zJ6wXGCz}xw5@X)%7V9=E@SoS{DHiw|bPOxq0y8fHsB1?7kHya+-a2=kmwlp)SEmW# z8rVF;+nbJVW!I)$<;GZvsyM}s(^L9ddJ@pJVdwijLZxO0P4@>qresmv?yI_%@RPQu zW90SB`~2^*bq4E#ye|sqsua1XhUSXp%M%Gki%xRk@r&#OzMHCs#p%2oLANS{dC?!{ zW$MY-qj_>;&mTHpP^us7BybI$8~6<;-I-p%Yiy!1u|2=m}Q`RxUf2sZV z>iOsOKe18K53XRDRGt?iCx)Kh31esx|22zO8T=)9>#Y9D!Kq9F2T}b~?E(WbybEdb zJ;H}F=*?THIs`;o~3hoMN*Eg!!1~Avo6?d>6TT=@`B`lueHrp2%(|!QJ zTW$KPa8HM>*Syu{wU&2r37rhlm31f=2FopDvT*;W%un&pr_gfKy1O=;*O+~6LZ_l) z&S=_k%e&Lvy zDGR+3aorfgVQKF>&T)Jqq7W=QM^`Rsq(V1w z?e1?uyaC~cM&J^y1XUhcsZrJIGj2|$aK7Qp;EHdhT~u;u-y@~aBacnq3!T=9>jHjb z#d1$Dui_|ncI20}(*pm7uV)bd3=oGm6LMX9T0mNLpEAY2mBve@3r2EEhyCWx8p$78 zXkN3eAK8X~gpuQ>O0S1=B>H7Op-6PwRH!Dzfc+2Rq8qrxyy>yXgwBUT)Lx^gASFJD zJbFZ#Hg}-dw<&CBX)1I4;KT47wMWWs<5i^GgoZ@TIrj)ms)>ENahx1_PSsjR|0P(p2?S@WBE}@M9sK%5={_-Pq4@?ecMOl> ze|YHQ_A1>{gzf9wdcNy0_tLAj-Y+vy)#2@B{HL4z=Vj1_e85Y^uWLp|8k76}X(f}q zE$`T~6UlkYa0T5tH@NZ@8;n@rj%ZZZ&G5mjXOb23gwZ$hR5ckx$f!F22ue{%x(GNh zYuBIo8gB;EspB{^}TM4IPCGPwIt z2LK;g&$mhn-@23*82vr4#YuZ)#dzM}>)O;5t9y+ZP*_-G^2KI0MlzAS$Vd3`f~}Uz z>UEcLebBEst7}0c%T$=_K4Xh0E2%q=g{b3QqezD+^DUhh9=VX^+O2Qs(ig@WSeyuC zjK=0j-Q)h_Q;qD5IF56@X{lI)p79m8@D(*h%>3QAb&uKYpPs8Oh|05nEc2->Ku(6T z_d^AigUbF0Jo7_-cGg@CBfBFKu+{gYBP}xP7YZ7>$eP(B54ZKb^~tlJ4j_1@k2_JF zD{Ov2{*J*+X^+O#JT6XN-Ykmu%I=2BM>!V^0=uUIO(#0M@?NLzBEoEO z&!--U;OK;t)*PPy`hzC=>Cc{ZBn1h%e#A&;1g;QSFJLm13TsyMv!kk+P?o52mixjQ zUKHM6FJ`ecV?C{036!Y!wrd}`1^fMiR*P8|GB}VaUk5G653Z~D$d=buE^HPVsq;6BQj0~lrYiH~ zgY504e07WhywkBjPlL?S`kr4k$a1Es_jIEwZ$0&}qCOh&q3oEzfS6ItX|=45U9`>r zEzT}sP%p<4A{6xf@{$kxI?r(4)tqvq1w5g;Sj`S#%X&4Z_ZznkOVVud68A7YeM)ts7>5$hMdmyq*4 z;$NqexyxUb!~7S6fAuZwNcGUwOz(=3SrTH86|7p;zGERxi6gmIpU;e1YuA!O|Na8jZt zk^cF$@5d@i`Wpr-k)%jC&xo1HDCN6_?}+ILvLAjuMX^aoLMGETTJ$RTcShG;G`l2I z(c|W%irG0ZTA2Noj#w>^j0o~jhtTvx>A@7KIv`jGQvj}HaaY(p{mO|`?u+>wPr^-+ z_;mW32mHtSO6IJO(Il(gFvfKiEY4#dxf{XzxyQ}vj^oE?=*@ttb}pQft$8f0kqj>@ z*R(DmnxFBmB6!w@pOb=tpq83~yrNbqJPT7kHr6C?tKJ$&iJ1A%C!wFn$(a$WT0WJ99Vc2*7pGd?4sRkqJmO5*wk`5b? zeguIg++1^@HMX@>P^2VPN-I4)h#4DB=}`y?xz=!J%g_SC@~~#L{p64OIs5sP%!N_C z;e+YUc)Ee(oAEL|R%wSv0(CR^&KSP$lhHY_UY+2L-*`Au7l%;r^x7%`5*S+fTdJL5|;n7 zkcQ09wq=IyOMVC_P^zli@=>YlGK)iSnVwt=mP(L{DuSW3Ns7_{HD?2Ea%JQE&T+k< z8BJ%oCI5A2Jebl*@R5;MISKq#mkCo7@Ebr1kFsJ+R3gh-WS4RrtmPs zp@J=a#ybn5M%3CI#rIhj$fgH_aUYVWuWK8q7%4Ip)a_w=)|*b*(UviAHt;~ z>Ac(gwKH_n8*kQl*zJ}$u)dOV(5Pr)^Kux0?O8eL;@0f_)X{#!w9?efyA_Y8dq z6M|*~+koP5QCeovcb%W@mDg~uN436k=}=na)fi`L`O&xVSx0vokgrA0&2}$aJ|Y;y z78hLIc;x5gN#Q9%^uv~8f!ArLmh(WB z_0T<~Dr!dgS2SqyneD8eV^Xth+%w1no1P1pxHTKBNwC-aIzD`D{WRp`74oV3L}>hr zP##=69|B%AAz%FY_JHy4ZZ{5EkZ5WafICIG-<~_npPHab-#a5=hGMs{QwlNHdfDK2 zJ#LBe`*B(sk3_)L>HZ8VCHa1bu-};GC+hOblC8Iedfgv-vi&s1HOB>ba@rb8l1X2$ z9>Ro+*j1~kXtsVSLQHYY#>`-mg~G^Q%XecY@9gMCcz;Y}+yW?6*fDCscJ=}cw|uJ= zN=r@f7Aj?0+711tz?b->cfDR#Lk0KUN`0+wFVe7E2WQs@B#@QSb3DGI`mEHWwl<91Gzr}nvxs@M+Z66(r1zhAL3TE0- zz6)DLzt*Z#T8**0uSk5Y9{|{SyTn=wrXx0Hg*Ux!aP;}9<46(y7WVv_Q%}Pv>x;bu zI7l^@_jaQlu?PK!W0c9~mk33wg~p0v$vCsCDBw|@VCI|o#~33i*4j(9&W^d;OT2gm z!4Rkfv6|3hKN0C~;ixWuxSxU)yFSEZ&)SRKEH%t{%@vUV6&u z9~6BHPdcm1&borp)=S>k!=7^+d{JFfx$Z*weiMv~kZKg;&j!2q-x>?yuAdZ<_cYpV zYBd?Fo8%_+yo>5Nl()9j>5YqXD7D4-#0;1^h)SnjR3IX#;z))6q*^Ny{)aNmjpwC8 znTe79C8yus+ze6@YNU&ZPZI<@xK#gZcm84UXXwQBnj?^}>B%m>^JM1g+Ia5e(iQyJ z$kl!Riv{(}!E@{b+NUEKncH#h{MAe^TSnPoUR@)!XT|z)gwA-r^^4W@#NMmN^Rq${ zE`ur>nwso+oAAD9^5{~N7S1&LD5qC+rAdlw_|pSg$o4n-rff~Ku)Ce6+DIn<{Xa)y z22j_*bxRxNx~WVScQ?7vp2Rsex-w7_Xx?PZd`s!o()$_Bh6ScWgM&y>uSm`wX zZM``@um5~W5$4)&;xiYaQV@j)$O>{)Knt3V;Y&$O7&NjDmD^$S27uPBUR&(7)m>xxp+sulzMHQ!f5mD zlbg0X?f2fUbci-9jK0VvWm7ZA1?;t});+tJ`~aYVgOih^@!bfuwonf*F7mRDF)Wrf z#7wEeY`2#Wwl=e&C4g-~|7bCh#{|1{*wwW1aW4Csj35X98vg|ZIuEA2<61xC9=tO6 zWAJQcp5I}H;5eu1Dq+gXsW5IJ@DNJn>J;2Br{;`ZW9vvpitH`(K`rn0e5j)P;V=s! zdq1XO1_631%ziSxy9gk1fB((aN_t74$y73*g>VnqU?D3docT`U+9}vDzXED1e77$O z(aM0GFOFHWYVt0P|Du^%As@Rd?qh)pSn2pSH-`7RyHh4i=T2`Q{N3=o-G@cTba0|6 z@NZExdZvXGox#~yS94}c>0VI2DAdwD#cVm8E7nb3XQ*xJhE=_|e{y+wx5VS+X*K_O z;w!1?cLpJ>Nnwwkv9iLqk_mT2Y+f)N@7J#gUV+r+p=AQ~6dpUa^UvBV`5Vw&sSyHg zTa&+}Jc(@YeL{X8Ygp{J{w?7ph2qtF7;sc6{}bBDHLglnWbFszr&pqEYF{k9&(!0A z;V55gG6ux>zWemV!Di5cTJ_qyz#CHiaay&2X2CnQ6mDkhimzt{^}g+;i)mm#fvjp3 zv7IcW8s|t_3cqm4NP5;b(YG8y*r)(HS%?L2j5+>q#}ly9K`2h}>9DYTnM zd1@mvm&fQ75#V!VxZRQoMoumL+1<5X`x0=dyw;;*!86~pGmLWMG{~Q!+btk-KuTWM zi_-59?OOYt^HkK3>8t&dKaniWA%=}#uZw4jLhZfm9Lm<8(}mEJpefeWq@*E*-_aEs z_@_N(JgekE$v(ZFjWz9c&pDKv1>S5Gnv%gSLZLEjHa7K>L$fzIuu8#c1J4QhC7NM@ zYYV7gwi@53;ON(YNw^$$df~9y3hd7Bv`_dR3zUEi|GOXDo{2Rt9}Rx?V6uN>XT0g; zCtVSDaoF5=)D1RGd0oOmMwx8q=h7rLBC9>o?n9i&Kw+*x#O2`b?z{u0MiC);Zu3&9 z+^aCrh?kyBCLY(x??TqNF$J?%zE2B=MFr=GW_G=i%?UTf+UZEry04Yr6<|q!G9&aM z$*x2m9vA7PzvGZT53(HwX`Cy+SNTqpzh_Wz_xV#*t-_6K@4-L%@Uyo>BkT87V{=OV z1cbSPHO&&hUryt-?+o10*?#^{nUfMa~dih~wbfs&&lLN~{2@lDm)f6;pvK z`Rtw`MvT%{!F7O|DeFUf&`nOH*B_U}JMR-M0hnO7Ol3|fE`NiXH&iYl0ohyLKJE)g z?|R+O|FyPE}UIZdKF!^fBp+u{Az7vI}Ri37_7Wn?fXR8GDS}Y z6LZTHiyR(OZt)!}QpHKXOXjj7jw8mb>8ASEiu1 zFsiXT>YFpXH;LcWa?uFUN=@pZ$`8FpE?68RJsm9*UFDY!kuzt#de~4Q{DGm&JM&R+ z=_`%$LrO3ychU&e`0_|bKKu-Iyj3kbMcYR^rWW<@ zFAKFQ9PnHw_~D;iX$8g~d@5hrkgCxOKAKbBaFV&23~oVFqU^m}@>8T(Ok@(t5Tb2Kz|NV#~y)w5Mvtm@(tk9Hk%6i-(A2Lq%@=97%^ z5ykZUCDNNEeQ`ul)2k&{ef*jU5&M1DtW0c|cB<(d1=N*;M9znLaCPR zqVSYp4!rE=qeW+Yal%0{0>1y@RRVDRFn&Gj%;r^d9in2}ja2bQh*2Ggt|MQ*X^QOSSaGz;gR4p<!V#TjgB39&RfzlK%OC1X$QAD7P4W*fg zhN}As7IEaxOahuK3?8*iNbW-}@jZrtU)c$ztO5l=HcAype`+E z$5R~mIf{C!Fu6VQJDuJrw_uidU&PM&dr&8@_b)e`2%Vu6-`h~AH;hTeNPdZ9ISFN3 zz96`2tm7*3jE-nfI!a4mo3u&CFBrS?MI>Z!BU<{VL1ClR+RM3*bjjZU#V4+OorQ|;#aJyssF? zngmZ_-RxcJr{6T@3&muNo#BXP)E}<>P~G=3A&n@fs|6k~iFY640$Alt(!)c8HzND*||WAYc@gBtz7RaIFwu3l??7sr$|EEf^V-otPS9p@S{<7!TTE?V))ggoh_&G+q^2qp zk(@9?tWsNwDEgXjzlpUSNt9TvzS^ou!jFVtwA{5EM6rv(+XVehEEOi$#58O~V@+O7 zJ^^RKh;Fi_H%MU678}2rlXJTgGe+Z5r}B%}Q+$=SQfROG%uQ#JFR!GXMYVAPBB;b>~u4_hTjP&r+4z=;Ab zSB!??z2PCc2}Em{FVX8TVCr+zq*(Y9rF~s2T$ACFez6<*4-ih$aJ{y+&08H^>|TC7 zGR?Wnk8->tKX*+62}K2Gl~oT=Cmk7){1v(hi=fnQl4euUU((ZupfPc4`P^T2oa>ui zVy0w%-b^3(vya_y;uIwTR!WDTYG|&Tz`V+W994Bszh7d6t?l5X@PoLmQg->J)3jX4 zm@k#)3Q?YMm)3Pm0l!RN3sPhvv4~&AO%0$;FsI7*JphzXm_y22X_GhCC%d3%`uL zef(fwF#f!O4rXa^WEj$VW5qHa!?Sce6wMukQv7-veZM^4pS<<2e=CwCTA~UXd4Rb+ zc8S%9eSV(w%Sq&j0$Srho~9V1(&csbVb3uQ);DqKYB`9e{!(0IVEM+iM{LJkqTEWf zjZ}oqscr&MfCD4SBI2OS57;?joi+cj)18^gis6|5w1zUuQ?fH}nvKkD+J`j6zeuFS zgPyQ_F(VVpN{f8D{6TgfEJ+B?Zzp!z`jumbA+lV2es2G@Q||h06CxmlpYjT2!(Pgh z&o$iqx|my36&on*Es^WZHV(QZ%D#@gRamkdtQI-Vo{qeh;=5Qf92KHInvNv>s1Byw zyybv9d!%YuIQ~rxNa&l_WTkhWo)Y$U6wS$m(qeWDPJ0HgeiE{dC?b&L@MgFj`?QxA z_mVB1ofa&>yt|CKLE+7Rnj8K;%R9`)^MeSR_Chl- z!O+kFCpU2_-e{t?gTaYamqa{Ed7&2x;aw=+`_B4h!deT~iopWv^l+9$+}Emm)B=z< zyfjgYQ7KMe2ACWF9{7(_68{a-&=z*I|1AX{j zQ&v@Ca>DBn$Sq7-*8bEkN#gv>Ar9*C5vHK_)~zVw^5Eerib zMzgj=I{iJ>Ma5c0;PV%2%N{;uYN2HAYi5KNg$(9MpEmv&NV`mt$X(Lv-%3YlI!r5n zSMEhU4Qir7n4Mycg|>N8G`-8VzB`qQ<1bTHyHrDX0@!}LMR=xtRHWHF(OFv~{?SIK z1!gnwtU*bv*cam&I8g{)4k()lM)C6yk&lu(&3KMLzHE7C#9fHbd#qksVoIHcG8lvsFE$7!I(dsc`;w zpSscf6!^glCgb%{*&^2gDLqts4d-j%YsV7zp)TutQQvl3<*V60rlI8Mb616cV%=d& z{oRW9#=%|Mq~fKVW2h*^kV0Q}yr{v^FDo~Uri?YMTVwRNtC_GSzgyQe^pdn_@T~!VFWFcUwSXcjGlVog{$I zoHRbt5u2-oYr0fqbfr`FzqB#ILm=A4KvrIotkg26@k7XWgGZW-<7&+qEB}4G5ySP- z1KyWH06ohs#f`G7oKciB*3mE?$M{zcOYB%;T+x(jnu2Vq( zirR_uV=8B`MzEK`_&bBoXqM)iS+Kg2c3@mk@Mc?)=5OCzGx$q_4mK86l}+6pYm5Al zFj+gn2nNjX?4Lx5v(?2n_X1Bl8j^2n@g0{y-+8oj+g_v5y}k2-oKVUej)75&Czi;> z!a<}+jL2mn&LV3rpM+lh7yt+I*tiri#8BdF(py|~RHN^zakO0N%ABqll& zT{0oji^l8nTQE1^M=E!u6ctni4rU=n8$lHM!n^5gAK%MdlKX9y;^EHV^S1k>`JkBI zjiMea%HG}%1&B8h=-9rrKkaFLQIoRq6zWp!a*cgfSY#iEcddSZR>3y)&dO8lyK= zv2<`4X;pPijJ(0lSZug1Wb5LYqnGr34N6&kd(gEj)0iorqX**r(}_pll+7kTeu6J0?LIU8Y~{AF16;O0~h~o=AkVI0{@Gc1D0Xx)iQp zo+Lu;#etk9@;p4tPhrOr=Zn->p-9KeZY7FquCt^CUC6R*WHM)%FkL zG-&CETx)@SoE&kRV{}I)pu^S9DDqgAyG1^q=2=Nc87dr3BuDt zPrZ1V_sfY3ge(G7Md5)MCc5}9PCGOk+z;1=5eP)xps2L!#@JlX{!S{wGOtf8Rxx9r z(As~3huqvaBZoUMxudZ{4JXmrdJ1hgw!@BHIw9<$9V3O%KRnq;u^09QMo7aq6He7de=Ty(SDzZuUrXu5*YF8TWM>cg1v7_<4)A(R~5R5FB zIu;D&ritxlAe3>KrbuBWDN`UHw`DjGlr{3?T7#xFO?BX9wLfstN32k5f5TwZ3+DdG z;`fq9=^|ay*g{5Be_3e9Bue7v0fw8lb8I+(MM_h-$8#Qo~w_Ko|o&IFb$N?t+R@c5o^{hvnAI$ zV;tEVMMht$Q(7vEpSTG7fZ>5&LbN-bn9#m_p&gs+h~JXaosQ@(u7|IvHx5I4CBaL) z;^&q-aST15Cf=@$HXh0>5@E(QZ6y-4M$rs1R9xgzVmYlCQugKp28iB^eCnxTM^^9n z3qJiMsG0{l>NMA2M0*_cp%=~x05@qKXzUAWBt#Js&;_L9VbYo#kSt>z^$=UTEcmHx zlf&&R4t>?_`81(5$vY7GVkW(BjsByO_?)g$k)k7Butyu&#wBJz|MJmZL_QWb)~D!Q z@(Ml~GWgRNUT&;3m0&D4Ac-uUOH8;&t4oc+3Uoiv~AFyZW3ZDi1&kcHNFMbufCkVNk--VjJqWqha zI*RCYdHW`QB>8C)HhlMbz7<>ikXt9Vzr%}K*Ha}{vkJJyurJ;uojjN)y{SLw+jfNj^ zXqmy!_u+7%_vpYIbByUDNU9bKyqaRJ$TwNemxo*j{#D$gU#p7LMR^`*WX`}bv3v|l!G{J<4XE~I%=+1mwk}nUnALN^@Ix(~z=-9Vtksp(3G0$V7^bSay zuhhq6jx)m8Xd1oVqt^^=s`gTv7lo(Uwjll5)jL?8s{6DFxBY8c4^Ro8p>3M?nHqrQ zyP>U3UB+{&TQIlaVB717T&6(M#EByX%3HCSYyHY@$2c?*I&diTK(){|^~&%|t^~3S z&5&1~p7@~1-pL>2uY)h>MVpd4zfiwkP`nro!WTcUqjrg%15P64DF8#lN(2--XG`tP zPYsAK}h( z$M;yCT8wgZog4b0M9{&q1fd_UtAN{Uy`@>5;m8PrJj$bcOU8S}lKr{2W0@v17dpjk zvCsN`IW6N$73vSa-!N~q>DIihYmMMnNQ2O9$0Q3QeN!0jZn#c`lLoTS%>K*g`$5cP z(G=cKX&DoWR$Mg{s_(Ydf%|2m8<%Ngpii$lX}Ms|FUTeskw=Rv z;-v)=Gu$eeRvAcaSUGKooMRb}C43K{>*g`jxFhQ|FZZQVB4mt-`k5OAOqjK}D%ZL> ztvezM15GVSq}<;#HI^ZSVdb%gMPe#%fzTY`Qg-@wWTl#(ZCgA4AUx;I9aN=kl7~zM zO?`EeHgJehJt-L*`{@iC+JF?Wt7(DP^;gXkgjJ55*POCt9+yxwDstU#43rVrO?bQI zS>bHbC&kWsnwb8!N>=1k3)4aZk2UttYVz}&d6+6#em6;+{G86)TpV}7=>*AU)Py-< z2d?dE7V*PT;zawWO#N$J)?K21U>qOyPIT_wZjG`@oSsivm{t=Sz?L%d3)>XuhVx4N zd^f2J?L{6!d$2(i4DP%lb00*woy<#pE^Xf(GP^fVy78O(S28C^7L5MKpf-O(rjT|+ zKrR{b?In_}(4&@XW!IizoaC%%JpPyD8>p>QcF=%rRY_DA6bU zp@ZD-hHpfoeoQ7TeCAScG{D-m-rw+kJ8fFs&TMi$`S+GWm;v^R;vQGZ@EQ=@8RfMo zcYMC;C#`Eo{%Ykh@@cdNQ<*}s)aaN4D6FRsNEsg4aN^1k8o`qH~whNTBGa7_gw6Y)*wg%=BQW$0n@# zU`Lfmqx#+*W8N)Gex6*TRcahNg|p^QzpVPV;y|k(H)2>GBgGG~#bC30%n$XKEHU9;%B;-@sJ0zai5@@wTtMN!VpvdR{CPsCAPlfxlTZ;-*H%gQTYR{eAFVD zJ8?OQ1ZNyj+J)9I4Ai2OQ7ru(7 zfuqzI-Ff;9@c~9E_lH7*QyVsXM2>wEVG}CYqf$%K>uTpdR9wev#A01)*kMT)85ZO9cluy2xq8Ugz&kJ7Aq z>+3&D1eP(vg-QFO)Khz7q|-;4;fiP~tisfHn&6b~J>V`=5C(3lJ`zm&P${2`cyfjt zEpg}<=|jv-ZOS)XVIER~j@jxnqC7q@lO=hE%ObKjQ|LXLNC>a`NR>Oum}SHP4IjM> z-3Ugl7w8!nUApFX_|7Tf;^@SKg-D3;yQ((NyOwwE$SzHr71_1=dM|magp_>ib^)3U z^-P(evE5&(6%ff2GQosWnu_;@F5oCr^xeG#_&z=nlMRhNBQ~@Eb;YCS8}y_iT$?#NkD0lFJ8RXe?S|1tlI%wRTT@vmCOF z%=ZpOu2c$?$qH8tS{QpgC4T}46-`m?kAMA-`1t{GXH6tDC<|!;w_ccjtb6MqALeDS zeP#=8p(`3hipI07iR9nF#Vf zyjj2368J7XLz&@R&eB_d+Zi44h}NX#0QoCGDV}{D`#Sqg{lI|h zRRXh8?_8nD!>G?G-VU8%Xm-Jf9ofctuXn%D$p+mLr?XPgCDqLUb1+*BsqH|;=XlG;WUBKcShkE4rv8+GB5fxZ=AjL(9%T0A zH`DLdrihQUQjywqo1MCyT+PN`&w{$CAG|OdkatPd_p*l^>uVilg0p4>Vxm}D-Z#x( zeRdRewcl*sNqTRgpk?6UZnk!V11G=H#~9(y@s8f)WbN#aw%7dM7XiY_82&0FA$7~d zh9gdWW=CT4(Nehq{9@a#Nq>?Qr`~FpV6y!_c3uV13jB}`t6i31L}uEGo&PC_BxqEo z)G}$|m`Hi(9u6k8XjMmeP)V(Swx=vq>z}??69&pQ{Z{@GS4dg{+6YM!r%NOtgHdTX z;%VONj(uOnyC1q%ZP!&Ub%=43xh(F5MXkUorw3xjf&abV%;(eofVnaq$w_$n1kBkw z@ZY52ds?4QaD@Ij=0l)7^a&+bYHg=`h*Z@Lli6^rB=pU)oARHG1bd82q4N;7U;`YZ zk-s_4m-2@LhDRlur*>L*1NG!`FbT&%qKO3JY2~KLvD?-fc^_m@F)?92z=&hp|zm$UjV`uUmpt_a{oo>}RItIMr%X8YBGFCsG?UJ>} zzCRpJyd4%x2D-OpXC|(7rSJ4jFVUkrg->OU`Tr7zn1TS}u>MDsH)ew`qyUbxCB|j5 zueNxhgHw~Q%C8J1Mq4q=8V4Nk^!;66;=4zJcVAxrxjaMc+eez97vfm=$N6t}LjFDv zVh+9n6xja_qd+B@4WW3Q<$j@~HZ8CZ%;5*bA{D2sE|9~1e zp*IkYyY)!f=e9l@%c7jV_XM&qW%4vJq99r(FVPg|S>`d?As+lBw5AWRaplQuOH$mJ z#uek;@=`ujk!{EI1YV0<4Q}y!M8myr1gTdO0OQ93{@Y#&V86>dPtZNkDY1+Pkk^do zO>-HxA5`O0rG5cNVb6>!wwlB7KWglG6<974Ea*#<6K}$P=$~A9$Al_Y)FrGV4u||B zGGNmUaB(*S`d;=4M1_P=tIjuw_?aI^&Nbs^#D+`i0Z-L+u06~t{<&!aq@5~0UlHxJ zhT^oxo5Ww`$E4iau789qAtqNmPg2ysX=$KXCVhztXu2E=in)Csq;$?nWeSG~MTE8x zYQduJ8@KzcDP$3!3lw7DM}=ir6QkfwtT??T9KK}g#$YCQKz(wKh~~&%B>5gcg7Fv) z9PI7hc+j1&vv?PtpO+8;>xh^E=4Shxreni0T5j<=XH(rXAF)2)hd2sZ^4@2_%!At{ zwo$tE=fd?B;c*llHt3K0w(lRuX21&n*7!6C8mmY;LW1?k+@1U1% zn4vK@iLXK$TwN@~JLavg*AFw@U!>z0sEGZhgp*h*%{yURQ=FsZuHw|C0De=C&uWjK z5U!}Wc=gPaKH9pb(a8@(!$tv_`lEdbcJafEGJ{LKHltb7W%DK&M`&nY<47L$Mgjr4oJ=Mghlhrgie2Fa9 zNo3C$_M4U~1ULFr)+y1?JVWCkN^TwQ0Da{?jymp)it8c|c z%D!1bavnBz04CBTjCuJA68>8xg3vsn?$}KEvT%M&a=wuefd|&d&Zl9p$$H4>kc|*` z<@|B$p!YN82h8;CMR}C44%9+)#egwpv%$=GGs(cRhk&0|va5X(}ys^AAJ z)l|yr3&bs7b>$nC;jT+H{|T<3yR>a)-ur`LhU-vK)x(6;SgC$#*gJpKokpqTUW8v- z#>kw4%(Dr9$X1vINhMsvkN;+iZQetcHd&Nr$9yTL>5trPre^P_oax4J$38S6ws-5h zQQ@0!-7Fxz*2H?5c>jv(Jz0v7#R)HTsHvQ4HKqoZhPX!#_pMwVN zzEjRZlEPTykg-(Rs;X@F6V_tpGU}o@_#|?w!tth+;c5{|Ps`|*thN2}Kh$T|4sP+e z#*o*vG+|n*9{Wi2wdEXDg1^}0Zk0A<7c8`D8EFMJU0!nl@{%Bxe-_i~FNe0y)sv`W z*NWp{k<%5AMfNKH%_V&?_|g3!LdhC!x==bEC({>GmF&&ax~*)PZ^WISUE84l@?uDx zYS3)fjQP>proRmy1gH-ZD^3gq-zR1tJM#Iji^d_8Z}nybL($=GJ#{l*qWO5 zs{*g?13}y0Ys`BEZEA>Ip8aw*lR&ZR)&X6 zll7WtypMeITU2W>vGl0Dfj{@T*;pe?o;C^(&oW#H6d7nh?CBKEvjhUz!ig0N=c4W- zhdDaR79NTy*&o1{u2R--V+NotFdvpk;|P9G@Q%xC(9=(iC(vf#6^hB8ImX2TR7k4h zUhg&YUFg=OSP1G%@oVxc-s|w-odS;8wK00v9mBX{DHV~bZ|BZB$k&hncIeOc8>Tvd5$3V%McpNmCd<7dT6bR+`ZWL}*Z z5O%i=h3vMjwfw}1?+D-0lfRvkdnX5`lHfAg=HmKa3V}?^JnwIMTt_Mb5$wnpCbD19 z`PD29WJB%vSG*y#4e;61M7U9K7`I@`rEoe(O`-F(-@;9TsId z?EHKaczF@J<6l|U=v0g7#355cnuOpfmZ!f>CGb11s+0*)2r|-2cZjq{rDO5Tot(fP zDLQ5XL1Y^xkIumWh^v7wZDvCoC-7!ZBc0phqwIZMA+aR5UoUp--i@8OM(c5JjXqNm z{rDf#v*Vj=(mN3!O(J|2>*p%EDNPayPxD{NWB408H{D|sjBP>`L;M9b?)7ZW+(Hk!z<=h}4prTb(6$$|BugPPrA1i)dL+YH+^3?~ zDM-RXB40%;RCMuQg|CNYv@VbN2Vr&10*{Y(ogDo0pKU>^?4(eZusz)nl#{i>b~#og z2`pB7hSaQx4g0)GXM-b#jAO$J*J?MF;!JDDd>xhD)s70E{HoZAs{8zoB-ZFFx`Qoe z%w!`iuO&E@Y@-1^N!Zf+P6jlY-b|dyY6Ab0Cq*r5QpyFsHiGS>aWzB^^diq#5I5nx zQd5E)!E#nS^wt(|nW6~~$*a}uv2C*!(cMEkh zm+pTbOmCtMqaNWf4{F4pkEtZCkcnS59MvbEkEV0{O6%W4_s_33%Bm+E7a`OMQo?I} zn$9m0;w-^x&Fyrjxq-NR)t1!mOVD_~9H=U(P=U9o#_%oM_EWSkze~pBCb+b~139g;%D z5|y<6#cHYi-;q)1j}K2(N2A5%*zir0;_NTBXPt>gYD;w0lZPfc9MR1>+q`y`jANwG zW6ju!X>luT5EFA0+JqJMctFV|w#;PAnd{efrcS-j%b(|njA=cjO7_AHdIAx?!IyAx zyi;MJuCJa1sm%3o8pVndvVU9ja+V`tT`IrB>7FC$45?|=LK0Go zz62T}{X&(T!Cv{Z#R|wlfVR?9j4^33$nt=fari+3m^HpP4Fns%>@eZfI?MU1;G$)d zEle)bLw30Lz5=$HB(K~bqKP(!7q|ltYEM-m`<*+l7lV&Nm%BSbPte!35X6uj=3oTw zbM@n7R9nHOF=vF9L2WLcxxMjvz58v<;^Di%iO%iEf$Msp%Pyv6lbop1#=x17{k8t7 zyk+mwrIp0KPPHyTb1qP%9_Q#2laWB}FMXKc7s2*jFf8d23<#R~3AP z#vzb%_FWYj>&3;JD2Tc_#mG<@5Z}Di-vOC06y^q};@(sXdD10n`#9En6r%4M|M#81 zC$P^FZ?!V8;gM8S5r@(!oTpno!J%$ zgy;k?)rlT$D4OI&*zFl*b7mOm0IXnIeCPRYQ-KwfUTC}>M3tLM_Vl?I1+o)|hv<%i z6D`ru-h~CpV~$MW(ZB@YZQ>d%tmz-beLS)mf!qmKaZ0z9KP_8SZlarj-}$&#;yfAm ze)nh~A{(eQr#p?CG37K__GR4kO}Gh!jtIe%Z(^rQ z{tPz&z>`Xv0k_HslR&KwAG;@y~LOlqK3hCCa9ru{!|$iVEbaRFyk*tJdF z3X=XIc)rA55ot#7b4ou4W|-2tFaA*wVPca*tXApNoF1odNT1B?bK9L zd7$P1O#Nj6`5CfE=s|eE?SxidpHNopRl7x>3{m9LNyPPoYQl6BIorhE8)b(+zd%_l zGtMxD<&?lyXn?)rN?_vOJrl^A_WpJK_xNoX&h0btB;59#7XqoC5vrd26CyB5bzA^n zzBel*3Fbq^T0+W1vyTzKlm~vnND6W zO=u>QkuO#{U0jprAcI5NYc`Uu=+{LplIKPStlcVw@%7or0HYF&pl87-)b{N(Sjy_E zcIf1h3#M3imQzc=n$&@qg;iq~8dJ6`s&?u#fd_SmRS-awo)Eq|bc>Wy)zyTMM( zAI>$FM;kp(Hr>!j`U6vmkc zu3QiRbvTBResGGXFu;`QM!it?Q4eSPp18>}e^*5Txq)@y6VBS#24?r|HR?z)2x*t7 zbT;kJ*h+5`tE@8Va^3+!j4` zi+|;$(dp$WQ3uWHs(;42a}HcTU;CuX;+TL(h=TuDjQ3=TX4m^qx>nK50g)z~m4U5& ze`(zw%B`?n3cpyF-Y6HjqfipT!favWcZ@_A5y{ND*bGvAxnzBBm!v=E5uaKblG7#x8>rH90E{s zP?@k&;iqz)Kl|~j49z$qM5n&Y=VfG8DfEm)*W%?BGdgFvTYuE<25rjFhiWtF)C_5_ z1x2BjoIH$CQ>#+vr`F_p7#sYFp{37)8U$Lz9$+4fUGA`2-wtx?6Z_#H{?ei*XzRsrkab+%-3`S2;9o zyB}VQR3dE&vMAHaE!uaklg)_i1qRD+!PsJ0k!KIw!?g4I`N$E>zbBAz!!9p{xb8Jx z?lrbuo*M^It2zHI@64`2ay|?vzj(Y-zT}47h9ng~zCKaDB);Cf9aAuSB?`RQIZ`|_ zVllPLV!-b$8G?y@d&DVzUAMcW7}#68_{ANFQvFP=5~n|MHK#8#N^f2Z-Ab7&#&k;) z2BEP}5Es#^L6c`LPbDpb+D2xhZTD|%8xGLnN+r{EnF8dvkqOU;Z)mTGQ-cm5ebFKE}IT*-o+v)0>S?^ldo+7YZ#)ymz6DyyjY;%ao z^y=2sYjQxRj8U@e+D)RFEzRPp*3$Vlt1@KaBc+T!%5%|kBW|0dkIH8&fb`n~oHoov z7Pz^TJG8CMB@Rxx&UBz{yqYHAZkb_kg0Nd+t^C26iOOG~@?N&p%RzdAmWgVGeH~YyK3NQSfDzW{hV4FMZ~TQja0e5J zSvuFa>w34j_p*ar;OM$u?D~6aXXh_M^&aA8$OGB>mc;h>Gv+!KY+E4F)bV##A_qa6 zqpmmnyuburo`lqftNZXEFEc-h{o*!%7S=2X;#;ZUHM6Rg{Q>#^juz zud%EgcE`y{&Aq81(8vlZYhCcy+L&>H{8OkA+Q*4w9Df0>32}y6yCs`(>P1?h?nM|JSmT)*x#2E@*A{g*<|?ug|+&VLmw>0HsF zi2Lqrzf1BR+X+G1iWo!zVx5NgH-GG$Z@ypIX|w#Yp6ax28scAg|5z>66PIBxK9cy` zo1J)HlyP-S+p%&8NpO;!er!>Vgr4!#`=qWd{Zd4`pqfw+X12cSVsfsHmdGKaB-FEL z!H8ZCkyD~33aCZEyGq&@nd(;zyEzG3&GoU-#)_ zn1%|qX0exY>R_?_S1k*<7x>MsIBq4D@l@fXA+*8zjR1psrzLarg5x&Zs*+}UUN7q7 z?%Ln88LXIVcbwyGub0HqhHY+-5b{xOIaly5%P(&%MtI8^lg1CneK; zKEk2==~}9F-dJr+kj4;Lq_teiEnU5~K%b11KMIpz<>SlBd;*K#EE&zC`p4eirn^kuITISW^X zhw?{LMz`OFdB0SoPUkY|GC71ywG5foDv0LEC1esR^~=yL(;=ohL3Z zIjlqwR+Hs=aDseP8}vd_Pc?;g48pOg??3Ew%)?LC!o7E+Q%Gy>aH=(8jtzp(&_Y_j z-W(t@9dkW>#Bq`xM+%$FGf9-Cq9Rde1tTvi zp+{R8h?z>f1M*%hOr|7ONtMqM1WBVUJe-%%RACexP*oiVO+MRP3;ucbF}Q^Q!G2?h zxc7>nQ>`ATaw^g%17biuM13hZ)aH=ZH=)h4T8?D6zx>hU^UfF>c1{r=(7lmJ&l!yHC`>j_2?Ji~^txsftkl znk0`cF-G~(SWQ1ue`lE?@Y23}49fgEb3JmoFk+Ytq>jG58{1sOnExzl*Od=xr}~$a zgU{Olq=g!p4X=QW0DQ$pQO(12-;efs{Ln0%OLZBKXES#17&mP+Pu4;wi@ZY{QIb zqnmgkjsGVrEWjr|;bz^f&?S_zlx)FRb%|+s_heYF z5DX#6y&Yd#h?`0;>vw-|_@`MTWnohPqki0g&%P$|sYd7 z;W0x|y~ZF-bRe%W`ijjpKd+gmKgr5O4%Nr!MUaWQi5eQv{{a(~lQdId+FQ4&OwEX- zAc3~-`U1fCC~5c~9Sk4wFFsmJj=(ZJ6t8G_nPzfxdXnvo51k!{9D` zfw)k>ZZw2=#Cv_Om&XEb*G%~3n!X!h`HtWtrlTE|cW=_Q(5&`vBH)@$E9WU*^eAc^ zTe}20?#-H0E1Ho~YgTp7z;hii{zRa?V(s$IFCMxF$dad`&P_KgI=50iCl-J5ENBUF zj*m@R=}~NzL3>4QM*MM|IF)kvc{B5}Dj2Rs8xNy{kBk2q&UL3U#1ac9Uo4PA#Rtpx zlp=vBS@7Blk$gp;hildkJXR@&ldKB#0{g?USYGv|F;3yKX|#`y|rraG+B6xdlQZXCtVdQD0B_4j^5Da7))+n zF;5(!&k9t&SDaqy9u+SJ@+Fo+5AhD#VHRXN z%4B)XKH3;?A6MABJtlz~Pi6Hag`$s~Fx3J*cFP8(Hqm*0RAYA*!CU#M{)I-D_X9pn zqRi7Pe6wlT57Z}rDLnWE`ljgYaU88L!c=EvY)~@j+;Pc*85K?2~Lq*eI8FbP`H(7LMuM*By zYx^Q9J6WU=_}@r4|~3R6nzfg&B*sE3>-GC8eGdo$6w>)H^R} z@~RlhrGAFvZNj@A_hL+Gh4~0%u`<3>*g)&1{`cerKa(yd%*&`5O-jzYiR0aKx0WaH zSz8IRvK&&LJFGb@L5-Qao5-roh(LLSRKqrz(AsG{*-D6vfbwJY%`Qe`SW|VyILl&o z6EwlkbTf99?x>6Ql#D+4*ODQmLhDKPm}J&UVG3j$^_7>T)bFdc=#-oJG}8kJjrP)H zuJd~tUuSA+>sz+z(G+Q;QOKciY;IL9hWR-db{}-4O7D{8HT>O5q@5R}R|r3nf#1`? zIO{BX*6on%`@%a;VjtNB77fvjYX{;xOY$Z_b6!Oa+CAYMCXk(z6Lc^sB@XIX&I3n3 zyc*xCRlqX3(?3^Xz7<-6w~Cz*pJ%Z>){}?U)w*jU(tHEle2)=wU4P0d6lE;Y8zp7dTAfm3S7?Db0s-XKt3h$SC41CY$w)s|4) z<&?FG&ck4h1y3_2FUj#z*2~Z=>PbhlWJG#P6c%69j!9fv_?9lxC?? zYXl3^{=i5)`_CKk(b1>dO#gyQD8=GDBm(Zau-bcu)s4I2ja1D^gBg1NSzGe<&R2W zUATDOE23ahl_5m$A9x@$r({+)SU#b?3C6>z@{5>4*7*tmmjNR%>xQl-9`SzKBP=^g zQ$PbZ;IshqUo>YHrRZs@eonWt)H1EYFC1o7GKy8Nj zW=W&oB)Ygt;KqpmqL)u|ZnSuBj0oOQ?#|{tCQo*#x<8{xwlQ(-H?1T5Y@&O18(=BL zK>mh`|DXh@MF3=vRSx(ri%uAT*32pG7`Y(V{#~-=l_^0WYi-`WSB1Cm(7xPds$gx4 z*}xH?m8Z`er*ND0WYPFw4|U+|0@G#c&&!X_%zBxonaEwvC7l( zJZtLV3>{@tS-eW1;P>FX4Ghndk(ds?O2BZYA6-zp#)KZu5LfJ7kY%lfL0o!F;ANo4 zNlWx04sl&gj}0zNbJOLRnpPmqUQzq7pgyL7vP32}qr!r6BCjIG^xY+gSKjz}%a&HO zMFH3GqY0-}2i2vy$Dxg$&3$LjKa6r|=lHzLCKJ!Jv=XG{7%C><=g zl|xy{zyV~+Y|&OCfQO~X9shB`f30$;E$5t+hWv77CPLEbn>J1L(%TXtfygMKX!h=9 z^(tJ0cnggocC?O)w_h5>woSeW`sotsXvQ(V*?(E{joug-<(c0%uM>!JlN)X0&i1QC z`^o^%r)Pry>Sdyd(Y!{*<|@1KX%Q|OuZG|gmRgEyr{A0r*<@A_T|m~0!e84^Q6~tL z4D=rWuR&10?o1=0(C8u7qzZ^7pQSa?l&5h<*K{z}U|uF569|%v7@*KPQtCEUp=oZe z?Q(rh(=s!m)K2m+4A7clp4@`OCX(b>h<-h1au{`<%y3Ep-n@B@rt#SA_E?q$m&+OZ z{o&Vu7jj=!5|kpzMG9aWR{@cCqzPPS^TZJLa;69B;|jkrcm$ZygE>VlK;m^|}!U9kr0P~}43S8~C$Oz69wieCo1q*E-Q zr^F}ew4>aNJVgd3oo}TS7B(Mq)*&z$Aaudw?tpo@8LdeX7I^-%HX2S7JvipX^l&oF zBOp=3C|7+!ZfmH)FpbD5qhbBGfVq`LQi$#^x;;5VtK38qT4uPM&(AoWjtp*7Ctmc~v8WbzJNIyS6!&prwg^>!vy=jJK}tKs)?-ZRXMxGj8XE9ToR0SI34bB8J;Vcr`Q+}1!$WVZAIqPG@6!1D1~K(b{0!q zfJ|f0*05roS=yi!&etmK(2B!P#+5lWHPUK$x~OCz6J z-{N{c*M>+bG$R?-z*vRpI+Ed*G4%(-xO5!>DpqN{eS8ZjVi60#FW|g$G~Un{1K&F2n32|m6w^ih=^y`povm{R z8C4_n-g%zuEX;A5V3g+hfj8}5V8qZGLK4HW(wGl_>*#K2*@9k`oS;hqm+ELZ`Ii3) zMOqRlDK@1TkiXwjR;1|OYG1dMjA|BTZZ7Nc_W}Z}>x`UlT}4USWV1;!SBtJq*Ixck zk^rJGPRLob%BTS(GWBKKiPnZRi;j(t4AW7yvshLF3XaDk2Bzt4b@SWKtUUK^XPy`e zH%5R~mJcddi?!WuS2a9+-?NkEO-m~8Vf%dL5Rij%UdYfw=$k1ecy>cin$OP{ES)~N zc0jQPu)sN@W73p>$ZqQyVOfyCWBt6Vs2!Q6 z=Ih?%bt2S$(iR1P(PA+-6J~)FxLZcUcArbKzt#Nujlmw#&oW}70@@lHJwueZ+qlN< za~BkS>jOcCQ3=B^VYl1W!&}~~&{SpZeVTT>^%fA#Hh?A=?@9Q(6XAc-C7@l*z&I=>Fme&RWFI!5w)>~kax>SXI2&C&E*Dlf!dAD0IZ0p}} z10FJ(rpLMlou*?&IP`U6sB%hItOe1-Wf$=wxQUEpS_YRIvk+GgF+xKq_8`0&Ad0OgcD<#j;@tI+3$Iuvq zX&!)5a5x@uxn78UmSQ!AS=P1gmvJ0PW6QKeq7!R6cQ@Aupq_g|$IF?z0JKKQAzXfD znU^}dRe;18V@3V7p_##@$XGPgbtj${^Sq+*Ee57xirYT4;?ZxY&w9(e+Mb<4Clw%b znrAu}l)^NQWULbdyr(XZbjyYQFTccFh7#)*F|MF#7dPLRWm)RllmC|ZFV96l?zU-= zL56Bw)8cZykXJ&WIp$s8VHzjI6wtRFSW?f%fC1w?q3b%PNIpYrnsZAdP?wqvTSq`& z$qKGh@V3Rz{_HQ}C;#(5k9ir>T#^c*FzVFxndVK9)`-5=)i2wcn=HI~2{?-2i zFW!5Jp2zfsh1hASWMrf&qqsjkpnrIU4?p`^{MPUOR@~hm@c8(QSQ46!G{n}B|AaO` z2njI-00bUZkdXJVIBsu?8DeyK9QG#+hx?P9!a6w6lMyDBzWu|?3 z*zYimBi0n4P)LW}wlscen&BEMcCXh<%_o;-!QpUZt$R~Jd2I}=CbP*cyGCo0Fns*+ zH&If-7r*eus&^G1pi&CGgBWog1~eU+_U*bI&d+CbZHIB15MscK7cVgkWEN_TLECgN z|6jWPG}yK+I|~E9*{pW&ecJn)Y@RYx%G5(iCIW1T3c?2C2pmy_%TcZd3Q&u10m2kk z8JBs0Fs6z!U}F>*aLG0@oegq8A)`W)5dt*`83e{O0%Q=9QX*5C`I>vr+0ANZQ$M~j z=9=e%k3x~}-FNOed#yFsoMU|BYm8++^KLBrEDbKngra|nDWEp8p(Z_NIOv%_Lm68c z3H1Kmj5Q4mvM>>xNFLsO@7*FvbJme*D%LCOx+1JA(=e<>l>J^=RmyMwS6-(bMIOUat3ixrnwrb3l<2dht_uczA&7n@{Hx))-2RnlT2S z{p?TS`sNlXC!9`?==(t!Z!6la0WtxXjDYj$k%KVj;F?yvIL=6kG9xSOr+40Y2UmwH z+~3~e#lr*Ez<0W@*h|hkWMgpH?>VSk7tHe+?>#;;>0n+kUpPP=MqzBW4dNVdIzD1u z7YyBiaks<6ixxh!~i@dCqc#D2dgP-IX{Q*Ul>xgKIfjtSG{g8kt@ zQ$SgZYY14vf^}JOdwYx1>4ae%VBzrM`3sDDo;gUs*pH9ySN*DA`PRJ5off@WkZ&&( zNF`dC+o&L4a(`2Vw-%7*zIIO6Vo*14ot)~|%XB|2 zKwoYiw2;&yU(tJQ4(sWAjC8@|pHq(#(`HUoYd!0TFuh+dPx&^(D(b15W^?jjAwu)>P z^CJ1(#b`n&b+T?ub-z{8pn#99rXl)ywQy4(15Oz^X;i6zYR`4@pUHR0 zL?b05T4zoJE|*Jrt_rNM_@5CYjbFNMkY+NL>(k$(I`))_)UN9+cgzY00! z#I>~FAB38tboL6kleMSKs1{Z^s|gy5rlDz>!Vs7>UQfnTjEIT4Rc!)QDo~pvzC4Xq zV<`m&t>b%|Q!IcAO(kj2#|DC+VoaNC1;`uQp`zz1lLjz_CaBNSIyw*|qr@la`qlSv zoASlNEIJ;K)C?NtvNsL)N7X19V@mO&lR|CA^u5ykrENPPF`ma*gX^ms% zeQ2AOW=bNNpdZ3g&JEow>wSB>_XPIJbCU^`ewGcy5pzsI;u%+F&~|+H>-DT>hZfLu z^36b|rY!_{uUai;tC)wi&WmZ0WTyjk%{HWPTB|-2EId!ABWc;i z7%7NUW5*2U^SLyKtAJn@rhp&E$44|Bjo7p})jfHYpJ%IRM*s!v)p)zhg`bb98cg5t zo^d?B@ko(w$h9X&*L66bPU3gs(20|+p4G~l()Ce$H>hj6HgV%P7S@2SF-m+W7mJaM z5GG{Ij3jD3cDn=Kd+$9&nS5yRzTfW)prbWMC#*iQyZE_w`yCA>BWoS+xrV%w5qRuz;~1P3y4)I(e^Q0dmF?0(?W+ z-A{e)b9~RnQTBNQ@6^aGQfCSj!>AAb#A`WoE3SgTrN>#W;|;-j9zP zco767Glu3~%eum34z8NEr6xLM#1wJ5oY8hI?r-l(dcx^+!n&@wySu~H)fFCJJg_E0 z5_Uw7xNT@e`;vMMPAorZu%xzqBCMgG!&VM)GY1^V12S zHAG{##(RsU(tA};-2s9uj3P1^I!2+K&u0t`X|pt+ifB4cdzB%=2o|DmwNto0M{R1f z`A%soNNQk38=$V+&|AIt+8A#DRNi!caWetaLMvxx(H4YVD8tTE3l!G16w&&3R1>Pt zQO(n|(V?WFhemBFNTWYr*Br1-kFDHq)vjAh`t5GFEA%kcX%z~rtT`>%^!=}$?iJ9` z`}Xu5oMFA?R9&xI-lZ4>6%CtAq;0$MZqsmV*^qrPON((82V*eba7J0X3^b2G%8_k$hdv#BLjUYXmW^ zn$9zGZJR3QuxXwESEtjFdNxmOtv>T|@8Xv2uKTwBx0(r3|DBozp!;A5p+s6L_-L%v zVK�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

q)!4tZ8^<;oSLgu!6In{U3w%E~gQR@PZx zS!e%XpUG@SueU(E-{;tdE?>C7-tG~Li%TrGd$hs;-&J%& zkIQH8r{C`2x-OIP3@s~6zr$=g!c$hdIUODn`T@T0aC&2nqOy}E*AbLOLEr}@v5kLq zq_F3n$%LZP6vp6r4l66GEG?~Jq_S(2sThtYjK(8-{UQPVhEk&fm!rddT49G$OWLgt!@Vv3)4zU^ zEY47_i|4qum=zLfs3X73oV{VE-o|F$(=;FLHC^O|g^gk;vK(B4=X*%4<}zO+Of7?N z{Lj{M*+_yL-?A|lb}VT4It`eWd2v)0McsI{>Lw+9lIaAqxs4i6D91-6uU%*B**97F znIB~33!fpKOc9Pi7^^I38l<`|Y)m~dZeoF}(gL?EZ^#azj5)SDos^!>r}zNoc=Bh} zf#vaDQtvPCr@GJo7Jb~jZ6?>Q=h=y5y-z7A=dx*AFf~Ps;nKxR{MJ|g^MCQ;9N;(p z)35W>U;63!`{j9_ZEC#l`%c;)l#&=B=(Ich=imPFf6?L`U^biawXgmTkAL6^X0z$M zKul}@KUhk2mC4ttkvz|9zL%UAm_>d4%;9Q?`T3$r>6-Hul%47-N7Vx` zs}2SW(iU@Ng28c=En2Ix1~SUIovy5ZzoWd`?szN@Z$&NJ{8CnJ(17Vqf^r+1FUqEY zRJuaCRsksM?{ytHzpk~Z6(zNLL)T}w=4^D*_5sw4F>^eusEcZ;j^T<;qbtoa030PP zbD?g60d+G$&!g9xuf1n5f<1G+U&&}c2`n>BN_(ah$5*X%#5`5V7>)C>kAIxOcnAoa zcL#F-#B4f63tQtB2knjd!un3ofR+{jv0l9hSQ-AWucJZzk^1*n-gAYE8u1bFIH^0n65FpSL zx+JeEq)-%jLY8NQ?H>JJkHhV4G?J*>A&X z)09O?7RN}(g0CFq5JeH~c8lG;Jzo3Hckq43MqP|2P*rq;0O2_lm1Y)CNz2m4gc(Cs zlt@QXW+{Cyz&IY$IL3)ulzE1iPw9It+aXmjif44f2yZrH@2$7_bu@qVum3HaCm-XL z!$WS}yv5$`KGS5zlOOpYj&OM6mA82L)z`VRbwIDTz!MKY#C=z;Fc=JZ@!98DURmbU z`Wi>WBhVF#?LOx(Uf}xHO@8-xe}~0x59KO!k&~AtTk(Y4bJ_j!zlYJl?#89YQNn^! z90e%b(Kj}N&v6{vd2%Fan%SwmQkJ&v*-m<%+r`Nbf||B%`+9Mf*-5XqP_UvbC@X5I zNx>}6FhCq9R{rDIxVG_dz}s)X#m4$+{@`fDa56?3n2iR^h9lC!1O(i9`)zxlxB+MG zzCsiR#Iu<8@(Kr6-yxgs(K&mG-r_pfUw)46avvcLul~Wexccn#?CtEaxU|3@{_fYf zbM*!nFJ9m`{=>iL&8t`Wu`m4`CQ126zx4mXSz2XnZG*|t0gD?O+}Yja`LF$F!gdG8 z@t9;IR+d)z<~P2@H-7i`==2vUQ@iN# zsMX>(-+Y_dY=-N2Na(r3W9GTJO@c!s;d4d9Gmv$M)KC=pe6c_2O==#^#&NP(ho<|g=Uy(Ugx%Og zonu>1=NsyFv#~feNVD;>ot(rUXQx__X7fB4gO(P&G#ZcD-q~SeV-2khqrrgDXowVo z>2yZaiqKWb;r;=4cD6~2g5hAq=Iu?^$1{>NqoTx=hBQrScRNIZl@7*9Oi>n0rqkM6 zB^eAxsIj2Tb2OUaXiOX@v|0h4<5Cocz5OGiC_*}xcsx3qva`KM82Plbki5v)-Q6P! zLplQw$CV5R6K-#95_J`&X`zi_YkLoA6pJfejL=L+2|GL6v^x&ccPX`Dd*^^EFIhj` zMM%LcuGrn%!}BFUCuAI_JoWsm+`O~NYOBMQANm~Q*_5ZBd4){)JaXkMz8f%}BuulI zvdB@MM_v{rSxPT3haynx!RAS&|QP*sMt^+kN&B}p=CM++S`PA>x$Sz4hh!>Ln! z97iylWsD{{Vd!!HmGhKY!S3M^Nt&{8W`i=x7*EC&LbHBq4c`wK434Y{qt)W>yYFQ- zoiK}IvOH())G5lU;_zUfvL+ng_rQJ3@|MCn=(i5^`LH zha$~$W_iIZN$?y+p-Y64par@tSz26RB@DQGdBx_52QH4X>w7~?o=nH=?(Y)E6DH#c zgXxT0y9dmsV`hURMxz14B;oqao9LnYmSywlVdEQiUCUm|iyY5AP710QO|-DYb5j|dPDu9dJ6!)?{uRA+LZ%NlqJd@ z4d$}@WBRhHD{oO~KNvq2W8OebUV5|&+u3r@vrxnODp$O_-_5J+-u zrRVlW)tm}_`T}NU#@mG;Ee*?_ zFTB9bH?DHw$_4(+&-_`g-Mq=wt2cT6#aCGB_xY(G|52vX3A;PnJoEfBgh7kbXHPRY zI^<}S(`k3O=dQa*E6soU>TmH|U-^%`{nk6EqC~Yq$~>nU=iK|n@8iiYeu4kzKmLd0 zufC0JxoDe72S%f!0BIyumfJ%;wd`ItWN?YB7lGP3j4=X7xiyKioJ-t5G|ejuh0!@w z71G!VgLO#A`e!7L@@i?1orZRMJ?^~oF7LeZ5`pidjl@+FDVK|)Bnoi;mHuMy`3j%%sAl>x`M9zatWq+2hzrM+&zlEs54q9|>efUF@o zN;$Zy&e}GbZWOY3=^RO3uygAcAm(yzQGD79>-Z6uQosu2lh6M^J8B1uxT z)_m~E4^regqtS@6EV+2$Ja=EZ#L;j-n#2UY$Nl%+S9|1b?3eFGl!Zn}+u_dBoNjLc zV=4;`st>BJ@8P)~S(a0o%95pnU@jx8v}R?ckLLxpU@b~ooq+SVKc)ri9N@=@-ANzrilDTmIeHWM}Ij4F)e&54$72y>-aW`d-BMtXF zd_TsNl$8ZWbrw4IfRWkAE+Yi3g$~jPYrg@aR*Nb#l%>Y;Z6V`G7hP0yRgi5&L8c1= z&qbh6m7%IqM7MXdu<<`aNfufWq36=6qsuz&E&^~JMLUd;N|ELTd72TIF@vL{dEwTMT3kANi7@gk z;7@?#`bYtTy*(zA32{|%V`qzWGGQ=2U~_Q9!QPbk@PH(lu(P{^l7i`Y!gxGJCkc@g zARK|``zYzyMmqKk=-2l@fa_V1R$)q%>r&<=zU$5TCS`3aavjHl%jz}N_kFT7s~b_l zJSW=j`F4%X>ST63y}CF3Ykx>H8!suOW*!MEsKtV^ir`U1j6l8hX4^HY?n+2B64u@+_OH z7*9SHdJA<#Ye{3&3-xG_l&VB;P<@-*LCUjdX}jrj{U?Z6>E*1w`t@w|E?=Nf2~?qCzvzG z#jvc;7^BhHG6+sQZ&S=QO%|vA%p2Kt^ZG0!!PKb=HmbHPZA7z;8UwVzRX)BSf)QkS zhB|RQoCLKs*V##Fc2N{mrXmQ#+Qw+pwwl*iR+Vj(Nrlms-9Jt=J{s15kSB)?wGz=( z^%VWR*N{E)==xeYKEv37oK<1Fby1(?8D5>|ZtWrV1{1837x+Hl)N-V@c zgT%p?no=1e8PZMQoKiSikeiZ)NK%RlsUgIWlog{wv(jm^(vyso<`bX%G~1IgAARye z{NzvkG`R4!ulz1)Uh$(}{2`ur^ig*Ac6s%+SIF|5GaIMKvYeygAqeO%^k}sg_>W)t zeg5sQ{|mO?d>0|X>qnN#So_EU?z?z5AHV+*o;iP!w_bf4;RZ-!&_xWMom3jBP@XrB zXlNwJ7Gxq3%CQ%_vCtf0q|GlZEf7j6XD*%deQ!>MRE`Ts5C)}eVu5fJf#ai(tDAEMXm^4tIV-&0kZvVuIf+0YgqXknP9r1n*rIRMWB+>X6T)ZNXhv}=ZL4r5YU z@0OB?Iw;=pocTuBbf-_spiasXL0H(z2^b65BHb3O)X{-*ejxCC&o&LJI&wzI@@UPA}_#z7l!O??QrYrH9q~t&(Z31pwfKxD_^14@AL6beTpCmc>DD? zdHSiR_{`_OpEGC9;z-5UzVbDUk^I2tKZEPLT)(-)AAjd%KJuZ*xclNVp5Nvh&pgfH z!5&}u^!L*aeMYkhUw`@;?mmB!Cmwzf<+!}``s>`@yv@g+{2=X43xnaC-})vi{S_X3 zRX!}yt~JTKK}u5AlI6g{`f5}oL^z( zQkxLCaOO0lEa71H29ww_M$VmGVK7Y@9!=O-Um?{6N7s%xcmEk{as_s-ZPAMY+Lx_d zJV`Q+u8moIq-(R3fx+gCmZMl)>7#(SC>UHHva;B-l^hTsrudG7SP}Ds!f<=a^3uXw z84(XNTW_ohBn}3{bT4IX$(cV_Iw_F~1WtV*R*VlbR#qKky?3Pvh{_gD;E?B#j%O@% zTs+Sn_KH+e6&1mTRXZiACZ0`bwOe?;i`IfX9wU{sKsg~uV?!LzXtg`|o{MjMrlX8X zOT2D`>no=5A!$(&wj5SB)^J(@<+C}71C_96nbH_aV^w#h56W+%e4r{dMnJ3EVm6sl zWH~_)(DGeY7J9V9fH3d~JRi?!&wZUG6a)Pg!WU@TK75QlEA2UY>aLQCfjd zuh(XEagkosVog01Z>!d45%^+?i`(Qs((dX>iaT*^W-%@bO! zh%7H~JdeC6sANSxJR+W@%;Jn$dO)Wgve;`g7!H|EX9Qt{qXeGk(+yj+JP$`2J4tQi ztI9=}7LeuC)3?EJh#!RrX(g(j?_+dbusIGI&=QWuR@!Q`wgZRS>)h)0SZ}p?@Sc0^ zI*cJLbEa`hJQ=gUyUS>nayXf=f3U}3bi~b@H+bpgmzc&gin zI#XOA-P&#>_AfOrARWiy;)RR+;{W*f`G>#s509Tzh-A7j%6jw9Nd_fgefvvJauv4xf6 zIF`9%8e1Fqen1$8{M^s~EU&%x>hTlTvNzNCnH>wT#@IxbqAUr5041#Dt|)Ai+o{jC zWmyr_@w#PUBMXhNQPhItX|s|NjcwG}_)X?faVO6yLI|SJ+P?CPBUKZz-3uutP;bBfqb3I!ntK1F|wG0ko~2U((QvHOjRavaajX z?bTV!MMw}vbNZiBcCzUSiNqGiqMo+-o{y0rJs0H)3-C%3q!f6eM_Cz4V+n{A7AB^3 zWvQ6PN-zz2-s#a&BI+VRYb(?9e9uB4jP=J$<)R!9FBA-RY$Sv4dSr2l@?7%5Zj44- zZ3c4H-=j-GJ{sfZC8`s0AMp1Z&YE`5-D@4KJBe(@4g z2)^;{r+NF$*Z9%T{vaRx;72G;#S1Sy&({7P%ZsZ>VVEXk+i|QU%l&0mme+XZ#TR() z`DeLw`T`$(^a+F`>s(PEtD7=pX~`!a`5>o^$4`9U=lGWEvCvy2P?92>;Rg}YaS_r^ zbqB*k+O0OegOfBKG8@E&-lvP_qQN(yWt|yV&b{&h7s?0$Nd_P2M zV6 zy3iz}G08N>_gh5mkezqmMhQVOo>FBQZl{AV8ePlxrGc_6@B^FiJe^Lsc=i&Rnb5CYG~R0b7A?A^XYax}09#K3y{YQ-c%+lU!AuyC-zb%}ayoFF2Z z%@A5!0Ez41IUdugrS;nGa7CUMC?t;S*c{^d`X_9jYFSW~mRuXpVxm^tHdGvmBNSPZ zBBUT{wTSD;y)bG4#?ot*gRV3OTetYskNhY<^|yY3Z+-Q5xbyZql$oVw=4pl!Hg?At zyS^A9kQ%0wF&7`ahfjX?``JDk!pb7OQyW}5dzOp$-OKXI3R#kHW@E!P_hhqxmd7Mo ztx*abReKS|vDaH0TU@xFi#^0z*|;TT*O5iCiDMHq#L~G;o@43MNjQ(LDyv}PcvCqE z9kF@q2CKiXDf8M;p>4ji<4}tr-y`8V=|gM?#&8V50~;ALnN3+-Tcf+sCn<7f`+LkL zQyzTe5yB{BFg#>97$JZUee@$3A-J`9i`itx#k(#dq{HpqZL&BfFW~XVui$wFx3>0} zOs>-Jwpr@;xUp&Tqzhg0@csAVNy%&Pyl$;hQgQCg1_wv`+}yrNp64trEg>bm@y?sX zvjo?1xOnLdyZf8$9o`{MQ`+4SWgK33@g)kK6L=B#+_%BO@FrW|xq&v|D#gN@&nvII zLY$OTx}d-8uyeG{t#9v;6&amYKyNML*=Jv-stPgKAAYpe_5bO<6`HWdIWAoVqs@%%k{UBm@=07tg;mzN@MLE&rI;GWaBOHl&{cVbAMj;K|PK)ce zw~0&JhztXdAaME4YwutRjc_ELR-1RfzDHhJ`hDp8_^!{3Z``6P?RvS;>9GBsH%YRT zG|!0IZCbv^OYdBx)K>K1-;$^Wl{3dJFkOMv|ACb3cu3YBg*|XfbvkjGIePM|&e&44ljpoXka|99&hXY&*3hO&h z^AxY`ke8N4v7PLbW;xR|Ma>f8tfUqC#F?Qm745J^nxwXP7LvW)J;tL=#O?{0UywemvXc>$Ht zR#J)0kM>-LGS6{@1xo6&Lb;yBr`5FW!Dz@}G_+FEvR>Of2jBC!c<~axZw&DA;P-E+kuhq)AH-WI!WmIilDWM zaAa-yu+2|vH8S)3>ar{?(?A}>L7S#`Q>akCgvwOMg?+7ZYW4uvwX}QcuXUobTgDb~-GjWd@kq=G7D(Cm;RAJ}b-1RC!Tz zfvgW-ASks}(*{9krNl*rbR4v?lHLaXCtZc>TB^9N%$&aNx-P3Ls|0@VJ}`FkI(>$1AKic*TB(GbVA7E^;gAIQd=ud7;_Sy2?Wf#fukLwkU? zuU$1c>kx*4RYN%L_cRbrettm^SUEa2?y-TpR#k*y1 z@;oO=X83-9t|i`5DT=C^%dVTI&araO%qQ*h7__;6zftq4`J}mtfD3|PUa%TtYFM+K z4!fRJun5_xTI_4C$_mGIj+-mea)5*Y$5XY{5K2==!3is|mqMKwG?;l~qiGUgY%>MZ z(9&xFV_9OPt=-ItGgk9xxI-3DYiwH2iEF5A0CdKjXe1pg5*r0UbGB=K=SjkQEnlsb zA@&S+@|-OQCCQVE>>y*;WdryWE<#Vk#6T$gUUO%|t2W@DnLh3EMk9PZl1$Mp#O zfZfr^Mxyy4Vd&e4l*-U;*@ML4U>|{^-RY2LDP?8-1U5T7wUG~Di0k{rvl+T9X?Hr5 zrCq#qRT2dOg)vm6jiPZJMXBpUrl_;Jjhs)bF_0z+t{0$`tUVTX5*W{H9&_WhFG@=R z&9fX)M?1(erPuQDrQmRDmsyfvltMur3t?jejB+6>aeWt~1Z4J*DeLZz<2V$$u*DR1 zfvd1Ni;Z^_K*u2K>0_zwCRG*%p6^==z;wi;8_V?Xe~{mM_63gi2W+$>dMitW6jah7 z8w@x+notHl-Hu0*S9qh0?)qsSx_FMg8`pX2-8)DLAOGo}U^|%*ID%jJTmK#Z@n8Q- zc;XSh@WVgN-u^z%Kl2^leD?+){`mLtGr#cP;|s;xZ@vN5f7;-<5@B0M9334oosRjlKlDTV?2r5~ zU>BGqO;JYT`kq~^wYJ5N5V%s-3z#9xEF`e1N;}C$SdwuKS7`i6p6`=oDQOym5J;u$ z-!AO*FfVJ;yHLbgPF9peoi;CBf0O_97oUMDCrK+l^TjVBJ;gJB^v8s)fTGB$CNoM6 zvM`v?Cx}80x3@Ul-@$Pe>1c%V16(geNSN;J5H9pc##1`Wi#WbZHHjG>9?)vHNvAPF zN;b})BM3sA(B*+gA7*QB$mvUW(OFsHV0VXZw?~;IEN-kbx+Y1}94As#8XN?jQ!B90 zCTLk0nCE#YC7DjgM4b-C5%``@%lApgV+KbfR!*;3&lAvXN0_3b8+XXk)B<^wq|8ek z=}^>CWg}oRm=H!GVY|gRo+7oxl@8s7KBa*;O?ddxhZr9Yxq0=v?b<6vyWJtEtjDJ+ z3i|y8q*BDQnBM9#MjBrD-QVN-i!ab!TqFzw(k!bF6L$I>1)**H$;R$rr!>FzuYQ$3 z`uaDxc zPgAXqF;LdtLkt*cKpQH`@9_biT)>+RrRl=X6ERL~8pmDUdPx_@KBih5HTR;axxBq% zuKTO~VUBbBI+_g!?1arl;z=8CH5d-z;0{7a7J3T|M!9xo@Y@!^s4-XAfZQ zRtH^_%+iF)2t47~?B!%aS-~{T@jZ!)0x5`#lmhUSizlpSdYZ-f(nckwc}}O*CM_~_ zRb6lhAWDYgiOu}>9NOK8 z>2M5{q|*wSEw4pUX{ z+_;bbEVO!zX9I*3c+$mje2&HwDp}zo(3Rbo zi<`NXJm(dG-zHBJv}aXXZXu{#hpebD6tuhuQ$nE)T2!{N=6d+bqsS7J@6{F(UCZ2U zhdz*gJqamrgv2OWN5~ZHAA->ijuTLpDF=r;gh2;mT=G07@&vAzv9mYDR{>$eT5X_>>}5u@>l;c&=* z_^sdIFqu&npo4ZF)zIQ3PGpCEYI2AJK*t4cT=S?H?H3xjDk9H zM=&`!v^E}HG1%L&MOkT>#1o=U8{s&#qKLFgC@M(Giv8&k3t>*%4@rxhI89k!U9l0C zdwXp+rwxhOSe$h0+4lsvzE%58XTo8 z%t|RmRf9Sk>N(gcnT18kIc%y?gEdrdDWz3BVUueR0x9i8)IO&zW_{(58AF*A9NgKZ zv)rQ_`Z#V2B?M_p{MT)D1mnHPe2Q^cOTD$?A>8n?q% zJ=uM)I9v!pnxq`=A8<4{vNC?xp(<@7r8G98I88H*(Vzv&aj3MNh?>f(UUg;*uCgp} zy}+KMvkW06M}s4ZvV70;(o9}OJ^jR{q3}Hgx;~y1OUphuY4>U#m9Ci0W{k&U(lkZn zg6-{X!Z4g)YfTZWl&CF`b)?y>p5`jY!nNxrc@vA8Br!n{%wdJ^fB!tsn@g+nJfEN0 z8vlF~8>njuwGeiwXlRN|Qx~xHYpJR^gP|D|*c@)~Jc)|(p^HM7Rt#rEBbjFvqcz&TsnQ4S(bAB)+Vb<%bYuVmhJ5=j*bqvc=2$`{oja_puhQ!-u(!KQk>x~Di&m%0?*1NHYfi7Nlf(&ep5l34osC?Q z<_WECk8Zca=H^X|Ff1=GTewA0Pwf1VAoMvL4(LQ(LNBBeg2B-t3*7}AKVUc><2o*m zXY+30wX}4Q;`Z$@8Rw><1mo&~eIvUdL_vl6~#={X6nr^#8)M{}!9zmMZ zYjrTfLd&YMLU|$4;Q{={zh$=dE}#DJV?6NDPxH+0e~q`FdzRIuRrW_i?!NC5fALFS z;>D+)=hbh0llJ-&fBL`qF%}+r2<-%QtxYP|<@~2U#+SeRWy(pyg-?DT-@m#{ zJR0-0Km00hz4{uD-2D*0@Hc;fPOHPa*Wc#q&1@dm!Qm0>>q{g@BV4JteE$Qy`1CWBy25LROol_0Qq1BpP7sk+74LrcMMRp| zeBmm`R3)9IWox~t^Nh7laf1$l<8lxmTA-q_9MWkP~5z!g5CM?N|=1Yw9<$DUohbdgy+Bc7&&QJc*>x0#G4{K9|xf98u{_#(^8D;yji zQDg|m$J}XhHD(jt7wSq`WWuuO&(n>LH%|2&+Sc<%y zd(n?KP&MCxG|V{y3#~3;%f$@?T;&i?ecIg)LKp(&QC1aEw`UKJ8a&6LDk>JWLAo|4 z-e^M*wyk7T6u8O*Q!&dD{3NixRw>EKl!b1asw@bUhptNEGNaw^0&&%cT5yR4pF;)#zx!Rb?HdGdh=S?GnBPMhtW zDTC>RmBoP5r`8CRq3wI%x^#P8lo0sRWtJqQI>*5l4_T2jjbmEv7Q$$xfzf1!6ZwRW zkLSQ>k}ykiPA@LgUTEWbKGRW5*beBlBb4$uJldlu3YHgEQAlR_jPZ0#yVu7P4qgzl zf3O7zdJ9W9!X8Gaan9PxGPCK7YuDc)$#PDwo#CN-uaIN-_OmZ=G#YUKxwCxu{(Eqj zL!No%9VUkZ7MJ@JWx@X59!NwvYDES;f-QB4t(4UFa~I zO_@w4tgo-u5jij%jcG+a!qBDChS%SG8`tw}!zRw?NS8EC>9$&Q+HEFD%+Br>=gyu% zpxN6S@X|YPGo22&boM;sJf$>-*WbO067bfoYYg&?yD#3$Vz*D^yA*kek_O=@+EI&e zd5Ph4hVKPbj2KTxw0s}o1q^2yNjfD81N^W>k>>0Vhg4O?spVDnW&_5PDMq*y#&EQI z$iZMlAOwSSz}o5>E#;HfKI+AOkFv~>MzgeFtyD@WI;{v#IaEbS=txi?L_z2UI6~D2 zX{+XO92eAk<9ez}&!fhSvC1sZ^RYTlaD+{r(Nsi{m9nO_bknVymDUQ{_&O_V9js#@ zMcssKB;A4MV}v2E>;Y4G4pN)CfnjVUVr|DzNT?6qWeuluTnFViHu|w%zv|xOT#nsH zt)-9%$2Nvl&F-PLX_*PX+x>d#-+(ph<;z&J?& zZyq-LTQix>&=|Vyj%5S9k9=;79XffQH;)91XECnpVU35jn9}vI#g$&2AX3?V#8hD3 zn`KRDZKQ4!sS9(p+q^iE5+f|bq0m<5ZRz6Q`}YC!Y;G~X&fni?u&=+YN}@1CW7U_w z9~@s(+SELRV`ZJq`99vS13##N)w<@bsQ2WEzrV<9Jn|={-WAMg|4p2j>sr-s^F2-B zURHHesIvZRrQA7z-1l74EUz=ZZNtaZ@1=e3?V0mEQEukg0tZ%xEreA)mU(XNmyUy; zD_-6UNjs*Ydvg_t>(tG$(t@_Nwid&xG?oukt35o=MqZ2h{G#hY$w?`=t^i~2;Y#cI zb<;GeP8R;Qv3Gn8G)%OU@n~}efe`a){K+#~Q55sZdNWu#`8X-lZ~lAE6mo1#TV9kX zp->JeS5g)lT{YICvbg~5-)97sDUk-MO5ptb&;EHL-)Hye5amdEK?~P$IGBuZJ&%=k zmpG0ouo7`cI(CDdjaXS-!&NRtO)mF*-!1?(*sIfRlhu%+#l=OWBZ;RmMV=FcAq(9u zx9@CXjAmnfgS;ph4hKjfh@uvGo^f<|z{cq_bb1|b+_=WU(IIzVxew3r*xkBKDKs0W zZLajq+c#P0^*M9)0^7U0+`4g-`yaRu$Mbpf?W<^`xpesgz8~_&Yp>JkwK;$O9K*p8 zH?H5}%-PdO$Km-GUI0_^=l=3v#EE=fd;SH4hWkJKB-81bcVBvqi;G>(+;^G%?Oon} z`z;>%%#$qkmw4&97paWqqfb6YnPfcwt*2QCB0l@rBMkQsdF#1X`1r>@M7Yr9&Rg#i z4@TVe_TwTn;A5B;D1Yx2cauDB6D@H2m&$z;Iw{cR#w(vLc93kNP;;Qj|5C#*s+_OkT|ZgvT9L##OoWcIZ(LDwRVZZrVa$2M^%=j zML~&Rso&?N8&`Sdx#wA0T1E?ra9q+jrR9e>o{uyYy*1V0K`Kfgg*<`lDv z^JmYobF|AOO=$PJ?A*SMTXPAQ`eGpaUG}Fn1C~6Z% z5rg5tO6p8ZBwHwH$>LfUNY6zI!(y*Pk|Z1*4Jpf#cB_RS1~`Fdp>vL+9fg!-L6N2S zVTg1Uxvq#Dmrl1wr3=zLCG-M(H(+IDjltlkR=wD0yD(~#=9+`SAy+P3t?#&xb;6O0Bi7w3UjE zyg(Q|C#g$e7hj{z320H%**?x}^<1we#y8W9?~Mj=94kF7Yp|xBqFV{308kR8>Lx*b z4>oacRvDn)vw58KDVAl4^gOEE9%%C-BNQPAhewQuLprTC?RJ}PZ-L#N9pW^h)9awx zZH$K9y(3(y5K_|XcNvTa#7O~;!^-jkLQA%{_Yp#q6e-I~bz@aST4qdV6QaQ9`e=a6 zD;~Y?0b;4ScH=r8iag0Fbjcu{FdB{U9c!&vT3TkBOc@L&^gBI#N8tJ{w{PFUtNpa? zs6|!T+}I$n4S*nsIM{z4sWh&1Y;!5gm`o>}I(3T3b#NSy?foP64i0(a)-7&t?r`?* z3v8S_#m2eQ7z6pykh?FQCDxFQCitErOdVGHJ@(?5u+_uJg7M&x?Sn1yQqvA1Hg`7Z zbi1_u7Jle6iKir!n1zJ}%V01tolI#JA*S6Yik4VfYEh2%xRY&j_{IT~-5EQZ+f>q^ zO+~leWq*I4G*9VvI=E6%lsWsmJM>pp2*VDhs@S>p4uydB(mJ8*lT4=!Mn`yI$Ok|4 zaen0UU*JFdr!Vs--+i8EUO7#i&*()FX`YjnF|S{Ji)oSa^vmBxNJ$v9Xt!EuZE&T+ z4_vyv4p9&>7#!j|H<8LEEeoRY__;tOb8 z+PyANk&dSbpue<4oFwE)#`9^0@*Vsz;N^n@OjR)*PtZk4X$tQD#N*t3cAYh^S5No^ zLFA(=O{*0llp;-20x!Uk0#|_RIw(itC>KWt7OaW&o_daJz3a-E7v_#5>I12rKsP?; z`4s8I;qfG_w~2;z9A^$TtLkVsUD;SAW3Xv3u1lq@htzdlyB^k1ELE?Gt+ur_HNW2x zwf9xj#c>6BQQ~>7Er?1RUFo=Pz24dbbWq!{n)TClJ<76}M@0(9T8yYCh`K&+%+-m; z%#}t}X@Refp2CCJOJ z1wLk3Hb2v(H6eW71gO{dqA2X=U4ITveSmMI<=R-V8q{8JDeF`Pa~zTBxb|G5HJ;<5 z>Ih^3xV~?}&h^y3S^Jf;KH?(JQEtOWveQJzaY%D(8*`L1&x+SZMahZHiH+hV417LTmduR+T1ntSlNw0d--bp)4&nk;+)$-if{N<{0yf2nrU34}XZ^Xw363e3xW4(J>{nl@> zwz|gmf9|uq_QvbH{Njsz=F^{MWp$00UwVa|olT;!O>L*0;Zftte#e)M>80{SG*A`QmAA-`wTJmtN%Dxic&+^f)*;lF~o5!fZO@nLqg!_dfa{owa3dUAxKk*WYD% zc?D5uMtesbO-8JpS%<739Zf0oit*@>GK<;Yyv?1(HfR0Ih3 zNf3_9bTsDWXP+Y;P5AH+evY5{AO0VF>+4_Vl^4E?yuHc(WXzJUNVUT^zWkp#|B=rS zEiSUKw$9;nz~Igv8%w9iWK1$RB+Co7q7Fq8;~2s2<~G0n8~+KnrTE2P`0u%L?jqN( zZt`1S{f`JyaQf_N;yhzIo+5=}VWH2)>M9%Sr|5J#m&7swi*t5ogp5~Nv5Z*hTd{F`sFyR*gR^B3(Vq&$Ll#EsjxSX^0UaiP!l z=55YjxXfSvYk!l4l~rDNUh7r^0hri9~r8X>WEaN#E z6DmB{WtNttMaFV>m93lGy#D%kIojUCb$pgDY*>58bV^wj+`4&-+2RsG*hUF~BQ&u$ zq0rXb7e#Gc*R8$!hW_Frc~RoH9&s`u3?jlP!u2(An$c}9Qsf1Tt1Cq99?3Ydp0pa6 z;d{RQJdBmxDHT{HgfIl{7Fm*6ud5I&F7!!@+`<$~&EnFMjr55V0xv*INs;ce)L)?8 z@9+v_7^b!gL--64>~<_sIQZ zJyF*dpk?Nhv}%4xI=O+Jd=0h{VPDtA`UYO0I69iplZv&~RTP52b@2k1<>d#+^MdJg zj4+m#zS3WUqN1oQW%$h6Su`+7rq(`Elq~jpOp}BtYT`^YBKg+`xu5ju61^(xM`j1Gel6JezH{W;>iS<^NroykAQ^VI@row=7m`x^BSz@Cm zm9jBglNnLiqSNhA76r33MoNcdnvljb^4uOW%A%m%>4H*x;IT(Jcjhb`ogN!&%OqLJ zxwUofzxy8IqF`%xm%$tF-~~RD$r$+u-{RvR`4DH$tm3u;W|M-;>r3n%9`eGoPcs_s zgMh3oK*QS7675z*QRYmvA+M~rF6y@MBcG*SAIEn|(wtE|WpjAQci(u6$>9#Sx8LRM zJJ&h9v%}HWK2q9lewxhY2mPk`VjFda(Df;eCR*q+*&8B^#`P2>2B8IcQXpK334FGO zLl#$;$sEIOHeu_{7w}ApDKuUfu{WCX*3BCzrHCAd#r`rY%K^H|Q3#HXM&wn=_??(` zyG_5-q1S3tlp`G1MM{VL(TIL4!jTS>*_5O4sNOpqrlT>d{RNhK3lwe5D2X|J>J+o8 z;?+0ap&PXr4F^cq!&C(dQ!_0xOj+{DM;~Nmb)Bc4dzR7dBa%2~e}4y8x~z8>xpC_T zm7|E-J>ppmdPbh5EVNq~99-8Up3OMDvOa!(cSV6`);3Q5ED>iS!(#F&ymg z(`vQw1D~?YNM~bAS>j4a;tBh=-oaBIrR%Y=*yrNu(^L}+Zt^^jb~~&O?Y6)XN?E&x z>!Sp=P$;dX$lB{9o>xzU>q1UQfum#{pXE>#Io8&29M9EIg`2~stZiaa2#U-WV|IdE zy~jWK{?f&*;epMy*6h8_zpENJsq5*q#M0xXqfmxg`s>*Jswgo=TWDBSr(Ot2Rplt< zpp<Y_q7bY@|j7J}o{ie~zyq?(hxD`PN)g-_X-BRkovsv2TdkMC__ zjH-ctzD?<<3`iGG+JaIFMP^DKx$9D`94xF%yE=~GblsW)U&pC6?_IO*+alT)Evoh# zpCm$?qMG}U?HS6d7qqdlTW(E1&+BaYM(Qktz;ivcJf7G#p7JJg$`3qrrOC65*=&X% zh4bm6>$(&*tHwrS*(g$bxB_jyH#@wl;mBZ6jwFg&R?)Mx%<}3oyL&qpP%A}ECRaF~ zeeVTOY1@zr0*~9bH)%G$lM`B9z4y8_+E8XW(y_@grZV$l_vAw=iS(R##9Wyd=$Z=2oqNBnWIYq%a28 zagURDq^LPI_IZ8ZpTlaKqOvJ^=R6!~3FfkHmNk2gQ17(~oV4yWg9tdb4Zas(2vSj> z@sw?jQKx~`VB@SRD2fcvQ&aRk-$!#?h@Z5LG;3`0x|;ugGP%dpYgSd3mEJF9^AC?wsv}YE6G>k@eGOu#qg1bLY;|?R0F{Q&(KRe3@>qi>@mA z{Y5_fk&lpODbvY})s;0q_3=-VqzQSE^WgpWF&j;wvJ2!x4?cth;yAQM@9I}e}wM<6mMno3XdM!?|Pd7Xdvr@TRbCq-0v_c^rzB#EBZnA?A{vV~~t^Pgk|sn5|dDE)GSK zpwW2B18lacLE!sdy&%;d9o_hI1m`x+@z$*yJoC+Ov$lK+Ep7EAfL0jMYqc319AdJP z?x_v#yL67CtoUF5!9QeSeU+7!RYv>!xWbZzD-6Cc6mf#lm7RnZ8DYPTBL$QFL!_&i zj>jx4FR^juZVq;LhLgE;^Nlfw- zZy~ZpS&^W;fbPN~@hl;1xwP9Y_Kyy5-Qx~&6Vcd2Wt`ktnrYGdy;e;WMpf%FrI2XB z{4jBH(e^xV?n|6+Xhz%VyB(@w8tR^GzF>WIUg#r?uvzQQ@iYnBr$HB10%@eOK0I^m zO@m{SZ?l=5+)S;)#AcVfev7CTz_bD_kglQ?`9z_|Y?e}HCB75jIM!b^oyG*NOHpak zqM|A@@-#*IE;tHNR-|!^F!hv0Yx1JN_pOw3mZp?wx>1X3ckXa=>o+m3N59)6NfW{- zBuz7-PKz{6sI(ynTSR5W?!f_`XK1xsB+~rO?(yF2 z?5xKwEC~n;V!03jQh+Ez2oew_LSj%-ghC-uq8JJiijY8&6dd7%UD)OB4%W@?&g^*8 zZo0d=y1M-H*B+axKYp3_p7(kn5jSF@daB;L_uOMLf4|??aXfj*jq5iUjz_%wy_ebS zXE-CQonA7csw&1?BZeD89zNVBjUt+&lK814rkCbi-rFNnhH61Lh}l-no5;w;$Z%w3snDK4o!o2-cFtJ+e4rYc%rL zSK|f)AJw^LVKjA%^14Iqo2kK`;o#(y!Dxdk*RQg5VVBL_D_pvCjlp2R!O&72(EDB@$x?c0%<1ujqF8b~IixKcb~m;>3+@u*(SW_p zEo@OSFBMUef>Y!sB8g)LqX9)#vNalV{mM10GR&qkw5@rtzfW0N4o^>*FPAKvhH=`% zmL>0d>M7DFVrP3ymgnq0e8|nW-)3iLhwVHkSDJo5$Cfp-(D5aHas{z zW^;FkL7cMx?tS7U=J4oT~GSrAlGu|~t2R#0c%L2at4^hNcWQk&sYoPCo`JL7fSj|Dl+gLFoE9*+=xr4qRP^{O$FmR20W7K$hd+XLl za)BM76|{9jFY8GnPg|o~OFvDqxD|cdDUlcT`hC$KH#K#qF)^LmCrwisEJSJ*`ME;j ztemv6lGwB;j!{OVm8LFBoV6rbDrU|qq>NaqMd|A+`Jd}F5S4eU5ArmnRM;M5Pg8i4 zH%V7%TT9)PsMwn{yOz2tSA*y93isryVQFi$irC)TrYM*E+yB!)!>g~p#-QI9Bs;LV zynljHin6LHizR>R=l>Kx_a}aiNBjGJ(6g3_o!5-xcQi7E9x3np;zTNzS&w&v)_Q0I;MuwtC_mYx0BKCtNVF1MP zyrP6nWn|FbIvEB=L_TTCV3bG#y3w*-dV3hwB}pQnKzI0W%t~$ntcPO$9*^UA<>wIY z5o_&gEef6xMr&*@U^}f+F*B_&*D_(l;1@b&+b~2&C^32muOAck*GMml$_(wiY?0NWu-hi#mEtC>1 z@NhKd%H=Dx)^c!k#Bem?@$JW%&t{xVPTASqK}CkiVnS6ET)41D6vfPnC9~O-%X=5t z8f|g+(E~6M!+xLna>;Z)XOL%9MT1q2ljVfHoo$qH9D6FfMKV+$KHO(>dqWzqMZv4z z`7RqYWUjejIVy}TU@>VIJ>)hy!qyvY;A5bTg;doAG81HfHa9jGmm0#XA=$F zzI%su)NRA-uY8}>L`+XlIJ7O(qY1XLJbZAUG)d?WM=a(ACnqON9=`@C z_8;xjI>+t)JuwM6nQ$_jGcOCaM?J=GUHBHIKUiuJU{Ec5>SuWYy*`?nbQddGxsmmqWXE58gp=~S?j;0oq z!twSFC&#B8pPY)B(5-!qsrWplJeoET0|CM1Bq5>ZzT<-8&v=H3A}V|jE)QS7`Z96A2 ziagDUqlhYr*}HIoV!345HuTbzB+qbKQ!gsC5*O1&Rgk6$gW-sylM^v^(TdH@4T@z+ zFYlA)lK-rAOxaXequAWtW_Nd+`C@@>YBmNVdTEc-*_`o(J#@dv;qehO3Nabco^hch zSs~ETR+Hb*D|a+S-6?9g2gA?EpKCo}SggCh8#b??&C*H>yU!!<&O6r{PX`N&xL?M7 z;VRC=CW?giY8}cbTI+m)sJ&1GUx-=nVryvIM$meF?l^QX+L0V?p(E-QWnLkawZ;P} zwS#3~6|Ea=Mr^EteSU7-W5hy#ZhP zy{|DIZPFj+93LOCy|aZtHYH9{wgv+-Ew0!_T~kk{4Es6HKlM0+ zEW%=0wwiB!>pQ&t>Z^S0&;EP-&Uaqnd+)r(qmxtq*)RP9uYc`p>|WaD#gBiK3tJZ% z4+iwI9HV6|nlBbCtCCq+@Vj6BGOvE`+Z49srg79T$a53?mL`L zPnpdN=5@n#cFMC)Kgs1QmjM{`Mw}iWQO=1* z&0?}NW7HqAoXr_~FNFJ#9tiDMX}0z@QD_!LOKVU0=(A7p@fV(BGMlk~yiZZpT-w>= z!NEhORl)J$A(QEpwh%eg!|9Scw{P>M-}oZi+dC+vIZM#AH8AQipD(br$o2YZ!pYGA zX0*Z9_9kUrvb(qAjT)g(k1}4ceSMp!pM4*{{>%T2!C=Vda1+{=K^Ehjrmh=L;TFU$ zN|IIVl(Uv7k-YlayKBcuB72FoE2?E^c9p^-@vMq#SCL+r+$z=9sTCmo)f~Rz^hKJ5m_JtZO zLsW|xbFKd_LL$Iq-;Gv_KL?o|U z+_hD-_PvRs2p5OEY(YL(Oh6^iSWwOwRb>kB@&b_Qs+@Y zTerd}Q22VMB2vP(h@)urovbBo{qGk=i#_wSP=u{TI-&zzU= zxx%iLXQK6pe_#THm&bq+Sy@Ar#9-u_c3&nkXYT2yt{DslynE+e{^I}QKj6WG2mgb= z$6xvn{~~|qZ~a~R{XUENT#)Xjp|92vs_O&v9t+9|YU(T|7W#a6uCgp+SrkM@(BHbQ z&_vW#O_F-{RNIoL8Md{QRYlWEy`XTEZHx2wWvCD8R^qJ#+a(MHf~jrz|6yGKX;{mu zBsP&}KFViX-`uY<#jDDjb0@1>KGao0V^3EAhcx-hvppOpk~OhuD|D0yBe$asH{K1t zZPr@#a6g2aEDRhHzpmofrZCV9KOff6fcS^uL6WB6hn&s@-+|^#1HSS$=)|>k2OHtq znIQiNJ|WF}&3ae&b7%cpnfE<-^oT`S&^k-M*Fzz6q{V!}a4;l}V@@U~Vqj4>)OE#t zv0ymfpx5hhbaafhqNR%CnEQ_&qO4>8_?WU1*W+k<%3`skZd)R4sB24OEk~16oNJlQ zmtj*rC@#W{>sly%9;WI~?xI5Xjt zby)3atm5ILeT;+JNwiTGCrp=fqB!B+qenRF7;kJ);&^!H4vCT*`;|ApPu|1Q7p z3qQf>;Q{~Xi@!wKmc0L^7x<0e{t`EDzQt3|JWCoSL`HLY?<&_XToD?IZCF+nI4jwq z-b^F$Ss@+pgmtx|-cU2Wy&!JkQTKDhA^Q zS?AO$`k}6C?|5oaO5Eey)`<}l5;IcO6}D-~(hQ|Emo8o6E8qGm|Mc(u9X8UGVmTv@ zB4U$Z;*{BZ&ax=DeElk;EF(@0d9R1bQ<}0O?Provo5U287VR9`oAD^$?=^KpoMzaj z<>5PbiKB#Ky5QO~Pq2065&&r;5q^{V`%DfFi28l%*&HH4J7Z+ht(t1(g1ab|T;17X zXKR}n%^)9fbUL9w-sYRX`Kug0c)*1#mzkAI`hA()H_M6!nd&9I9+49F_5PsG$?35) z7IDO~D6x%WYkP~bDp(d3i-n+>ags0^$4pKp%;yXGgCS*8b2^>UHkK?+Fj{l#t($10 z>8B}4Bo3al=?puWNc5ssL`pHA%}BD8x~!PGsT43(#iEshRw>P5vA`rlj*d^59G~#m zjT=P$ocnj)B|nXsF6V4-Zj(hRMX{vU?@7c_zsK%l*ZA74*Ldme=Xl}Cr+DSHH;7O? ze&w>z8&_zAtW)O;z8_@z*8Tgn5z$({(M8<5$kTaRl(kk6Atc*eOmMtoJ4)z)XV80( ztvQP#WRo^4L?ntLj1l9zrm4|d5ycTreKrd{461_pU0Ig$|Ft1aBE-#?jWHurWI zrag*cj@GjA9Zx6ZSw>q`#Avd9kJHJ7G>O^T+T!rwkgBQ~Z;iw=plVpU0;8p{$g+&- zslOJ^F`Z6HvXt%ZEgs!_fCI8Tr)?co)ljt!<#Ng9a06>Cy;M8`%Btew(J7UVc=?rY z^V-+G%%6MXWmJ}8}r2m5SXzD&He$6I$FaOa&{9G^^33i|z&jje5NJn;n6#VOWZA~z`q4<9n# z+~n57w`r@2{;1FP#fzf3RN~f;QuKCrdG*y-$f67rMf4)gcr@hsC!V0HDqg*Hi`F^f zBg4_r5szKH3fl1S(F4*b}&`P@aA*$d@n%o2Ff{0bLYP zm+P7*Gyvfob{mDpN@OhFj4aY#9_7*1ucT z09aLYA_!YS^^+u_@##hiB>f1H!hulM=^RGWwkxB!@O*R!UcskivS50P#++&aS*M0`)u` z%c|c1&xld0_0$G1#ec3bVup!l=qUd?jo^x5~3(#UPvBtp6AdCwb^<~r%{?b%Sh9dc<+KokQA|> z$OdFaIZItu4EjTyQ>1Ys8W~SXRY^=$79_(Vds{irT)W1yoRMcSkM2L<;)M(7$gsP) z!F;(u>loEY1W7a;P|O#M(;labDJG3cq7ku@NmZJp7^SG2l8ucq){ZEvl8wzxPNoyK zx3(E%ed1ViI60we8irX;(>U~E!RE%8Vm@ck&)MGE0tayvvs_H6>z19JOGJ^Qm`&-W zJ;`j3BX;-ph^%GwnIB_;X8M&cQ@2ZIdzbj|Cw`bG%Yt5S$Twd3DsR5|8V5(m+}wSe zpZw^L@H3zKG0L{$U;NH*^7U7~&3JRj=5WmII}dr`nHPEI&fEOD~l!WEPf=la-hT(X$Seb8+%>PD`yIY(cQq8O|~DYtqs*E(N^@{6YRn@ITg@DOMn z%*WPrt?;0%7gx2KeszDpYueB>jkrR_{`jmEf;ch28E-9(n8ONuGJoeZVjPsr!V$ImTxJQ=e%uXj99v)EF6~<5Nt+J@rH$h5alx*U+zx^HR z`2uSjvVMX44rh4X15I(lj_U{eBOeWqx!* zUDag$9*g-*ayzxAKkTEUg2~B@qvK;DBS`ki$ti8qQj`TdJ3DM_8jg>SXeo#;FL~SWb?Ph@*tjct~SgPESr44~O(GT;Q~6Ih{@@suEpRY>Y?jPmZxh zaWtDy%$K4avug_E3ej?FhthDbpT7sgzn`b!bzOA>THS5V1Hv9CPR1Ct!^=Y&U_CJC zBJw?-fopMCtt4f_n~Vf)SvbCKae`gzqgKyn9Dx?oC4*38i@G4umVUlP62}yarRdve zX&Q_3k(BeroEFPTF~>Tns+N=4gyC3p|3{M(Tx2N90u3zNhGkJmBV0FJx_XVv7ccSh zYp;>@2WY=1G__$qDcBxw)3hadnt>{5TiH)$#S)ALErZm*RDNA-8MvV zgw>8L-vR^6*^*(h$HvAcrg7xGKH3;e>sT%eZXNA2E0@%5&2Ts%i!O`PajUReqgv62 zOM%@;qtGgEzUgp5BW$EGaMt3i!ReOC;Q_^R$%jAn89wx>A12ut@!P-kTWnl^ioxb4 zlU9)03zx65b=5)Z81x1lK6=FdgZpCGHyUH(nvJauv{r2HY|vDeIEk4|r!3}D8yJMf z+m?>atsM-C&CN}Yjt*HAOTPNG-(z!Yi`XcdMa5uafEy0j-57CkdymD9Yh-!OVm@bU zbDQOKMpMoy7fT$9Wm}+>7GtZrqOBW>sv^O0bZ|tLr}VOnWm$4KKOr#@I*K@)2;*kl z&*hvoEf0_Pnb!q_exIH(T-n*7Y+Dv(!BZEmurnTmQ7qe*lXA(TSfa{?d9h$RopAK% zfazkv;ps8U<&x=S%E9!I+3ATGMj<)ck=6{xLz=Rpttzy&L~%-zC1jByQkptS$>Rir zqG^QY9Y;cYRBpYFD4=TVRr3}+SYj`e=_1%tNVl@@7(t=JIu(YC0p(dW)XsTSSoth* zX>c*h8*e&Vx7M3CjTHNVV%jaR!@mnv)r!GiXs`fh)@--#TIihfCZj%M7-=$v@);bk zeZ%ZyJ=Y8YpA+uHCp?XXf?L~`L@6JaBn%*f=v%ectHv~}e?gnCq#Gyb*a7Osdeb>s z%ab%&QHxEqHcGRd{XvdV8r#I9({)**SBxf4%{97{NF#`5)z;Xc^;bUT%*Tc`emI*X z33XM=@F6zxK1$)Vm~e&b5E^*Xaj`JE(SB*FKSH{T&14z6;ibbFpGV`m`XFtO!c4nZIFu4DYc*_IrMj?ByA*g}tpE zs;WRK#oq1?T1(SD8jWQU@Wu|Kz98*+nqu;tQ7^~h7c5tk4O5g6#7iYHNxDH%mU6RI zl~5hB%o`UBX`RraF7E6I6|-%rR6ufMLv9<1VJa(GIFj)O<#I`XX9xV`FT^qoheH;N z8EFzz7cH%IeC&fCVqpuCBxW!ilB5Z=4ddYeMMP7T#7TrsGwNQC+(ZmUeQHRua2nehQ!3A!x3o|Q@07uTJnuVGO5!sHrqzUhWXJPO~f!CQegP{cfP@I ze)&s0_vF+3qr(ntIyu)$e|fSMIzC*%J8$xV7hj?%mnfxaZ0k33wbG4+o3v}x(0#zA2@q%Du1Q3=5ktYz zrHXWQvfYP!Wm?fi5(B+XsWZ(-n1+U8AY@PmgfNa`Vl6|Q(P+S%H*fRyokKqP(|?H5 zhwpIrop*`K1yNg3HWuSVhkkN$Oj}h9?10VfZBUx|Y))O*JpS}kxWf~E_n-f=&&_Rd zPRw`$1u)7|MuWag=*pU{D~~ZRYWClL1Gg+GCpE>%f|ox0L5ADg96fkIe>kMJ4gFq* zb(*rQB)ZAdl6Nj%U{Noy&TzQ@h~twJ@?MXstk~PRNPg`x8Wc^jAkH#2_b#x1{~`N# zAE6V?#(0bOKl3bm<1y8AM(Z+`UdO&M95Kj;Jb3hwG|Ny5E?&GSdTnPZ7EAIhBaS5+ zXfTjx`Qd{HY;KM@ZEMt0`B=n;!Ei`bR%je)o>5dK<#Nf=qc+PET&U7 z_I9Ytinv|Go8?HwWojZzX|4F&>OivneeWsBsJHvyBs~x}Ypel!GMAD3%MVsw6gAWB?|n zrzM|OAM)&I2f=o9P;?pt89-qppoaORpO}s@WDg&wznx4ONwQ|z4`&hIyUmm zBg3LMUM^-NX-b;*C|fW_k~eJI(z@1XOUpA@S2dY2^wUfnbG0UpBbJLLgMQ9Hr6dOW zQAVmnJ3NjOQZGj;s~V*uHivz-`a?!hN}eUC$dE)abyHK@Puha5cG zXFgwWd~(FW{zJ-oK`}k$bhhB&?j6xB_c9us=vuA9_s_&hB6LyTG`n`a?>UgQ-6L3G zPYlk;VHh2r>7e%%>UWH_jo(l8nLRVCN7h=jcRUXfM-C@{XQkQ0Q|CitZ$iXW+pPBL zmHCpDrap=yp@v!+0HKvnbBQn>N$RebVrtlkA(xYMie`nP%bMhrH^tLx)ue^OK1syj zDy+|801?O0iusbpDRC6hc;-OlnL<(fq+@*OJ=22*>y7bv_O+w==&#Rn! zIoC2=Qc4mg8b4r@*rl2z5^!LBE&aNEZiw5Z;4YU-kMP!5BlmdQx)n1boKq91`kleC zZCfx}=+T`4^NMQR`Uuak_ciSbjkLD)&!t13Z-D)Es>*6*UMlYJhP54+yk30Yi+uLe zpW*oAgd`Sf{XhAq|AfhOvicdNb%*7!KF%LxUbtq8nN@>#9%z@JiB~B;Q6dtDF2Dn< z&}ZZC?I3CRL7)5MKlbBXym*nKDB0N9$Axh-eC+|I@%}OrPeZ?JS ziq?kte1=vstPY6?S(f?du36uQ&aM$@gr->(OR0sO4D6#g20RcDi7cY2sx><7_qyN| zABKLR#^|zI*IH}o105jAiEEFW^J~`G)SI=2J$w$x{?>NazwYNb*$2hDCc#-b#w5;G zi~?BKIo&mKW!4t@l<-V}Ptg%{y>4YcX?@;&62~n4cL-}rm!^-e4Z`1b2LoL_dbbx5 zc1?_RGHh?H#c)=)-USrH|BtkjiDi~$xYm(nDM>6&c=#!OFU^SJn6j*h{f9Z{7>$Oa zI}J1ettpCqJZOO9~qh-M~exWdFN>eus`+b_KrfnJ`z-00{^Lf3Rcp0rRu_iV` zpV7(?=icGeX!3lM>2xO9l3B`hGDT}aQNom{UL0}b!UgUvj!4k#Zf%j|xzB{G#n>wE zF`Z3i8t5Ep6k(JhjSQ-R?eQjMzmWI|BR6@!KOl}J0x3%}aE|e4$mwK4E1U>S6p@cc zRAohDWokVhjY(t4fi9LyF#*al2E88l4)&?*hIlX_&oY#?46{B_6iJjvnvmrw&HR{q zx9_uaVUNe2c!sJj`Nns?#e)ZT`Ah%yU*M1a%pWF8Q@;6~Z}8=>{~l4Aa_!1RLB3{l z;>fVKvrV4%d9?qC{liD3y&=0>+q6x?Fw6M=E7(-c>XXx=~7GVEbVx}b#3&moA zHk$3-J^sNj{4)3NJ|IqWKKPj*<>HMudE;B(U@@C9n=H70`yL&%MaFHzbZ??%cc0m%sKE?jIiT!DpW5P2Of_XPd!z zNLiFCx=|?L0vlw7bol!(6b)f&+b!C(7Alig+D}Zq&bzb0g?ko!UavNwr68{BHF6&A z{NPNhyv8tmZkIYQh5uUa5enh%@rDh?`3Rl170RR5hPrA<5}7Brt);b&qN*uQC(IX1 z%DQH{EWjczz!uNADsWm+&SpZlHFYO$F({*ml^~2|T}kYfN7b69rYb9GAe_)hO>CrjE~NJre-UV!0$r6RbiE?ELu%U`J>YY%8&J=k=&jB*tD^YoYWzSu1oaYjB9y(^{`6 z+)*51m2V=9!NlGe4~JI9uQe`gFzfwg^?%m`;jpLFKOmk=d89b}q6{P=Q1(5f^q=^# zALsw_pZ{kZ+<8Q=*JH7q^OfKG@|gzRS+^RxbkkGbquqAWRO{IH6ds8^|Cw5A%A#29 z&Bd}nJ8_dg^F6dMm9!G0#z2`r-^c^}2mk(GZa8e_!pRm-}r)w($c&eTD$c3AKJU6*NSj6_U! z|86aTmEn-cVE%87;#yGRp>GO5j)#h zO`c~oo*GmxmZV9JZ8eF>sM?0XpfAN)Rg)%(6thJ|5=ZoV8L>&(7>}sS5?fc4b;+_^ zG8hbqwPu(bws&^<=#TyspZok5IGWCR^R3_HQy=;`fAlZ>N9>L^`R1$N<~P3iyA*ZF zlh<$1wiS!Tf_|?@7Kw9qYzzkn2Y_X7XAh+fI7QwcQq=_qM@QVcb&HR_@BNbHsl`dM zX@rgy8i2;TM}-Alv_2viaL%q8=kVZ%rs8}?v@C4N8OlfZ2JWKa!4W&eDs-n-M~7ydg(G7g8_*$ z92_6zx@~d)KC6C-v7Q2vY0Lz4o9TDoW@!r9rNJs1HSX!uXF9jV_ds> zgFEls;UE3NFY?pB@5lJShhL&>mc)62tx95NaYhq6K~szwO5Xgy2}+vAXyA0dVBlRf z=Zh(`(>a%}UByH(N5>ORCsTU8KC|fwb*&f-hm^A^gVB)rVlKV}Rf9DeTUNwLM3Tff z2aDxWXnvZN9xqN4mXig}wi3r-A>G{OkN^C?!}RooZ+!b}{OBM56EscD^=F^v%9BsB zxv_=AQcM=yynlyB(<6?KkGOE@A{%KB?HuFbknvzhix{nG)M|JWXr(&D*?80@Ec^l0 z=-!`U8fv^Ljq-9r6=8j6L)v88d$cxwaOv>Y8A zO5<3TES3u}QsDIR9Brk+$Rfk2mtnJvrY>2|#o>Igxrs6nz0puM=AtCedhBk9!D!R8 z^fEDG91I4W&Zq2d@34P#EW?;(fs13blIB||yCSV3R2}TTA_M9LWa1Gpl!uJqgCKg zWJxN~oNbGajQEtami}PKvMyFg4qCFLXXSK7e_ocg3<~0yjlnLvTUUslF!XwTKK5fj zLA_kCp)^I&5JeJi6^43|Zz@~cuG2)Kh%`;l6rW+e2$bxw$8`sVQs4vLonqBoubR=d zo;9pZ+UN74q}Xmd21XKpB*-hrh^ty5W3CfT>DILRu)pIF`HVT6x)Szg6AL=# z?Ae42yt}+z6{|j$NO|XOd~Uc4$e&~<h z&+1IOvZgK-b%oG%zJH*AH;o{9Rb4>`Sg-*_3}~}&M54$@j&(=N8}^pSNQ4)mK|^^x zaWFrV2s>jmN#gUHt;9ICZQ~^~ZuOm<^9`L{qnl_$YyI`}*Vs9Yb1lI*G|zJ{Ls-9@ zmz)NNY{`QE!L;!Ce9qDR1KxS}HoabtvMS%>a}e(HE*KN`x-*~akZbCP8d&F<4nIJv zZuE+Q)Jrn3;@aPRg+WW@6MpKZVX;_Ho=aWRK2gFIWdX&7w`XdAm?qPB2GA|h-6c{ZXb!qU>Zwexq=$aT=35f~as zxlZCu5&7#FSc10Gh9>F03W5z?t{yf+bxxZD0qj(-GFL>TwjU)&pUY_~Y#~%Bz8#F=wAw|MOiS@%(W_ z#?Z7iO0EAbAo*dC7^2le-S~st=%ZoY7fQK;EKB8K_Ee12#4BOD_F{c`Yv}nYKvUP4 zNU|+uLLg=zgI*8kvegE$GC0Wl#6!vDJDHv^==F%=n5M32TXBfj3X(V>iDJrH5EJEO z;dP0a354ld)ztK|o}2*hf}D*vu+GW!InUV`jhRiSGWpFC#>1gRV>pLy6r?d(lF~Xy z-L#DQ33-wcnP_#R)>TcKW;mzF)1IHqSYjQqyR|LG8qQIbB~D4i4Gv;0?-9odPFd2n zp=}*)++dRkkhp?Dzb8g74qV+(l}j4i(i`*{I7?L(=qP4qdxLwo@6+pV@#)V!Lo;3Q z{H1IB|Vb>6eS$)AF#1GVrP4cL?^UOOW7#ux@BWy zEH^PmvK^NTp}Ms(o0~fv9vyKwIYnz&E|)T(QNp_vGd6>@YwD9sX{8acp03tyxWk4Q z9^NhmCeY)%n@N{06CTX6EYB5LYh)x7^upc+{vUt+Z}Q5` zH+W20W=D_M+S%sKS6-zz5PkS;QIPgi+OlA4ZtSg?s|LVWxBVYI-KKY@KusEIZ=-s>QYenA6iIarS{m>8b>YdxX_SUO>;R7Gx?*021 zldxDWSj;B$`aP7^ym|W;P8s4n;iXS~f;f(O=k7g<*_=sH^Yqmn{`{Z+i}z{_y|gCzW()Z(a(Eq^m;UzOp7M#9MZr;4f3!nZJKl^h( z$IQ8pD=hpSqKS&yQT;X|6F>}-yRBaN$CZwMsDE9*_bYc=Uc z1g)7K;obvQ|1Px5VC^RHHEW$8X9{j$m3W{%m$^ZPN5-4;I6QsPM5}u~(Bzbg*3X>O zn5*MiA?yA)W#AzLfi4On=ewnDN}TJ{dW!L4S&(KKD9y4gDZNpR@e}I0tZCcEGn-OS zihjQ@O?0GDMu}rNGI&Z&L_F*>oh^9#{vDos_IXBWkNa)Q6W4Cg&vM$blqSY0`bo;> zaKQ0&ifzO+r)q1`IHN{$a&m}m8rrsII-N3|P0?DhEGkmJZ`?b0#Qb!^VzxwSg)&;a z6$UBKKk*c4YM|EaZCs{jVw$QZ^X~B4L6k<6h2*gAY;JJ-ctUM0gW-scom~dITa?Qs z#Y8Cmi}{TH)`+dmO{zuBU@($`HHtVqekAvwDTwwiazA~Ox~NHFPoa~mw%Tt)1EQQ_ zc6!Wgy5z=7@8hR`?hD+wy2tTi%CG#=7kT&IUAAvL$&)WUPqQq!`O2#dH#gYWyFg+h zwl>CONy4Hi*xDR3ymXbOYH^WfUd&mZPPzH|_lc93;c(2(?hb=&huxh`u3ovq?#31y z+nZ8&DZ}YxLQ|FOA0M-*Y92PHXdO{|L}yV}+jWX1=xmsvqu`oeSqN+-gD8ZPR);1n2klbKvp_lbV?_Ek$nS0l2$!wO)=RC=%{C<;qL|Q-$0R)mr zsP=W+uw0g;MTEuiusvXBID&l0v{+!A!Z_uJT$+B~li`CEGqA>cxU2?le$QJW(tf?@ zQhK|^Y>0*o1)i)6jesK^6f3L;v5EZNEvU|Vuasm7Z3XdjR#+5DDUkridS!a*9O!tx zzjs}cy93Lx76q2u$`q|>&{m3BX&gEZ?5xep#4jeoDe-cNyi7+5Zs+|5q()Vd|9-yy zGR8-Y88Ls7a9(w+^RWPHRXQj z8#Lm|iuZ_CX65p}rv3WoU&+ux8ZmJqPhyGEGG^^)ANHky%!l_-O0RO9<(TzKk|2m} zBl0e#d`5(K@Qxy)$TNMM78dM#!Q?Z#{cs%f`CJ^|&o%SLNRyu=u>f=`davuc>S}O3 z6T{i}8XZ(KrDiqjTDF+Xg0^qV-XST4|CvdCzwiO?gbO zmy`Eozj)8j#1VO#b7GIFs)|9J`Z&F_0|bTiIw*}&5mDqLi~SHvX`!h%MR8Ww?1yl* zuWwMo_Gp@xIEg6R2IVAk-Z_iXKJ~?UvpDByd=nUJ4gMYu5|40SJKsljn`39iytdnr zhI8Ge!mqEDUa?TRfLvG?0!_aw+mYdHD-1jj40fN5a6iL(xUw1w`uC5bNWdW0X*^*a zD9ZB8bF%_8tVPH1YOM(Dg4Or(KiAa4hK^zZie2aVm7!VVncU)K6B>P)G71jRbR{Sr z@CoNG{CCt#Q%uyC!qjMrq9BRlRf99^4Z!QEtEOhq&%J??&_tTZH%3WIT~?yuuptg) zUBv1*@r|6g6l(=L<4yT;)?$?rYKb zE6OOsc=yW9!3Y&c;)2^aOd?Y4L=n45#2^2oKhL$Dt9<{}m-$Ek{1-TxoUpyKO}3p;G;`7@ zW#h^!#B$oIO?JIj{#egB#2Am~IbCl7{rxR}7eMfYIA*Wo+;?cB?OfRu3 z=S$H$2^y&VgVoiCghHY_tvipDcQX{jzjZhIu7>uYaG{A3S2~>8G%1#%MI+@YZea9G~*3 zpZ*D6c;N*$Hn+ITZlKbIdn}3~TzfX}b4B&i z>uA94^iwuaS+7C?5jK`^FNXJ78y~Leg37;v)|%800=q?TIJR({XBzQy8_v3@Y|uIq zCtnu|04a!86ZED6l$NXqCCgCmWS`WL$eSAy!puyhet<@ z_cl2`ov=IHhSpJ)l{kuzH!16i(+4LsjizcEae_vH(OzFGg=mz~w}o5-RIBI64r+AVe!%BZI+exg<#35(dwQY^b!Vfgi%hIc5zBk6vSE)XJWz?8I4I}>Z&1*Gr-Z>nkY($lT3z; zR$`!n!?1HwgD7pta^G0e;%tl7zUZ=!){3`4h#2kC5VbaFBi2q;T@xoVtTsw0xs&-s zsIrLwA2M(h&?96Kw;mx42yb|;&rNi*iESsK^gHSSRa?y!t3>5BWTY9&;!!A*R@C+(ljHAgnkQd#a;;YMlf0n z5wM}odC#@c+UvXBszC_Hul3qtyr~+}EJJI}a=Bbx>#8hKCYEe+Z_X)3Q<9rk7Amke6gn(-i^FnTRP z46oG?$oB@3iQe-w-F-KTv?Kv2$znhMvfi-6DORST=U>4fF9~{j{~VnkHaI693sDqP zRlXrL8WX)&GcHZPqOL{v9`^V1Kcf^(XL9bu;LJ!vckU$=YA@R$?A3-SHonJj-jhPF z&$S9jt{}4FQBZj8zyD4IpQnb%SlX(hRT8P%G>z}OL<(s=RXa52=j)wt-*+9xVeO$1 z26SDzb{Aa^*S!b)ZH_5sGm<>#;`Sv_nl#O^ zP7#@gBuynJv2M;#kyJnsJzA)>P;bn5NLiKQBp(@%Dq5UtF_ETig+i102qo~Y!?s<~ zu(}&om&(!2M(l3rs|U<4)PbrJ7J}~P6E@C3jp}YxtB1n5mF6glW0|U1%Y_RU`5S-j zukpssxB1LxKFw@4CDEG2(GkUT%J#J@y!*ZHvQs&3JoPMfS+khTIDNS94G`zNaQQM% zZtw8Q-MjQ0TpMq5eP@qF)3P``zitR0Ty@;o5fP7`r_hQ#O_8?pjBjMi`~Y z(uBHcF(|5{q~Gf?NK%nuY;6mQl%)O|CS-ZeAnVi5avIli>-KG~-MGOr(6JKQk8Po`^m;w!iv^99=6N{mGh5776uG8psD0t#Q1p8l zqkfNR-E#V1AE#ka7Sy(;wUyA_7fUKvdi|57X)5ZrMk|9+nx?K<&Sq3)fis%DE7$no zCtqZ5?;)6;(mIa589`KqrD|b)P(AKndO|O@sn+oMLx^YA%rd0|>%cH}6 ze(^WI$k$)}9yhl3_|t#vf5dVobX%p)>h2t@P-54N05hd;*j-FK-x z&3-YTljk{g-SFUGpTS_Tx}N(7``D)8^ua^Q<(%bW!SU&Y!*>q&jbHf^KmN(jaqaRI zW{a8EY)X-uq$!PUXr`y!*xTj)g)7{C=Qeecv)LcBoSrh?-KMH5ZnT!mH?Fdr&ne?R zqoI8MWI82FrT8B72h3*`aW5kpNaLqlO;tCP&Z14kFdfo1CEFLT^4TBxQL^zS?>so* zcmAJ$l?QLX!KG_Ac>cu?QQe@$s3>P^`y!{ukEn}+(cTsE?OkrY`F-LC57`_K z*%%Ia=GtY3qdwQ3e1bRLzQw_VV}=`Jj!%xcb^kt9UGmj$f0M{W96x%_5L<{s6_jLGDP>EzhU zq#~-xl;P(-%e5<)84ZTyX(~pTTGPu@+NvN$%F_&7kaK9FDD}mUB2Cv) zDTT(ESaPwg=$zYD3P0DjBylFOW^qIm8QR8*Z$ccc^11UoUk#|knpt}~Y^_wc)sR zT1#m1o3@2W(bS$z0e)?WN#dB=4^zA6XT7EZgf-QybkNSD>RlA@yv#uEiM8A*To+*z ziZPwliZtyESA9)ltwU)UDt0Nk;aVqYddA_uwGL(0L)h-Q4K+~LNN_a}=?rjM*8*M( z>ut{!P&JJtu)qrKn@*=IEws^QW#rm@1%^d;@1(=#3a`KW5B@&C{ky-jGJ*uS_uwo& z+&af(GVuctU)x2|d)?WUlKs+2f>0DozWIBo@SW$SX{DACrtNzN4S|WaVqa?W9^@Y2 zfBC=q56OEytd)j#GMT*RXX?6Pxh&}Sdn8FjYisJJyw5_Bzgyy#kkaUkpDUm&EE%ju0-<6!!KYPIl zb|s@g8u`}RmB&_ClY{*RgyE$O0kL+aYc~P?J~w#m9$S|Iu%hJqdw>;C+GRH?BAnM( zS;;;$MiWIEYvqSkq{A_K10!VfYip9opfnh#&`$F9Pzu|Me#rrGv^Kp6lpRIbv?_n& z$=8mf2wKT?HOl8$YeQs}*GCy*<-i$?QYb`&Ru%<`cf$=EVcXQ=0-MD&RRcaD#_DSbTCfnm|831M4~E` z!E5s~CX4it|5bkLZ~nJ@>L-35$JvO3?|uiP zEPwQ;{~$m0g&$?UnDY02;qS43@QA&O+uV5aItK^)oSsa$eB}!L!I0V);nq5|f+$MR zKoZCFe5QCn0EHedQ`IPz$&+@5#Jg#iRly)1U};1LrX|uvYkXnU`oGhwiGA2ugEr|r z6-J~AXK7HfXn^*5x}XVLF(=LyAK`{?8o7>Zq(F5RUB8)yNwc%`dwt%%dzat->hE#& z;$=<_4k;$52+{o>?nb4%d+0{G8|iKw8l*c1 z7@F_A-+!3v?Ad#*b>H%4z}K_OacnmU;Inb zIM|aTQG6{DNDIprDWdoVguDAVU6&mM0Wf#;eraHG1UxKi zP0=9_2myYtKfQWq4m*cfSKP`@%`b1sFe=t#b;B$;9s5iLg9hU4ZK@yow)9(`Nt8ui zUd>bcL*?fyxiiOef_j09LI(m{XUX!wY(wG1sw_D_@ssO1eVvIQFC zwPjx*Guku>Gc3i7@}{&@v^8O&ktz?HjHX=KTt-A=;qg1=ImClLaPM`=hVvdXWuPLJ zS|J>K_rqjnuZEepxw_+LLwaLF`_sfSK*^|Pk@GwHZDcu3(C&O@U?;q^=it`2J<(Ru zT9h>=;8#7F6yqCOFZ#ZM?vsZZzdqJ+y)y-r!ujEpawK1UhGoyiNsilqOVmq3omhhY zOCjl5GGW3n#Y5O+Z8`d3V{Xb$fh>(Ijd}kJ&akOvi^m3D_U$%~Y6A~r2n3yzI8%`+ zc_tL+QX~!*|7`=e#Z7D{WdO6V> zK_wE~v+9PXL7N(hPyI>ET8k?r_}(b1)$_D7!HjBsPa+zS?l8|>817PEeMN8T!ozSV zO4HSxWIiDb))&{^>N*{z_M3$A-JE~WlGptw8G-^^y)bM@|6}#?k4$!je8xN=5|RL~ z{l`N>6g1FuaddRAbAw6Z+Gu@D)P(dGJt}vqseh_s`A=_am|oR~BVn%h4PQoC=T>=o zRf9Jm22K#43!eQ&R0z-&%-Jsfqm!eqzRmwQ!cpLLR% zCAjpRt&_(N)2)M~tDfEu@)%kH1Iv zx}Q|O{Pvaz3l#V46|88;8KZJ^>r@pH6f^}>%p8S*@*!`D3{^oka~i^Xf#V*}mN79g z{30S=lV|Qm6S8s`e#Wa{H=g&0oxl3N45BH{hVL%tr>&;^#|`<~Xsavg@@f9!VS<^$ znE=f@{~n3#YWZyK`Q?uCb1>=5HhP2j2h6|lt22&w;bw7Y(lt_^MayNXH#UJEL2Ue} zB3`pzO&)us6d&w3!_3Nby;4d>1$mq*-XgwO?o*FV_BhYj4oyCsl?Pivqs&~Mp+WvQ z@iA;P>y%)(qx^H<-VQxJE-QSZ0Pq@8E;hoeX#%ap1(Dho+Bu{9jY}!gvDY`Ss<-}- zM0g})e$jz%pxxTl7)jx!?c#Wpn;z$-kHS*8PQHj{1>* zv=`0)p26=If0!pcYW{Y!>V+!?o7!n(hH6p>LGpmg097hFK0f8#zXr0hYaBC*u-tTB zFG*{p32^;SrK}xNa~)&b0ClmhdJ(1Ea>z{ICq~GLB7P5+?X(oHN;!0}(RNyig4%k1 zmti$Tk0@AaH@le1l|0`;JY-zb34gLxv68-^`@iDZcR_FZ?i9uIQfMj-+xymU2VVm9 z+}F)5odbraId_IRD=V$=t4C^I{{6@#pLDpsmpo)rAR=u#U9qqPn}Qe2>Rv)eU_!0_ zpV=oEkMJt6p1x!sn087@*+euZo2-cgVU#JPT~<{i^1-({8kqS)oqxT*Mgs!3VYfHZt1?2JszO6SjQA z7XvRGhIS|D<(Q?G^;Gn{o{+3T>d$!}`2_?v?{NHn{8knjpGX?jZ}AIYImpisoLxk- z?{rOY(sAGtpgY>Zyo8!-IN$E$X6UsYD=Vc^QgKpU)o3URk{CyRn_yoKZmiS>;zBe2 zw8^{eD9c-QquVDan`OKA8JqpOUrNUX%EzcFr3#RZfeSieo?E+L$!w}SAGFes@zEgV zFD`FkrC)tR{GRpH>-8I+MUC7z)1Jk;IT)N#7g6{^H^@Mq5u^3R^EBYH7tb-XDy3ls zUshqOc$GeEDvCD7Oo74-Pq92#yS`6Om4&E2sE~R`zuoKS))w+o?LTS5$9H@HVZVl1 zE3~$c{D;8qER(qbeBWc_VEd~REJZ$#akqwizQu0`eck6tBiUBA0$>vugGrX(?Qzbs zZ1$Y8O^V*|BPV#YT8fh~Y^(NMAI*DyWe12#>*oAa|H?TMYr!V)O(LSfpoq3B-ry3( z%{y{sPO2z=5dm{BnM_}%da8^|sj5xMNP3aBX+7>$6I-gHlGR~)Z!dEC_u&DnNNeLM za`bQw0#JZR{+DciIesCL-NQm=3Qx=H?0e)FvR=P|>0<(|hzNK^2A_biAV6qLc|fdL z_`8km!q`e})A)EUW~P>@#Gz{J%=K|46x?Jp`>D%KcKQ0Fz=~$i<6_a$^KpqV8YiY^ z^c6nCSOnhRQ6_qI5%^CWco@R}$I}xsfWL6z&94ICq!tAhbpx-cLf;y-|D^{Tt|cHz zrGF-yg&7}(Kf{QK2h7T03iSAgrm~{=#3ws8UzRl`fQ@Pjh3E>^b9fHt92KX1Uu4Dg zz8ytAlvcTecW(Hd2!S-DtbxE1n{?l@(-YlM zD8;h1U@y19{I%R5`B+iU`_(Y7Q_K-U7(Ua?eDndVGVaSB%-j0!YxwZ_vlul_0J6bfK+IWya09T0f0vO`L32myb4B_E}BH)oou}93}vDd-` zAUW&!9H^-(n`9oEny7m?;!mSh1zlKP60Bjg{GC*jVT*%%3@dcmp|Y*l4C<479h%`R zlUS-l9{gr*-7E1Mun#uOs#@(C_eM&3Z-Dh*A#bo@m2_5zR>srI+22twOmE-2Q(O6} zd13)cUptO}e;AQS;z9J$`GnVP59qsp7&(9PI2uC%Rv|4u?!r%#Dy@;}qwD9SF67Sy zj-$efdxQT1OWkJ8t4Ti#id zslsT+hvE8JvU^j0q5IGwM^pcevZ4>C;4TO?!^zP_ovXsgZ6b#u4ZTTMd5 z@YAUw_l|rqb=EH02HDl2`#Gm*!Xw<%0lts?2`r!$%@lThQwo_ls=^PW3?oRtOGujw9{-(?Lr5+sSYX5lmZ115C8r`g$5 zDe@cQ6to!lVkJmPz6?8p8$ZZyYJekAHbKc26UsF^ueE1Dm*nZWsyVtLoalw^Ym;BL zxj~ed7UKRv4^PZ*K9c8f?5K;>}AHa>=qCrNs@tf*j@Wn7$XQ zN~yEbS=dgUd1l5cgc(4dBq|219OcTF<%+f)<*HItSRl!8vc&$@^D`bX^xx({$+DEJ0svK-%a6w&?vn8xi0G}<1RlcLVz zcRt_$&Uvpy!#iL`--uM#|NQh2$vfzCZz(bs^EfTqW4wocw(^J?8ShTYy1sG#963tu zA7;rGRh?v^`nNBPh7V=_tCc0`E}C9I=dFO1xag!TT;%qF8xw?w&rM;I(~!S@=6u#I zB3+DV@!6n32lhNTL$irMk%NAgNn@2mhHHj@xBlJtzox1VChi$h0&eUE+f9CZ?jEPZ z3=6G(nf6_mAEl+Gw>uKe&9!>z_b5jD)uwdb!1HqS*&G`SH5|a1Z~tmp*9xW3D_JX9 za?c3$mxj)I28Dy$K7G<}b4uzX(Zz@;qvx8E$8@wAx)f11@Rpza0o1`XEddW6ql&_^&;S~u4_|7;}KmSqm8O9yK%l7Fy2Q~x_UG9?|2D$o53S6@WjP- zAw=lqHerljy;cY{za*J3V)0j%&qD?@E9>$RgFSW+IT|~9YQ*uWMt;oFxt{CzGO12CGiS~2Sr#KWBC1blqnus9uBEh=p6=OqV43ij(<{>qFUesdaGMa3y0dJ{LTVBu`H-XYGN z!5zxy;o(FM) zdf$P5vi*|{CPZmo(Nl77w?nb=`f3U$`%6ljSrN2HHy3O0ZGuF+fHqFXv+>t^>=JKu_8^+l{D{4{-byAdlGor)H0Aif)_^5fL@8r9 z$t|2jlCv^d;THb3y1fY#UdNKl^2TFnd39^h|7!5=#=Q%kmHm>^Q48J*5rK{{xI!vcL8;JVXn5 z2K*<_$6V$~?miv3C!v3?d(8TT>Q-+4E{o@sBA92i#{1D^p=KuQ0qN&W@BDd%O$nNY zG|I{u4#)Es_V6Bvc0o;@?OQX1(hs?kJ=tU+9pbkh>2+aMX`SI#_C@*m-S;+f|6BEUjEA-#?RiM$!(F?%rY3dp?q=Ikv z+ZsNPXoXgajvwDBV#gp#^@r7C)^jTK0CSG$e!}$wV}dbmxRh$djV4ox&wvlbut0+( zQ~mFpc+O1A^! zXX?_y7Y^c#Cvm&CSAhus%h|`c?1zM7JG;xv)nyxlRg<#=OYQb2GOd-Wi|1@kf}jnn z8{WGh<+^%d-e9xF2hy!^R?b;jwHYB=O{q)f%)FF6JjC|{O{VB?IsXOMWUx@F%*8 z6tKpqjgGMaZEtCrg#bI_@9?K5S|tmH%}+VBEXhy3;-;eefg6=;Qc)oj zc^;^@F*&MRJCFnbEyg*!l<&Iz{dmd#i~ttj)H@iW_c|s&ZZCc5MlbdeBSQUxk;S4Y zbBz3~?h*M8IF-B!6M{`*(My{33Ym)1uyj}abyg35tj3 z5lc)AFSW0Q?pa!ldkYjXGNzIpsrZyl#}>jUy_^|Ze8Wu-5*^*G3)LK%nhM3vBj)47 z-$r~|a=xRJEx*N@B#!D3GUM2vH4aOpp9wdw>1)-*W1R`~W6vJ}yPvHUrBdV*VGv0o zjmRRKgA;asWw@{HTwNssVk2{P$Mb(kTdTGrw?A=Ilq~hvSLx-|8i7iws9;|oTA3|V zI8#UYV3a%`qow>=U3~oQxbP?!b=>^Sr1xgDo|b;ATfl`?pOXmiN3$Z6a;eOGid=1; zPzR5b0#hbFvC*nsHYPsOoB%MT10m;;eaAph6xJn6e#%}BSWuQ}k2~3wE)w|<-D)q&{?rkGQaf5_~S<^3blAfl?T7Z82J;XtYai!HHpqR`(vgD}7!x$ua?pPW$JEe?yEU`7 zji`9@KK6mkA$$l#wW^b!y6U|y*p`^IEkjwJui zS8w-KEa!D}# z-KL?&3{z0n!Q*n5 zR>H1^M^lltg1b{PfpAFVMX)AOA?)fAKv-qC`nlbn8pNclFouxjEi-D1=1l8Gf0Biz zFMQ^~5hbqlL_Aa;N-#%;)ne{9pb=Z{Oy~P#S|^FjD!3oiBAGiY{i$}qk@ovB-SN_M zhbA6aiK>k76?bNnfeUo~n(!sa!fG*0FJlW;*xm^}v;Bpv*vTjt8HP0ego?P!ewln0 zt~6?!nD4ycxfC*5&z6~GLI$9tm51TkPiCT{5$v6P70YL_9#Kxs_A4!uSWbbA(IvW~ zZ}nDtk5V+_1*hs+M}XB@kB*6+i;c@_`EWoLR;Z1z^`(@`Pv+J(u8AV!pu)uoh z!shKW+RQkiWOq;m@omD(z@%A)c?$s!@jF>*yqEW{4Tkr~a{oYVHODf4@Q+Rz(!fV* z-;Z*!mtJ5JF<{;M@D483srI8QX6*sRf&QmN(5V^Ag>0N z-r{5F~s!2NaINoFKH{E#mddj^V8Xo@$&YhpG=3=uw zT$(pMLXx~XN$Fzva`F7foa+OhA#4;Vy0s>gzxAi7k7;>}Ity;#OGvPe5-;KAk8pyZ ze}=G1_~{z(Fq=j3N0%Ow?GO*umRXe(?CjKD*<~d!+Ke=i#{hpI*f0KVPy$yJ{|GSg z{d@kA+Dr1*r14Q1=&$XY0b@*aV6n2P8xcmU65mFy&lW(X5Lx_fDLO_VA|Bdk-OP3D zd_7#em<_!gaPN|;;sbFD=<=+zJz=|_t(dypee@>RgHlkc>>?{SZIv!9lr*q?MiJ!+m|C_XS0C(C+Vw8r2J`=irTpb zNojylV&W1wjms~us&Vxo%$abGeoFhG3 z4~0_IHE@bC?d0#{o%yjS7S+|>hBu1kM$*hc@YCuRrzc*N%~)Tj8!#&MfJF&NH#V>X za*Ru+GKt)aU2+|pV0hldGayBQQu(!J{}>bdKMs(D#e7ttnEBk7{lNWr9`nRuH??Q~ z()2=E)$#ao(&wL~O&+Oz@z`3R&SE@5cZp7D#s3dJJH61wZHP+a=d`yfz(DN#GM9kJ z7xLldECr=7JjdXMhWtu7GRp(YmTxly>9fOVPu)K=@1dyq0p?7a}5+yaRM7YuOeS7K}NK&TlF*{->wNp-%^Q3yiMq z(!&e44XCrSVx>gFX=j9dZh^iQ(0m~qjKMC+H1iTH)*m}SI3@Ca)leksKejnlsV5XB zzd#j%)B5a+Q*WLIpz`BiWEef8BGBWZiPC9v;TtoHSczL2q2J; z+d95xO*$}Lnl!O3%J9;%%An{f9_<*5nh8bW057U z2#0Bu@JkKGS`B@zjYlD&lzp8oR?;{US4_&E`=K$)!|V#xcdg|*G(X>r=C7DK_tMh# z%mk5n`Q6|3XGLu4)2(tdXYi#BL%*fyg{+GW@JeElY7X+0s3~zU?`>F>?{k#uV#jh< z#|V0!KE_?L!UGN(8bxPPIf&%)$M5qw26P9=SeOrHC^}NAEJKPT1N}%TZhe0o-Q7`b z!SKaM{xG0kv2Cqf>k8CzJV1W5%gdkuq)~t=#Dcg8Ce#u6*4`H28opzyq^`kF%(=F- z>mra}&Esi)w}IoEs_cJXCv-gquZPEn;84%3lb9_hf147YuRUc?c8)9NxAv$gjuFgZ z-0{)?R;jxLL6|L2HvoZHqg~CC3>{O>b+y4B07f50JMltcx91p>wH+fIk9pqiM{AN7O&EUS^zS0^EVQ~jF88=UY^HU(pAroP@OyR2 zyoo8X&;Cm8_WG63IwoT~_3*?qAP>t(G7la#>d24wkm2w5{rtFOz@QbXQS5j^V`*^T z1|vJcwX9G5Lu#fOM-Ytysiy#V9%m{SA`-uac6?T$c#BSBR%YDaDqg-%PhSL%gMBS3-!&U{K$lJ|EGK7 z18~GWv-lsbKYE&2(R3=zOlhgvHD0<8NC4MN$FpwX8IYksL4>A$M@TESq4!CMfFmA; z#sfw8npe~1g1qiht)b^B^a;D1#(=H@sTN?z@5feDC_Xp648PbFy5bxYykn|z#-1Z1 zX!C!es!L17f5j5<%TVMqWy^UCE(wIw)@?gjE3D?qp)G*u1@jL8CO0&CH?wz{&+2QY9PbvUeHWwzU)*82q6 zyMg%xW8AYD2RZ!o&*1AaZiuS~Rqr{Z!R_v+>_Sy*jy{A=;G-JZj=vP-0{wTJ;VY9I zvO}D%&Ol4ke(=>%+(j1o1UFr#!RVXbGnc5FSIA%fv*~(Jo@ z(^950KQ*NhztKsLGd~!4+s70dPf~0wkd152L0`ni?C5nfuAIXQu29(od_FBK@9@K8 z%lG?)Tgy0f#3=f$ju_?IX4nd3#q{QZ3Vh;-m|!*l#p06%2K{Aaz*upNSlxm<_d%Dh zFq|elFIKzI(1=PdUyGo&mLOVm!1zgOzdBXZ4A;wAPfve2o{rQsi(X(#>I3!!y{WZj zWPIq^|JL*od`7!pFqMT6Nc2tXoBJp3j3acDMr|X?j~D(CMo)!Cn<>xzDYw1;hdA&t zQCehncEYsb_f(fdyVn;Y% zaxhmxYLu!lSz0p!S)8I?e5Y}TciGeF&0yHo1|W`=f4bJ_)FE*|mFKgJV8TtEi5ePm4m#{I(vLyBf9(ZTqHiuT z2UBpSDOi=I<8;|a1Nlf=Z2Cy^Q(v(LBuoj4KTG1) z%vjMaHY(2EN__-WYqcQBL6mu3(38lz&vlyuJ@E24aU$*B;@>=Z;WFUS-do6!MITPf zX4F2^WayhVeUa*y?(F09i_2uho>Nw#@{K?SdkTpD6{K_o9p5@yNm*NA@0;vMzym_o zn^f=9r)|&P3l}M!L`**3w6P$V2wCJ%?Q1Q*xzShT4VWRq@%*`h>D+Qo;gVk{`azB( zyD*eS-{e;77NBhd0L`4C1o(>;y;4;ZH0u+KgiEmTX9N4jBN|t8g&-@bHpLF-P0(Rt zvA|5OKF!_y>Z{J><80~i)_(Ve#8-b^ukSK@Ts7vHOe8{!IO(}?+w?wxhF=wLz*gOX zHkbNJ7Q8dYCwO{G%gP~9LzdG%Erll{FE5L4p>d!!T`1t^ur=Uo1uiMhFkdPS@K83nPg4 z&4n?;Wu)sHbBPNRZF>tbQb;X@>m9+BUk*YI*Jx$c5)qSDB-d1c-ai^}67CBB$IRMxDx*xLIjL1HVi1b#hUeMgeHoYWPgiXGP5CkGZ8p z&eUIeE1a2^3N+Ifq`TchY{cLP zob#?BxS2?U;cxy;d_{C1Ad*e`O}V5^z7oBJ~&?{#(kjg8rI1)M-8>H!(^SjBXKhz8%a zU|RGC+I!rIo@T{a%!>Kr1|U~gQi`4r^;gFqJUDE3&uECfdOxXtWG=}msUySfiQO`< z%Q#bk)#}b#%58{BJ&303jVx3US100B&Bz@0#?uYx#fOz&68fA7M$ML~{b29VZn@}o>ef9(&Kzt5Pt(#mdRx?WZtIy8HiIo{5Z<wzC@hk#6}sXqaKpS zuX_+uVLNTu)|oya#rd9K1*Q`-^~*KhdSAb8gdem*;nz!mmA=i%%zzq$cQS4x0u<(A z5yA+H?AvqcYR&L>TZ%LvUw)*1)$bK=*NmV&G5^{~cp_yA^44UsS@e@UH^vqcmcM^_DZ3(f<^?q+SdHl0xuy+?}_{R#!ZEu z&rO}^K%4uSN11}vOyN+hoZocDoCO*JhYUi=CCxvtS2#O^9E%fkUqJ~jgs)CPb!AZ_@F?RObllE#%r$^&NoQJ@Kj(Togk)t3N6_XX6Ja@E;o56ou)-g)MsEshZ z16QPJ$&R*w9~#|nET7xjF5EHxo@TFF3@~wSQCvxn5o4_RI%Fr@C7SCvcsTX!dIUU< z#Aev9Y?r2Ffm&nLn(%(co72#V4So&Ew=>`0gGzp4Kr{pmH1HQYVCgTk4H?I(6VOGN z%P!8to7N|uv_Mhni%fx^F-z~J9Owu?f0--Hlp)Pk^F zCT4|?7BQY#H60z2P>Zo5XQ^H+Kye6FD)zYzINQU>ei1tJ-qqP$aNx?kINuK}v*Rc= zY3Cf!arDN1E1OQQO-)KPh}J>%b@W%Bwd_pbfsND=OMqWYdx|ss#C>6LtxsTd_*>7~ z1a=3@#;W@|osv4+*-0%oS%kaPH!EB5Ww~BrA4s{a@XVaC>esr`)V_}md79~r-Hg5c z7%6v6e$UG4^H{*H6o`r|RTzSLa>BSBqXu>JKuJjG*n0%9aOg?7Uj2Tl?+*KrcDx)C zvE-V~^rzzdskmdNq&7Y)6P{5NH^9O9JJ+7QJ;^pKCDG< zwesQDDhn8@cmabI8^YZVdH-$rii|_wJb14Dl(~Iyc#)NIokCQ0xl>q5z|h`M zGaR*9UIm>I1%vW%V4#}EPK_hThag`Ttd53vPOC}D^@U0S)nfmImrxDm$w>(P*j1#| z^}d+&o>idq!#2tXrYk#V?{4&&N{JP0N*KmR>QCFz9Qj5j?*xsufv@!3`LhVKUf9pk zO9JSnxH=+h63dVSw6V~(e zVRGEd9t%+m9u_Wl1;Q{4m3PgNAZzIy%wy;8 z`0)owJ#1l5o*(izkfc@>Qksqsr@4wr-j1;?QMcnHHss8=`n`c{Nf&BPt{(E|xwgBI zMD9mlfc#|MyrZO|GNq}@s|YyT6>jLGxndSNsjH+bW7_X?{8^c=X@W5LI;azJ?N=BV zR+^FA!%Ol$hL%F<_Bqo!;xfZ?>sxJ1w%P(Lo*u0xnqNfFf;X)a7}rqaEu)`wTPq7! zCxgaSYPLno`u+jD|7!xA+$1SY*>4(0eT>6lHPXNlnC zPx?KjG(Vrm%Io36r7lK|9%(voe1236W*MIiBOKw~zNW6(hJv4uQh@+(=V;yg&Bt3a z(K~66$4hmey_2(xYpt#xnDH3(-TX7hN&EJ|p8v0|TYp7>()mb34{6bl| z>^6_c%~rMWTt0*#+`Lo;;#CTVxITVWk1XYFUP~nxkr^z>v>>!-J@tkwf!DVitwM2>XrDxKeG3D+dXxd>PTs+3}09n z8LuIe@@?({*R9eX?`7{!)^GnqxFHrhS|&$~gL*WM6{DxEdrHQVQvNv~Q9sU13bqj!tz#`w`c0x8Gpk!;W z4twMM@DPb24!qN#3y`?Exy#Nb))gypXG|`xiyE7o_YDjP^4YItny?j7n-zuo zp>?7C(9P?Ny>g58x#Osg6erQHb~Q++ANeCsvYe-(#|~ZPdZ$!=P#z~)WV6R^J1Ejq zs)g}(4pp@GcjqC`mC|0UIH&8}Y`Wy^zw%r=Ay*xB7@^WbPE#zGu0i(_^t);xN}#E& z`5W!es;bMc5=g^4kS&7#Je1x2;%2toN8oG5N1mt?lSTy>qbpzd z$~U`-!M+$uPaC)Rnf+ES0{@LtEJjB;L$#1uX(YW7c`m-V2Kvjwrw~=sFU_s3id!Ez z&;KOB`72b*WjReGJS=_9-k9OX&((_PZrtvtO6t5OMo9}6x%`K`BDAn$^mt@s>IL4o zN}DZsqKZ<3>aGtYVT8ASUQXUt zgW{~mZofW#U!g;G6fXsJOzBbjm#V>v7!Q($;7Wzh4gzS-um9M>UnM%AF(jZ# z*2J3j3WOxZ$}yLJaX46B^hj$x z7i`+kcln59H-&Z1bP_hSQKwTyY&ZV54@yCZk1mUq;}b8@)c4*;g%u*?mrJ!R`|4=v zp%*?e+4*{N184mZLMHUpNr>2&%BX>(!gn?^q|a7#L2_ApqpzrOJL@t%C`7Zhl_iI~ z^gl5adtWTM6yH>TwX;hvv8V`Jl32AkRaTj)*C}86gHl!v#!>BL$af68=$TRU*jm4j{RX7I>9{89T{#MFA zFZH0ZWnsu^EnjSdvbdQS8t1C9MftTb2P26~V*20h+lDOt{2%CH$bF}@d7=dJ-R-BA zLU-@JMXE6NZ%C;G*LLASE@b??X5?-`iY8$TrSDV%Bg4<^Lx;)EPwuVs1FF6hZz{~# z{$VbZkpK9dO@l|3{fmm=W~wU8wK^1=*I?i^p^GPLKGsAtkuRPqG0dv$9Ios7;S^2o z4nG=o)nfJOsEizW=~eSM-|JlCDBCRy8}NWO?tEgO$RftTkV8|ZONf{o>EQO-f$?-{ z6u|b1z@Qs|^K)8;4Mg$S5c3e2oJL44KI^Zr8zh?Q%b$>iBCh27=1B0j=1=`k?9{7Q zGbT(F_jRSvo*H|tU!(j@2?B>*1^uq zTt;YICN|IderSKyAb041gAK!-O@E+;1SJnpMdbB-ulX-5f_{`cJkMApJK+E`gq8=- zsy%@%QGa26Ya9d&QQMHfBSFLO>T6X=}xQ%Vp-ZVcD&&e(~2{}UGUg`=n*mc*HLZrX_}5(D ziT|;q@4^M1OtKfdKTPm^VO7~jffYsWVLXp_Jt-E=GNrKVZzg0vU}_n8h0W1#d&Z37 z2=_dDi0Mpt_U7Z%@sh>x948q%(tb5-?wX0gF ziT|I0rB-cu($W69y+V9@7T&nN<}zj!&+HT<;CZ~#fRX>d;}fNydJ%b{M#LCVlSiaeZwH#emla0eIqhC`U!E{hcS8HQk-p3 zUlT3|9xKklob?P->|>h_R&rk5&LN0!>fXH}sx$rBtDZ==b-@`S*}Ypjs}McN$VyRC zR(@V-!o?(!MlSmvP#$v}J3ma=qA)X;+kJ=e!S?Br!3`uCIb_P|Iy2L6w+PKuIhZY= zYueIGspFQT+69FDc{!yJlqZn~gj-rvu}wwg^w&z(l{WP~meFJtDLQ?Zz4Z5MPVoVY zl^VH4VVWT++og{3{F*|nd1dtx9PTvR!%%*LEl3}z*88msegd0MJ;v`tUcB@_2Qy2b zw^CEyJSAxa2T*A?e;JdXrm0RqK@m_Uepq?_C*Ay5hRR_*a%2B!G1cyF1hPtOvHk_|;sA>9x!S-JSs_X_DlPZbcgglb+PI;@X4%*+r1 z#s0s)=kLy5?z;Y+KBt~EusWcX4wIH+Ym?rP6#XtQ$6Q>{XP9)JsIa|Q8Z?ruFhNWh zgnbAzH|IC@hGf*1rz%*Ey(%0#d|ll4v%uy%eFBqCmLoVbr!KHR@0%BY{&Y_5>%V_& zIL-DZC@<>=gW!9dx)Mqc)^eiqi-OMSLW)6$JHoE&++-E1Jf?bo=c1RSjZA*}d$E6Q zdMjTwN>+%uLM2}ivwk;(1=*8S*3gs=S*m;{JC==VPxw@DMnPDe^;$LtTa4SMjr?gE(dsWQodhu z5+|-3DCKTiy2tl5@cK-!ZaEX*5f~L8rQ-T4F)7BAw5%ZoQvwe#C`oMOS+MZuu*Xb% z#Durf%I}4R7HY?T$ltG?Y501)u*&|*goEFu1=7stRUV*IxEpa-M)1G){5OJpQt!RD zhVAX`z3sWSHd)IO_;Mooxn`LpItIQs0sliAQ!S{ErWqptrP;%vjSa(*2A#|0w?Tj+ zCQSSL*+u1-JC0S!8n^FBv&G7pKGTgq;=HK@IuM9=?QmAboQRV4E|pWnz0mnTNnRLV z>By@PF?0rWwfvrS_`zK zTvyKF^|1BE<`@|#XYGBg`8DDuZ<~#OM!Tzu;F;K*Tk^G`lqJ~%j!L%J@R`CU)Zqu|gsm#lye14EBzGU~^G^_^){s*Q)PGtvL{JYE?5 zV^WN~(nht|Ht>3%yOGF`AmGyY~9ccDMb)RXOh3t9>_&LFX&?rD0DC_g>4zrN;9k z!k6#i;Q^S6UYzfYMh;3-P)GHPZ9Ospmju$aT7-GzJu<+&UdfL2@H|nO2yHM}9#7f* zVN0Er^N)dmM=qzk=2lDYec(vT&6H;DXzD>?W|1)m8K=#++GQ}t zgrQJ>VT9$~F~+3hRv`rHyDyZXxBU2!L0y!6?Qt20+TwjiW$!(H)Y9gkvUTwR$H*^K zk5A;+pyR`ul6D(YfFafGGnRGwIr~eB|3nL%*mH|~ee9c{xd=O;Qf8D$En~!h!Xt~F z>l^i(9e(yc`2sta-}xF!*^9e{{|9?Pgua(w##pgu^4_t3c!0K=G)bkIlI0j{c;ST? zSzBM>m8&naHCkbqiddRU6xMlipO7bg3MbYr-V2<4b+kf16E)=Ve8KfQJKWoQp66~{ z<=XArynO8%i>4yYa~fB3=E7<6{!qHaHeq&rj6HRZ!}(k|W8Sl|wLw*t?C$L{T3hGF z&Rz1|d#ntGVzX5@^oK(Z4-YA3b5Ne~cr3o_vpMtm9AhoR(U61vLl)CHXgOR4!x6Lb zgl2V}b7#)5dw9e{=P!|)6jwJ4hC>m9sT*d;2h>%`+GrJ1R#+2ahD}JbOeU;#CCbZk zB%{QV8Er6bpL8A&rs-lTLG}rI}QtSd;};!C*L`XEUs^G)Qx% zpJt?)VKD4tl%=d|>bhY%nQ<_lbLY-oX7iHWy*;koyw2yI{ya`8zWS|iWn+5-Q`e+P z%KE8o?%cb_m2;=jP8!i$t82V)^%Xw#%(L>^#$u9;+Lg>FV^D^oCUU)PT}f` zJWWG^RgtGT5q8)#Ual36#3pzzh`VA@wCA`$R^yaH3Y@xbf|#3cp`Ti7Od8f|BeqE0 zNiRw!++j@8x^#HIq}C$(_m=Za9>n0v(E zjeK%hGddLdRhX(m<(7p@6+}N}9g1glmm;u4Hi;s4H@T0mrIiX4Cr%Xb@w~Cdv=pg` zK=c6x=RMR--BL}v&7H0;KwMAj>+Age|Lz~~KmO1EBVYcuxACL@$&a$JvB7veZhtPS zue-)A;pX=}e&Q#8l2hBKD1t6Pq^mY{O`2tBr6{X1INZo|SmZ!euuWEkt#BVgOpr%g zTibm2qaXUB*NyksIY*65yHWR*=wWi)IB}V3>V_)p=kDVR&wPPD{~!E6nM}qKiy-K; zEIresHiU}9y!&!j=OT@BIdF1L>}ib=tFo70dFjOKb_=t*s!+-Y@kLqNYin!l@9*YN!RJ3ox1TWey+B;)~Rc| z*X#blN*gOXjZUkK7O1Ogh}H$#m;g1ZP>Pmg)ijPYlfH?E$Hij#x#$goF^$r0rPQ3E8&xN$dU)L}4T(-^oxyWDO6@G?K z@;!g(-Q4-T9bUNhGJodl{}>NF@(5S2U*r0Xn>_v5&#|$-#eejt{zJAlxB2|%p611u zo+BUidGyJLna>KU>6FoEz@R5$L(0LdSWq_=uB!1tL0?6&HEnQBO;Jc;=bWReE3v0? zj=HHr_u2-l2T#A(qiPx^lSvErdGe7*smhY0-Mc(|=@R4P37Z=mDBmzUK4c~Dv3mIu zN8=+YI<@EWB{LXLv zK7Zkdew@GbWB(D~@OAIzzx>aChClekXZZdf`Ln$4RgW;A&Cu48_A=3lP@a2xyYzZJ z7Dpv}#|NMs4?gf9dv|U#o6lGot&u2AQ)?2Pq7%!C?y<4C0opSgPdPp~=7qa2a$|p= zXRf}&&AWHGdG{9HIxb$k$Z%^FHJvg(J|am|jP6m-=A5~BfhV4PEoD)M@dhURlLx#j~%x!v5Yqxz=oLu5&aVW4t8sD%Z^Gg`iPvB2yHdklBR! ze1c9A`olg)`(viFDOJ_6{c$I)HSRx56slDW)m8*noO58b6ce%29z-(l?~t~K3qdIq zT8J&)S%<= zGo3FOtfeSCi-Renk-)ka^94y7=p@e5x2eGF6!iN&R!3`i=Q%n$5UNvBW{tkq=60PhsWYSvd*DdrWk`HcQx z$f78?d+Q#1yZhYR-{){V=J0sTY(67T`- zM?S*8ecuQ8{m*@l;mU|Svm72B@!+LPtc=$1S~DvbO!wv_N>QVjEaoI(?KQ4JdsrWg zsI}+r?p=IcQ@WZSoT*kYY1g) zVN+DFU}|H3fEULiOq#)_J>#trJ(;*yU6_cr`!0CsYHizut2;r7do1pc_;nc+h~Kmh z$sXQglt8MLQn;{}(qK1>6Vb~gNlA7@TC~N_X{~&}3X0qDwPS3S+*mYr z)P46fo&jP-Z1G-;Xr-`ECBL>7WeufkFrCCdu7jp&+Wq<90}t>&{j>j>AOEXA4#4v- zJdbytpZV#(&3ryTiIxb(r<`eg(c@Qs^;f?5i~kor%Bo!MDRz!KMc+tN-@Tw9l$JH`9F_Ovspx_&?1T~t`1UwE(_MKc;b>` zB=F@JOS^m8*rl*xM1wSbshtz2#Dtng8!L1`(^YVfl%M!|!D$NBHies7s4ZGYhaK7h zSyL~m4Ru|M{j?857v{o*e5 zAvQ;Q%XqD=h)OKs1X0P|n5euLxm3an()x=9NV+!%mQas)xYS`%P*x?zT1l9^!+F;R z@1iK$1Ic^ecE20fP!%P4nlNhw=a{7#c_Kne2S-PuXc}IpD2gEVqOnOrSr&LLFpE6T zxp%O~-~U&?K$A+aUL5UnxO0zJzv@+d_c#3!uADuEwT8NJq)Cbo3%@B#Zs`iYwZ>2N zUke`ouv+7T^(oTz6^X7H>90(FYNR$$N<$K;DyBja7z5 zLzV@>td$Yd*$k^JX(|YZx^5`zhU4Qs8YcmNd;1jEZ~lAs4vu*6@_BX-j~ESCnaw8D zO%<$RWH~Kn3wpyoPrvvak3I1egTa8=d?uVcZ33?rB9GQ+BVM+l7}45@B6!dN&>>Eh zRTbzKb?C3kB+=LejfjmX;$aP0lAw&HcFl=oOR2z#(hAdfGGn=BW?W~&Y6GQ$USnAq zjW}G4$+*cyRjy{Xw7K{pg2DrgOG7RvCGLNXsU`tOJVXg-}nubRn0H`+h0X1u@CgVW;#CR)b<&AgOP|qt&F(0dxXvv zS8v_oqkr%RT)X=UFWq{Py~86u@X_B#8`#@FB+D|Uvl%*p8#k|UY2!5C^p3CNiN_vg z@8%sYJ$#v~zRzedHOY!@rDTCndO8BM9ad53S0%1=5}fxiVdrz z+k1c4`$Tv7zG=@1q)BLsDW%Y8&Rjf$NlyyK#YeTMxcSOWv5Yc?sOyM^d9esOAyzCW zn})ioKx+0l&W-LZ4rqekZ%kgB+WI9C~ zIN0B(EQIeouNDFUuWGh7);YDc(H^o!T<0ie6Z&~Vo{s=eQ5E#EoXz!h7EMJ})xs$^ zhPD2nP0s5^I`CrGGY<)>rz{H;o=H_=Li53<(&%j(;o+Gyp{gsA(1{bCIup>)W_-=NcEzp5bUd=gzI0+_`s;`Mh9!G^SQ!g_an@+U6E(dCD-6{o$Qs z*dJg$988Y!b;WS7PLc>W*EJOnKlBiby5eAbOq%r=A5Zw?-VTqy_DQnQI;YmRIeY3f zuJJ*L%>-T?5}&=?3~eOYLm9Lej-OGgZ7_K!mYG?Spd6$o4T+m1^}g|~&W*LfcF>Dh zrBVUj=!K`4B*DK{YZ@19c_6@ERcqnd1eJ8}JPjw^3gQHGi6RlJrkH%*KdFudPT?UtfHv61h+XzeJaM3~8Flrimljr+N)zY_VKCz8AH_4qj=7d`3# zb@{2liF_+U$YY{c6vYV`H3UjgD4JuDAFp4x*_S3FU}uA#OBcNpr{~?Ncz22)KSP{O zcPHjC&UInIT?nWMJT6@_%BsXF6SR>)`>-BBRL#R0bWR}CNpOXcqRq=xIl}o9p{R5b zMqOG!{Ii>sYaNniAFQl=_?lKUP1P0>&NU}udE~xF{;j-@OnW0bAR-{5l^ss_$UwVJ z;`@*sTLoKVhfUJZh!vl28BT@s!7sH-VxbYesFO714?g*c6X(NcKKEIUj*rn=vsf%n zAQ+Vr+DMXo>9ghkjz?k>=rl;2TUzhNht^9vrA%3u)P(&whq?z3W|)hIri$$I!Gij()F?2zJ&&{mt`^NT57VH{NxN)fgWo7AG{p zf=}zE-J!KYL-D@jEgsf=i;gv-sbG|8ZT*ZjZBs4ABB2S$n~L_>akwB2M6qEuT2s|k z7$WP?xQg)-bf6ugWI*Sf6z=%tBs@06+BF?xqF-umv^2u7p1RbXSnS{5JoBAc5~t>p z=Pi*~08Lf56Ls$dwFx1ev?pVba}EniIH-Ebk4dbN>1+#UXxffT>}YmxNVm%wgLqVB zj2}QI(xQG?*Cp1D&`MKP^%n)_cxV`7C@V>-ls5DdgU4ceeV+ThUk9CY<*6^nHFY}; zihL9C-18)f6`_PMojSd}#ZUglALbW-^WX7L|LH&C+rIPL`TDo~X%5Cmy!z3Hu--E- z7AU2q=)?yLFvoH2c)iW=s^-_&;l|-L{)v4xzgd2cpS|%STMs=#Q#yX;pZ+ZUyvLvU zqkkNmSU&iX-(@mB;@rh^D6N@J$5?AvU0V?}LfO!iHQtL_qGl-|kXXySC`gk8ooJ?$ zDaHgVGMg};O-Ze$R+g7<-r?|gjCT#=<0JZm9)n?@c~LN*73?4E(=-jE!H6^4r|>wG z)ih?J!+h&Ee={$= z@-oT`eAv}Xu5Q(cYJM9WP@Huv#F$RR?-!m23Sly_1B`hXW}# zhvMd|DxoLzY{Ee`=i^6L1%h7`j43&_HY6FXaP|6CUMU(*uWq0foY^|Z=~s_9*WaRY zo<&tMy|>H8_J*k2&kAgkwh2p~_vx*rWQhpelvUM=pGX7BGDMSS()b!rj^y(s2^g6M z93D=%{Ln@I#^3xexOwv~&wT!Q{?zw<4}bd4elK@-?gf6CC(lxV{M(fs)8@O2sb5(Xj04fAXNMaAyXKK*`=-e5pk)#${qwzkU6o3~h7U6qNq)|@(f8m|>cN5_;^O+FZq=Y8s` zVKJYxwzh^bhC4gA+1MW9o#Nc~S(3YVxO(dqM*SXJYinG+eMf8ut;Lvxc~SB7D_5Bo z3vAsmfBiz%aN|gnAxlyY7DoYoCX>{*I0*rGb7PbDz3=_J@3-H_Xe2SqHx2@y>#;{4 zf-#wJ zP*$8hb&4$OF)M4TMFE2WS}RsZBkHoEstPKb;9Wyq6)YB>vRJTKl!BV^o;)UqiDfVx zh*+UlBw0p7LsJ$^rxOyBva+%&NrFua}V6e8zcs^zC?j0zgt_rd=r#BEwKG&q=Y09uaBuz51o@P9rar4>^ zKCu*w1;^tt7tWvI{F&3Nudgxa_pzxortaOn%X}dSsFl%(>EVpYd`|6!pRSEz=iWVf zF5?|Pp=QBR^*-ue5C3)WG@bCbg=Num$ax@*2NhX5DFv!Jz zbT}H4WI5VeRt5tqC)Pyc*__d6g+)MR%=T~a{%(ByZuSQsfNiUmn#gtM-Mi)U;~ z)D!Vu?15tOZ^PNpc+qo+lb4t<8cbV|$Gx&do_I`RXyWunX;h=ypNr7=?!-As5*CYv z>@(MZ7mA7xXO&kG!n`c7wGs4;oNa;9f^I2$F-M9;Zns#CiP`-g*4?RooPc%{%=n00 z^De?B{uzfL-G)WC$nQSaNeF3}aECn`3rX3(NvrA{3;f8x>~c0^@zKrkx~RGPWIp zYGiH6+AwVa;{qhPDwiJ9aRM3}GS*t^N))iWk2v6p>!^GF7^^rqJmBGn9$`2fF`10{ zzw`0r6R%=(bCbI}cQHojK7%s@UiZ}N_~^$z+Wy=Vk3ZgC4-Xh6RD{PKd;I^tH{W@@ z`qi(&1+mDwu2G5H=OpZ#s;a)I=>W717n3Ow(ncrqqW)sjL zC!P<Ald5VjPF1@EuCE({@-=gih?+ zrfHD~@fztcEsqF;h%$@3bQ@x36Pk!IhIZp)RaMx=1-PV90qRqcr3pzA5>~Yo)DX2l z8>T?gsqnbKageUyQtdDBs&s%AIe~lDb=C4tJPsEU#N`xUIxM0bSfKG}V}%o-EXJfL z9ECIV@;-T1>eU<6MS;yT@?MWYo-v<}DT~nVe6i+|%d2Zai&O?tp!20@GTv_8vSm_NI4F^HwN7~Um22F(b(70iF7vy;@f*UIQSiW( zhnY?$G``{COAoTOv4ycvEf&;ugENM*C^^_WWH`te4u=9C?)BJMUuAMMZh3=gny|65 z%G@`+_XEGl>t6F3M#CYq`AjAS06r{cqPH^v*6YK875$ovcCyhuq^q(J^=o5<_gL3x zm0+~+nUVkp6M>OsK&hKL@TJ7!kH&GNDhgk7c(8}g2J}`|c;&`T-u%F8`Nco@IX*u< z<|qH!f5~UR@GJ=_k3M{vrV!}l>dFeQRB_8pHajZB~bU4ySWm z?HKlYBB*7SIdXjT2R;6mU->nX)df4d$2@c6Iv38L!Fx}C(C6;nE-$_OGG{JaV0&wm z48>wmv9-EET~-v{aB6)!2wqwC?%gHpWhf;UjCbxH(kR6+b4(`_s=8u6pSSmRQ54*| zeVfx~&q&gy6rW^z zi#&DZAvV_6WK!%Ld7g`4OR)86oNN6>eHhIQheN8W9_P)8aah-19cc4%ZPyYqQclw7RJGcEU$EAQg;OSJ~OQ%Mbj} z53skt_a)!!>C>nA=-(l^xJk)%Do;w#@uRX5z( z+ZC69K_A~V;2XRX?G0}f2M2pxxpYx9QwqoB3zs+;kC{v+tPIyktzogT;6uOlA?EWL z+vhehrqA}-5xLEHG|#wv@iGdrk2@NV(ONNG6zm@zu_z`SPL3&yisOSZvvPqon(^^5 zFTc1$KkHF84W5SM`GVeP$Y^zi5>M(qd73ewE;zV-$f<8x#VSkVYvG4$jdmViJ8YKW zlo1z*R4k9c3tZa^LL?^nMjH|T@oqWgRKnl%_|~DIt}1kZB)Xu>Ac+%gViW~JCGn9M z8%3a8$D%kEd`c;_mj(f0D$`Zu z7O^{rQKq$Nb@Ba#iBV#cb~@F4&;Gtx&=n5r`V4nrm|av&OdMmgA&Ss-HG#UnAJ5os z@z;gB$Dip=^Sgy?7j>|l$}g=byL|O78fckJyDw@y#?R3$!V{B-4U?-|p{FhdL4=`} zp27HK!md>0O*a@T%_Q%HkNc&Bnq93g_SR;*4loU~djs$ShbhS&tJh|UX zVXasIbQ?U~``+vImgov=0EcsmgM$Mef8q)L-rxN@{LJ6}8OoppZj9{n7UGOr(hkFY ziaG|%wI0qxC-EW{g0R#kYKtDVM6}H3a~^;E3I4Oc{QqLUmx1=~sSD3i^6|I{t5CYG#!)WT1t{MIA<-jcH+M5!qlTnMAQ&{+_ zf}kzZD6I9UOVlC|w8kp$XquWt1)iR(@ikZ_7HcYs$2&(7K9u+{)`9;goSHN!_9{a6 zz{;j{O)Z{u8kvHpIa@13tkL92LhZ!f2_LKjY(psV-!MutcCTLJ<(FUL+@lY(y|Iq-8~8liGy&Vun(l zEX`=VW4>768xg*efC;K6qG%>f<=`+41vOc&c>Kx++ov~iwPP?G^6c|pU~_Ao!{ae; zddr)6=;CFrUcbub#unGET}3I+a4?{9CC)V*9v*P--X6Wg(!Ax(tZi)qiW@uk81(z- zJjZ#M76q%TD{P+H;)B2U3GUw6;oO&<=Xf%ajx$g-4PF{ZtyiiKla;y-MY>ZMle8N^ zI&uVfW`hsDhnhI$kj)sm?aEk^sN!jZhz9}sl}WQGOHweJ&6P7458EW9Hm5XmHhM#@ zT)aqAl?;0$>ar%cmP{E6Bi0mkRa49>d>y<(8%JFh;Kk-9%`@tzp{g2sy&UB|lgTl8 zp0&bugMOdsbcWH2JjppcJf^HmQk!yoJQh2*s$ykzgao8746#%0lg-k)kLYjxcGD4?g<|^r&I9wnn-!fL_j>n>QGib4IHxJn+B+OlC6{ z(;4Y-NZwD$64@Jd18%Y4+O<2J>Gi4V23irQO`KB8IkmRItXwdgjmff%G_f?UrmAK%^M#1C8SuWrD52q4n=l?9b98(Jz&HPqZ|2OI zGt6gmocA0bAM=`5y^6DE&vJBh)QW4$G-b){T=FM5ksQY6Mhx95{CpBb)nam`kfDt> zx)sNi#;SCd6^hwp!rIyzKk~!>2_N~$hgn-+M{7lvW*i+I@pHfMbL{QzF_}&{clKO+ zSTxR&r=&++Ge=s%@#!Vk8=+c>e7H2yuY(mfA{?dE1qzt?9ro3l_Q|I>f-kGYs{@RL9H zx0t(zx|rb_hw~C&%BI3MP}Q~Q0fdH%YoxinF&bjcYG@imU6w2sg;;`l$7^2oI9e-? z4v!foJx0AgsZKb(vO!%r%CcZ>a~rD-i}`|w9(si7(UiIl$(h$&ICX)h3{d@*gsQ4p z?X7Tjb5p1QS||<9d1>@cC)9P#(d3Ao-5m}Ok2pF$WIA84H=VG%x6jehF}|poO^>+x z$}5ZpL$re2CYYX<1Qbv@P^r8WwTVr{!m^ZeB8s#|i>#QOB_RncD-oCzB$cdZ(Ra|8 zBv|p7gis&1Q+TcA*k4XOG>TA|G$It#6%CU_5|T9V$EzBr9mXhBqN%C^8)9(NMC(E+ z_!N?e8w*wCV@lUPZ!FG5gispAO*nfDBBIt!W_>ukVsVbAMSI14UDZoSc~@+xTcCC) z;PLA*AvDIc1-P}gotnp367R#85^3uq%;KNj*Np}Iayq@_XU9ozcN!jx;#jb^QzG55 z>vbnp=(`1dH=*xBuC<^j4=l0#(6lFo)%PEQiZ^db2Q55{e zAO27HbN`P&kM|8(mMX4h6F7#yJ(8 z1;8Yhot>T5Wg*Wqp<+N#JhyUvJH>0*45IvQgo+#Yv(=WSu9j$-qQcmex+z85DNW`5 zgt*xb3*3^P5)0Plo{alj(1DF}xcksJ-A3LLEhy&NO%rHNN(Eg65kb^pm>c6*m%8I-=j6 zruH(%S4tSh8XvgK6?yFbl_iPQGO4!GjZ9Ms3a;@u6v`TkMT5(**FXOUTzKo3QQx@AKm0rY5ZlZ6j_?0|e&bW0;g|m2 z-{;<)8(ezLQ>>raX8-Vj7k~eg%*P9|*FVmCzV}aZc4d`kUU;6@;e{+07|=%$OP3#qnJJ{af_P8bV^Yd+`D>}rfm56=dO|W@>W!1KA(~0Ioeq2 zx&&9Z)BN#b!O#Aae?qS}U_PHyRSU8#mo*$3FvkbGeElE&E;iRsbM5+dzT&IiCPh|~ zpqxip@r+aoD%S)-C)3*GG)+V89ElOygARUq@_7|$lA&#YuKCCvkuxPtGaA>B1_+r8 zolK=5O#(klX;ykeoO2xAyv@*7oat>-9gUga+T+197ueg`;oHCcJJ=qra`)C1&6rN7VPh+1 z^D$LZQdA|yqQK$V-a19$D?a<&7kK8G=lJjke~V9i{P)?vyUYLPLn(&m&ysJhV}~Qo zUbu)>700)Z>F*!&z=aE8a%E7#N-MJoKI^fzwo0!zV0>`IbI*T)dOD++&sf_&#s0wo zS-($~_n1#-BtdLs=k9G3n)4Sf(KL=?zCeY}VUi?NMTt?GVXrTICuxtPoMzA;u)eaw zk%v6*FY(gfo@t}NMDU1d=$1eRxmFKyGX+8fZ!OCcqrXq=+fiktg8^jC7$R@azL zCX|Z>mmj#q16R)Sn#+%{y?ut&yod3Iqwx{frg!+<^Urhn+!;=9tWh=%s&=GUtW%5+ z$INCTNExB&G#*#GkfcjO^Edw6zrmxAJ=!K3vLWHd%QwWQI7?4VCAyO%7vPxPuf<>< zZQTHrS8dFVKWDVqH#K-@#MQ!B(>A@(n#Fv9scL@oFaIU9J=t;J-`nTse&Oc?9buE@ z0iy+WS(Xci{Si++_6XoTvka>e`e_2%O95y@@(`wmt_j72a%6d*#~*u)SHI?Q zv{F29xlqA5YBTA1+-Ge(M^?VlLc!6$;<7su=Y9 zq-iE<`He$09$ZaTI;x_E__^wah;*w8`D|&DP?qzU2hdA%bgntIzR8mhJ&MtWBuQyp z&GBTy!DPZ>v0!g!m&IbiN51g;>=nmsZf}#IDOHUP4Y(xBP+lRbxKajGL6zMm!Oz>; zR@gQEmjra3Z{+;dO39g2H^HA;#NukDLQI#$Mj>LqO3QtUute{{*Z}LTP9m(7ib6+{ zcc{o#Iq!d?OG4FN?kTtvNWYwEVzFCdRtJ5KfE*rG)ju~G^463Ub^}+ zd6uEIW;~v@`=zSNjzFVp<1j3ncad6w{fp_pcP6*{qDl3ldi=i}pJR#sP9 z4?Sxwv*{Eq?Tn>ef%o{vQ#KWKfPQ(T3*I;f4(i2>!Rgby{tvx}r+@yJxc2PRtPDrY z7YkhD7!G^PXU8aG$a+J8DHjVw1Wgj$ewK51bjZQ(9#4PnS-$&^e;<>Q9skJR0xN?anE}i4n z-aUr-fV|)1NB^t8&WC>Kz5HMC(5WTK5}Kl-m-QJ8MikRAlf@L9XC&6rlp^>?SU8On z75MeFb&O4@tCAOQ+>j=K_ZZ`;YbS-C5bMf3JuYcp)*xlX3 zE9sim4w|M49qlEjE^?f-Qf)G|5zfDlm|uj~7YiKcI`)2LOd@64-5#J#16j)N zJ^dMWcJ8q@8ZghtY;JAy@FN$P&E_~9ANkntF|-+9{>C?R?PgG24WfoUleYGP7%AMc zOw_5%x*|=3@J7?n&vPcB5VzWrqykrIf^~+qM#P@_ed^;Wv+0z4(4+D2sb^l`GoSe+ zAN|np@bdF7kYt8O9(jQCZ~qF`*3L3oUE$vG9?w1f3{H90FJIun#~#NenpbY#z%@?% z>A&zS8G%0>RCZTaMkLmfq$y3~=oyRFhU4)uAOG+NnCyCBa})g23Tq%!PWBBu&`gn=&gajwWMn-@VOXV}Q0gz!ej* zh$%}3{eg6B!-V46OV_w^;Q@B;+?DQY2PW0!2ue6y9_q4+mkC=u+`2#0s(0QuO>@rS zloZoVRe?5mCGg1zVRLwN;62>Bc3Y4nM#QYPHn+Ha?RNVM$$NT?%w5izF;^Up;ZG_#rF0FUMcS0*<;wxIojXn`qi6U zf8`c$e%l*(_j~>@{UoEGNh3}QM~l&kxNd}ogGbb!lO!Qc60$S{E%sc4!H~KvSskvj zwy_>M+m7k1I5GK*$%P~%G3gb^oNF42#T;kh-eQ93C!~P0;LCUzhr&@s%NzyT(lk{_ zu7e_UEO4~gI@V3o+V_=}$5kHO(sR13DxrUsHF!}$uPRBb5}lyj(vBt7g2)L*Ke8r} zNkQX8aK|f|CVD3YZ5MJkt!n(#hqGA{BZFeIH^Q!L@X&?J4Eh7!{qA>hcmE#cWR6#g zOeJ^^gI-QqS8XRB6`;XNlD0I<$nsvWE)CFPB}I=5+6-x$Qde~-S`^BvcJ)R6oonLc zIKto+R!MUz7MFRRx0X9HSrpVx+%svKw8g>lx#YUJMl@Q4o9x>JvQ403lI=YzBz0W~ zZnt2z)=<`UfUC-GPOMBNyHIU{>b*?LqBTdM^p6TEg7p1hQKw-rr1!U+;du%UkWjKfBZL`0p<4J^uWc($$Fc z$nIymzai0W9K^&oNfH`5ZW~$!FZHDaQ#aPO6T=WaypOp>XQD3w1QB_Y;ylKCL14&~ z*QO?jA9|b$pT(UN`LuRZE{jkINe=0?N7XXOXzy`owl$oz zr;6`a_M1$nlf<^V4@s~_^dWc5(u~Do5t?W+{L%X4z13P81hs2gWC^f@tSb>cL@Cir z3hOMc{i3Mb22ywZ#cLDKmiY6|HB6^vyAG|jQj|9hI8QlSbk;spRmoB~SIS?D??Jcpl?ZV^fi4P#`|`c3cJKJ$CKade-I&ykw=LYgS?W4OSbKcU*x~Tp zPt{Rvaqm0L66YNDzyCXb4~!DXtd&U{@nT0MOguVGaAhfrJ53~U4Iikf8+1^hb7knH zo~D%7Ah@6Y;Lp;u{ybni}slxQfdcPm^iGv$yVWeETjN znt)50XI6P?knq8KQ{MRcC%E(CRi-x%c->>?c+($xCxeZ3_I9rFHQ)8U zGZ)dAbDb>9(B5;ne@MPM;^}9f=7|fJ`QGpNE~bkq)x2PHFyI^B z^=`iPJzvY}V1*}M^C-20qH?@={Ti>_zQ(P+9nQb{Rm@89XkIKz#z#kF%1}DTe7fL) zhaP5fbjWy7GM!G_A|(xzC4i%&C{kwxhSfNR!vRP44%pw{#W}|-ue{9K))pIU>lmFf zpHJD`+`v19GKow@vmsAD{1`Xx++xrlu(`Iz!TvtIG-uSe7;D&ES;rd7(PT`eOZvT> zVqTJ4K|t*7A9CgV1r84ns9nQgxWduVnCW6cstx@-p{Z-0ID3(E+na2ytZ;U1lSd!8 z!tX!#3@^X@5)Yj_%h7bon)B4FeHv@%rwM~>Lxh5Cg7%(`-jH6JbLaLwZrs_yd(St0 z?Yp^j?i6o$!y7nr`ZS9W-@NzOG{GCO3+Wzy-YMaGImgziEmk&0CnxIvJ0EpfbNl)o zs;XjbeU**V8yxN(v43wLs|}l{HW{o9{(pPY@My}0o!j@QLlH-(0k5pVA&_(B72aF4 zS6n)`$?eG|qy7NhS1jgptQVBjY&u~v9W$PeQC>5j9+PJlUsl|{dxuJSjt`HR&2mo7|*thEgC0ZE#RsCwZ_*RS;C!xI3+!L`TNq7&B_GrpE-Zf0;a|UZ8@TJ_s7WN0x zPqnU__MnCsyTVjYY098*+cXtg2@F^ikdrnks4MYjwMK!nGEJzYN!9CTQef2r#-VeSb+nv=wC`qHTDlWq~RS%tEt!uurNjrt#R2z$A!x4_<_Q zy!3cvs;Co;k>o+941#KklgBt^7HDRGZ<}SZ*TRxfR86$mF?c85xLPTJyeo$b#k&H$ z^Hf!U@>+#5!7JTZoNFkG5@R(Kebc$R$#abw^j9CiR zM#y(j6c`(z^#MsE1)FPmwZ@9bp6w*8?X;>>;Kn34KH`)lCVJ80D<v~T{x*y zs^yu-rgwzEpKLJLHp#SM3K^SBQBk-%HS4}ce9i8ZKNc|Yy|vSA=UNe__`c#~DQa${ zX-XB=L^ruNMudGM)V2Hhmj%(X84+W0`@YrE89-~H8i+o}NwxbfLZYrkF*+92Kxn9y zXre`xXc-tAy=GLH&U@0Z&WzTkGMEOw2B>^E2*HRZPA?s|ZdEk{OygRkDA&fDuJsYIkEJ&ofp>_>fPjY?d zpmw3C65zk=Lofd_i3oKy!TxU99HG7L_cvLV1rOmK1}i)-x=B7j{hP{%*c50o#)RBg z8kH(qdif>%IPNX2bsHnQ)ClKAfj>4pmKR|;X^rbKqDx|PEjC}`8q9JLQLM@e9cY*$ zawg}GXmi!!y{oW4MKDb%$nyl}II+KhR-5Vmhr)mt`hivkuLUs?Kd(;2npy=^P}4N@ z`+Yf6yu%>Y#PKt9C&P7Jhq_Lv049-rPX`SO}|5BLp9ss(_14 z*gSsgBrQnd(Xw&gMF7O>(VdvzkH(5;WISKsr2a;{p7D3I*4RJsgFj5Un9B_c0svYY z77MYb$@84DsyIGAVr_Mm`E(}miOf>W7AT`dEmIke4h~q`SOw*oA1_Gbw6Q2r8jg;~ zY@IpBt!F;Z#;G;_&^LcG>+5TfC+r;TlL5?URNmvVoFo@0^yKgunuY|!d_KYXl4iQ# zfj2%ywU~2w?Iz8sQykvD%OD-lTVEBsiOk}&gwgnrja#?b!}F(q@CR7D_#(gk!S~VN z`D5SmwVZ$W3Eux3zs?hP4Y>Mye?T@n;B{Z~PW1K~*LU`~{@lyF@ZvR` zv0UCd%X~iP$;*$jHCUsVP0)C{S1%3`Uw`}icfs_gJk`I1P?3IqH?jICUy?g9j zzd@e&@CZcx;9#F8UiBm>#m=2O+}Yb>=jagc8U}-r6a?N&f*m@R#@IHIiHj~Cs?G^7 zs_F1gYA3-nC2n%nPI3s_L$^GaC7;cCQG@qhI6nk<*OONsp`Z8JSYIVg;Q086Vm>1= zirL{2U-QndrI+RG?H(|l&AD;=rifbAj-o258fmCZW>e{KJ5S@GC<~HICjEm!pJGu^ z7A0$IYdGhaO{cAju}3jj88R9T*j!!Z?77nnhkeRwf$ily`S1gzy&kvk?Q-MZ9bWm3 z>)hPg<8v>($c?=_kT{fgtZr;@>&|U@d5?a-k8WTxp3v*{xN_+-yLay5oM&@mo%wjo z@$tC57vss4MNvw_Kx=w=5A7|}$&{5;4!f1n3RNREWmaoO!y$v=h@(Rz765=jf4+%{ zA?^3DbIX~P70Rl?obqH^)3YhP?K8|53$)dwi3sN$?jMl%Q=zligvI=rquGT1aDd0L zdvL_P{d=;mYtQN4fc5hi*jioXp|j^0_WEqDZ_@AeuuAM-cJ~i?^xPF5JbRHvx#0ZS z9OXbKw8fP|3Dv@Ayp~D&tSC9yKjh-pDYjQvc>7bYWA|X6m6bK7<(zp@k|s%807$}f zlD`>+Ku(`J&8I*8Dc<{Q@1@u4wU90yAbV0VwN+EN4+85wIzHx&um3W>_G`Zm?>x`H z_&k5*KmRLy_ji5|Prddjy!U+Slb_zbmexw&(P;b?@_mfhW5Ui-S&vc7SO_0*#pm)$?I-Q~YlEdGfb}T1sP5f?~yl$gBQx}6Hg>FIq! zZrx%&PM+iEQ%Yd2u4$lYsJ*=3w!nx9dbnqCO~v;UCqLckInW}bTEVdpTVh;^pD}*V z`%oOl#zN=w#$>gNAc&7{;vRplJ6&&^_^~msR2a@A0(o~!>OpK2EvML~wPcJ__^7yV zgVMVWMYhBb6uPTGQ|MMMMl}nwohbIzBEa=Qm!EhbB#A zXy_ycHBJhhB=CzB3a1cc*_UVl#KO9ZI7zL=D<3GIfu7(*FHaH^6 z=V1Q`n^=0iRA^)!d%76ETPVNxSer`x?G&0zJL~Ac;5z5n$@>)Zj3f=sHZO6uZt4JY zms7E-;=K#P-Y$v1Whv+Y(2G>#!y+5;e3iP{)WaoRC5x2(v4-_ z`*zCRqFF+oW^F*Z8Pmq6cpsZ4Hd{>Ry6KQEEYU;pdnX#UU!s8&f2MmM;=_LYcixY0 zM4h{c9Vg^qn=cmfOTc_KrI)2FriBEi5VQm`3C?RKd;7fZtKY)f<_5p{bHBpo);0vV zi;G=U1^@Ez{0wQHv36>MYEfcS%k+4{qAd8vZ+s7T?%dHIkSzQmAv?wr+NK*zJiAzdlR4j(8sv>$rr?v*l3ivba1wBxV1m$T@O6MAN{(o z=Yt>m9qI0U zc^-W9aSo1-8IO;7>2oh~?YS3O-&ljFGTSut1_SQizQ=U`fc5Q7u$rbRc=7X}r=Axq z(uAgND2js9k3U3V6(9J;_wweqzM0-=$idYY+1{Pf*wh{CmKdN^=#mi{0c}&j3mD!vHC4G_V{Jpay4KT6&vNO?!>Fd@+}dfh zIg9O$NOVHp(`4B$`$zlKUJA^_W&!F3r?yUsa%$tr2R#w-NF-pCl^ilzl8~B|^^J9o z#>b4u6IMn;TvJmvCFNqqLzf?9ckdqm;(z^LX}qU5=(90e;ds8_=D{A%zVIB{D{AlA zACKAE+GNnrna=0zA0E=rd#tUjN@D0I%ocObo;^!hE%^LrKZ^&hJo+$b!{Olp!+xJ) zuCYnNVmv0*mO-z_@np);(LT=CEEdveQ#PTlD>gSaIdkT`1P@;amD7x>UN9Yxxp?|K z=TC1_In5)zhnbfP?(Od5oM$$l)68l%H#SKImIk4m=qzPAn=!2lcJ}UZs;SxD+Q8Kn zuebUYP!Y%1QT&3ulv3AqtCo>mHKSr4w`SsNVh zsEZP9G-tOrh0~2^JfGvVW-=S&^^zB~v?cMaKqX;^)=h;?gzxr~fBh%<&G-E#|3@Cf z;gFAf@T0u?b+6*r{_cDE`~UFo1B$PF$5+tI9Y68c{wnW#|8M;tdhV5#6+ZI8kMh8k z2fv7CXgt_x|KnouDcok)RP2wBNt2YcC)1ZpHV%|lSe*)2S3#EK;oJ@skp?m)t|8;` zjPqwN(91I>f#a>h{_jFcms6V9?UvU~(*&n1FFt#N`N1(Nm4=5_!hwd4a(KPZWf8B@=LE!c@n{M%+nda-|^+=&{%gQc4N@-U;;H1@Sn- zgs5r6c_KAdVvSnDvE%Ep%<1)2`c7ag=3npzam zHNkSqMaAZD-NR?pVIpqgx>V{!Q#}4o{C=F&yD&wv0qWmQsolM+XS236N0aOr## zC@4#nXqqM{xz`X1`{e|GNz+J-Xa;Gksp?wRQ<&B_t`3xhCFHeD{F{cKU?-(J-fS+7T3mjNm+dKNPMZI(7yG}KLl@`@zz?_(^C_caM9 zpXI&tq0u4el-Q8$lPGp!^ce7R1a|KtWY?O`fKb7rM~Y32`h=?PJVsx#CK-bO`TH zHk#Y`=3F>)1$AZZGH!P@C1TtA#i(&ylmgOkqpdO4?sB2MlFBT9BTEM8RD3v#s-kv|UOz=!%fX#pE^eQJH0AN9 zUd2O?KFH-Kp5Vgck8|&H&v4<&1=cpVSR7BddhIHs(FR$Xv1T;?;_v?q=Xxo<(JIy6 zbNuBW`@1|aJj;LZr+$FR;W4Y5Lq7foALkQ)@CPiaDajybWiVhenJ^d(c<}Todi{)A zLD@LgtD4Q#RW{aEWs1_&q-ln=8tW|c1z2scsd&!kSq@Ty(`$Nd7d1^&`n^7jVosJx z(i(Y>)`SkG_moY8MUy4+JY`++;FT-eYDS|K%Ce-aD^`a?9)0{Ve*428;k9pm1H*pC5B=C*rr#e>lqFUt>>lkh z$MD!gk1!n{^NsKPM&9wRui@AJ{d;-*^>0Eaxd>y}Am-o%mfpAqlW0tUxyKIMiS9U( zEO;eWHYTp-&Wx~4y5n>q9xh6f^ynKIySK9715`C87bxmQfmSI>9pH}tG3wwM=5>V| zJi%!2WenAM8earXniej0wE#SMK4`o0%6Xc~k>@=I1L3LS8d5Cx?(Q(J7UcaNbyc&y zvc~Sw9-n^YWq$4bze8$MHdohBS~0IH5}T3QgoERKRz^cs*VmXAC5u`h+KEj_Oi5x4 zYiny*YkA@2mswq3O)a$h#i%FVdjgd)zS>nB;Hylt+ zkMXXdSuCi^8BRm(6#f1X>pjJ6hC{J3TH)ZZWPP+sW)n8oH@JImpBuMsOQB&?nONtL z5BoGt!)!XEX&eo3czi%z*KG9%y!xrvb8c&!(_34t^!p5ZeX=yCX&kdf!QSz)&}M?| zgiTY@EDZ^FOq>HhDng-UF_DCcnpR626s0wbqQq)LQ#Cl{=?%m;+7zV}H+GpwOTZKX zrS-LSzV(~Gl^0%ko(CRyfTQChOn@;*b@xB~hyE~+KJqA&$z<7x(qbdCJcI;#Je$w> zxu5?zCX)%X*$jZiLgMUfHkIU|sW}eM{nhXIY94>=aSo3TJCn3HnI|MfQZP(sQ-1DW z{Y#FIk6A1hSYsGZ#$35_g>U=TZzIog&YeHccsdCMsmF(jpjALqb82nG%5Z?Sk{qQb zAxV>vFbH&WGD|749A(5_Z?af$G#OJ*Dn^3=het>3-MPnCzTwO0^>Plc?sMnv9R~fL zOmMT5tk)+o64#AUV%zDL)>li!jRK`8i;B$)7rFBI6XJERgXi>p4G6jZOSpP0^x8zJ zu6gp2he#j1NWQkld|I{eTUkO&v`-Tzu{bHxW5OS8LX%`^8P#$eyc6|Zt!RR{kG4iU z!W|@9RQNHXBJQHvuL6{B6G9uNaLz5ozTzPs3$W$q4Wdfg$o}vO6Ctmzp+RhR;`B%g z_vP=JaIfQ4h{;QQjc&2nEs(m6f^Ndoa{HV+k*r1CgD#v{X%R@Of}(CW!S^kc++j_e zj+hhExR~^VG;W(p){#v06G`%wI*~Zlb%jzEjixM0tVvKt65lAG6enKLv@qTXTM^!3 z;4XHH>kxO6Ksk%WdW3+-_1K+Ub+6t3Rsk9(qH&rN|J_mt?ki@y>!LdtQK7k_lv*}5 z!w_Hz{ij8wweKN5Pumn)LWR3UFFx=)>jq^tgbAysqZF-mQ0-nK1fsxeY`VxjTG|-J zykWUV{fV{M##j}E;Q|68CdXaKep|qLAH)kqU`}BFgtI{7n=Z5;TvH>1$55nu_07V*HOeIGU!xjyJNB&i6WA^dKK!zLM3m<-0f7NOjgYsA3@TE2A`{=b~W zHl6nys59QRQ~8q*i7iD@v~jK1>tSumVo~6IL6*s9D2f6NLa($5$_37PCr(6xz-Z4a z_q8hy*0jxUJZ)jFy%HLPT51ZEWkI5)0i?CUBh=a~NpQ_cXusCdl#5i0?wV=6%+NMoZkDt$G(%9-W%DnfSJ-1Dorj(To5=DS;sbJnkZbW28q;WR2 z3_zA^ylD{~$$eAi5}Nl*0b#kN-qav-8+A!!->DM+em2OXs+%a84$DUOALWq?oE| zX0ruZo?(qZ?Iu;pdM{@@o>6MW%F2k`rV^l`JzV>}0mqYLCW|Rs>zhpHGcuF#@FNfM zQ-9@$X^i7P{!9NE$H#L9t9?wGFsn;UmXUfzJ)5Jw=9SMp$IEBT;TEqs7_gw;`^?nXR<>X6Fe?OvC%5s zLNBYbLMctw8}RYZe3oDOwfBn9AScQ5N`J__C@?lf z`%UWVciE_aoW6&`K)nDp_y_3Tt4Y;8CQU_Eh`>^wX3{+_D$*>M0}fBoRNTIGkG%s? z+g};2P}eoH`5bK&uUx&#;}1N-6Yu$2UcPaaMNx8hXNNbx;f;LR>)*hwJ9l{Q<(EMl z`lAu^xlv%~4jSGe-PgJ__ir}Q$h zQZz}*%5a2Mn(1WB+Ukf!?L{4WK1W+YJ`}T(+1{KyOYwIN_nbVxw*kEn6!b+C2 zwzd|gh~lj|na((#%%mY=Q^aamk>%pUUez^d+JskBhhu^s;Ieu-!O&r{>b#&$z>{Yg zX_nIK_fUx;>*ct{Go4Ij9b(#vgalPtuRFUt{PchO)AaKmw|DL^nM?(4Z*8kg`=dYl zqkPTReNAW(7VDme4Dru;(xQ{4d~~=gzG=@_lQi*@dDiD^~Iz{Zpsu4Km94f;6#cYXsgL z_UEvdVH3-0e~3v_oN{OfwHK&+RSGoxp);4b`uqzd%2Jk67)i6ygOpa~6W;z! zZ^k*p?6?LcNuu{Br!L(l0U*x!6}XHMWZdxtU#?RA?- zHhB5m#x(lY&NpT27#1a@ZC;N*XL8PNr#^x=rQ<=4~me;$)JjU zblpo8x1>O*rNGzyG5Y?P9N$wcM7!5cyr7p8-uN)#yl_qAv{b&bbbX}}sU6D6Y*X_`=#HI0jn08#ahtqaxJni_XQM#NZa2h}OgyVKZ9@UI(Cpk@n zpk^5nYhk^_!bytYlL=;52q_{KY??^1=E39cYo{$*vMMOyr%O!vaXF1 zluphP%k;RbUJ7oh0f6+ZXzn=hTsvQJTOEJ1KZ|zk>(ST zQSk(}#!{9=d#~@WXOxN!ir|*uPNFTk=fnMt*|=A`u`2%D{jtneRmpT#Vo+4gfhhk~ zl5qG&xU@x8F&>ZUWugQfeV<);LrE%}>ix+P)%G^jaC`Tjs6p1Xs7@x9$!so%W?72* ztWmsNKL^3q?YS49;iVU^vY_FEANmk?Zr!7)YciYC@AX&|3+A&q-sWt$IeWkSa~vEm zxc=^Uk&f1>UBS&4ULc!Qq`SL(;X@yz|CTqAKK3xKoKre@;NlhD@GalO;l>)ze(rPp z$j|;97e4(8@BYK@<}=THmg`rqac^gr^XJcV`_3))_Yb*v=@Qy#`qpsz%sH;_?(w&O z`tR}FXFtR0a75EIEDGTu+av|&SS(7a#s~gJO0g&?szwg4vZN|%lGGwzl@d(m^Euv& zfQxVqt9DZhzpcSnrJzuvt^FZ>eo*#cw3L`n-6&sC1CjWs^@ zTOVTPOSaFP<5zz5SMlHRy@XSLDLkXKB;>9Z-@guI#9B)kc<7PWD^scDWKz&sz%iJ6 z?@5dae1I_L2$KqdFAC49scTZ3aQ?ytvardreoj-2I6Zs>d(@+x&si~`GRxJO=f>Te zq-LKa6?psM(VQd~4oZ?(uHL@JD>trlclRDUdpq3T*(Zr;AhxwGfEaq~8N`+J-{bDAX43-V{R`!?1X z)>c+=zF;^UQr8t}Vi^txB)vX9NqGE`$5i6~tfO<7h{ z&eQlNSd0WHo3dOyv(2S*XE?RF#jw|7(C^brGjfwq)(u5db2Oa>U!^cnQwmWR_0+DE z!cQ40R|_Q58mguO6gsh#uBNJkindZr=X0vEVvy$ydOewb07;gi(*&C)q}GZESrR7Y zN-P{Bcic6uW0kF5T55Vo~cR6)-ONy5Jiu0XY_ZajB+}*jmoGNu}-RipL&aJ!c z&$rWC39qXpG!a^IW%AxSo3we*dBqt%KmuT{p9$A)=rx|a0 z)l@Fxv6Jly-Vi;|v+BM_} zE)ywLRRBvKoYCfsCW?_)XRJYc6{h#JP)=A1aNR!v=oakVWGp7--E|$4mHQ`L%gLTv z<`B+_5Ug7A^^_7pIh)AuEEbEC1!DLt_fONkUs~*_Q1iy=iqVFmsEK~Y^7}PKQ4*(! zO}(55xuAe;P1+`y-uw34>h3ARS=602$HK6i$i_!^>JlO2(O1_wiAg@(^RBH}TnF)< z#Pc&IkoQlX+v#B_@VdozydO@wohRYUA85w~_aYfQ`iRAKG7&|olTIk{dUVl;-O zI8xKp(!2@~aZ#lf!9K4%T_|oukF@)|a~;5MrPfV*cB%IIEYS@CVd4ZeAV`pt=g+NMxA|-T#b2kYs@7d6a)Fm?j3Ag+^Oaxz z6};`OZ{^0VTWBL`N`Wp9NTnk;LZ5^Ca#3qrpDe6%8I@;=)Ht&%JkHEeocetw^5pz|orQzUP zgy>S$U4`bbwFyQWHa9ogu}&~Np!VC_;< zVgt5Y)EX1i{1q)d!Z~SH0j(E!ckTKR#8t=@RM=}xN5tGDOC+r^M)V9Et*X5|pALn6 zoSb{awoaXhD@|-JME8prAG~U7ml)&aS~o-lqI?$N!^b$#y{_@x?KVTY=V|xRr93(3 zus{1xf0oiU6pIp?n#R>E7IRW!>2y_ zS-jH}#iF%DsH&Q(n1WZFH;O-T+H$u{`S1VV{{U|c7p)?(nrqXN?acD6Z+!zl|Jg6_ zg^zqZL^H*!-|`yPzw7&0d;E3W{Oo67WrN9d&feZWYF;xhE0Qdum!)iPZc!8kv+0zL ztqn|S`1xP`b$;pBf0dV>|2+LPWj{ZlEDBPak|qhYJ0`Iyd7fbnI9EecGt3SB++b5f zRT|Qb9%Wr&O^!7QWm$6m%qmIVrz|Vs{Af*8EJV#yOF^0?BAC%0l68&Kj-%sA;9EGx zlNZT{L*|ny!__s;oZ4dd=52cYjLp-h#jg>l7Bbl|Sw^1c93AYFhlBgdqYqIp7L?x0 z{d1mPuZIT4<0HInSRbw6N2|Q??e7qKi>hu9D`kYE;T!P^?ZPy>9Yx*g7PT-y9Tikv z>xbDClQFYN#qPbk)Q#Mqq6#8)N->#?1tJ{Qgd!+9 zYw+?vhFQ+MnlrB*T3f8P%!>tBBfiwLg4aFvB+6JO^95_e5mnuU1XPO%PiW*c-Z5V+ zU_n5wh*e4GouX6_2qAKe)Crhi+u8MD66co%w!jWyePf;f;h+2u{OZ4bFY9aTC>GVzd*0oV|#0hS3mh`?%ch@xpU`F1m}2Q#pYB@HUL&eEBvE>_>cLw|L)i2 zJ}S+4GUm~TAK?do;6Enc$WIphvB-=?MrYC%-?IwH2&EuREl!K5SV|Oh63(Pj(g?BI zO2aYiPZNCOjf#mm%ohcVqG<1FW-}=sjc(P5r6>>|-8j+lfY|d!8%brtzAXE0b5nu3Sfe8K*`UGCgF;^UushJ%-1;ak7u>)5(-hUs`rGpkAZ7N=!G z;&BiZb{j{V)W^h0ha|;f+U|a;rNM|&)Qt!c`KHFzC3Wz8#f5IY^8(}7g7&~#5wn4AWVvpG2( zy}uBM|8+G}y4NE9j_V|)Knn*ZB&QJpl-Q-!R=noj*bo!r`$d-G>vfafc2d@X#e3&O z1HqUU;tI5lacRtjLOUot$6`L7$-eVBy8P5`5*puY_kGoY8lrtbZ+H;uuh0|%pd-M| z1#J@7%#sg!Qfv>F$N=XXoU2fnpl_qwg34IiHsHEm$tZOKriuVlFeS;Wc z2`5?^5o2>rLz?G8F{^7TFCJM@Y2O3|{stLBB}t0+CmWG*f4Ojvd@cKn znMYa)Vah4OVr|pM3K!hf4NX~N0*%f_ET(f*zG;2NTgRcW53?*2xq)X@2@={^tMgYy71iuJLGFEJT66 zkEAY5bF#T5P0XN4(=;vJ4>)m-_}IWB*0{^P9`{g;W8JeLHi@I1dkcpTIaC&!=yC4| z*E|8GaRkkmkf(_TiV983rJjva3TrI2U%EBKhHd1ji=C!IDQQl)#(}17en&K$Ae*Ib z2|KHOjb$#ijQ`8ex-9s+IafE<$2iz6(&Ks3t%KS@=KJ3N+cZ^0Sv9z-z@}D&Dawi@ zPtaPXC|Y@na)B`k#%j{UvIu^~#e6}MWE_l-DHl_=PK{6&j>gBBEXCsx<-!t-!I~av zlHzKakR^E^V-0J0inVeX564sb!&Q1&Mp-U|r;}!+z|=Y3s4LDMzRbO&32%SZ6%J<= z#k9g`$Ge_9PoX@=+dba#b#LQMgH!n6<@nmyJ;iHY{pEb%SN=V(f9-4efxq~lGB5+~ z+_}woK4n&wY_Dx_c6*b$sW~`0U^rUg%7sfzC&xT|@go1tkN;J+PHi%q&QQuj==iCy zNxd={qri#UUy`OM1SXOuDaOiVqG`lx%!HygF$RzstG7=+@^YLPe)9`yA`WPmv;B(Ku zz}w#VHlpQ*bm9mL&z;~{-Y+BphzMIO(n1m!MTmUp#CJPa-Azv?fuL#HZhwTjqr}Rj zsU1nG!Dr-IhN5A-NXYv?!l1XwqOPdt2V6csWo2au3hwUjFvteH?aSWC?(q>T!y$L? z-r?~}53{7o;?kr1(|`VR{Ng|V2jq^gGzJR1Z?J%F8isj~BpuPz zC50n-RX3p#BAhzn)PbO?9FQIIdy*U}guj<1X|Vqb z{8SBTghO|Wvd*-3IUyw|CNEWPWm;w1LQIEgQe2Do!|S{7?QW48C%&=RkH!3#q%72f8XeYYwAG96CnlhAZN&8u1(f17 zh{b%cfS!j$gE#SM)aX;!oJKf&1 zc2ddxQ)4aeHhMYOh%D&KjYw~fCpLdAO@iem&)9-Bj9FLoQzvj3zJ5Z8Q`rZldh@(r~U z8i7crHh6!qEVxjB1^k z|I^nz##5PAtAG}9WO+tWEW{>I8Sn`nX(ZT0C`LX^_`Cb0wRubus>b2!ri~LZ_IkGz zB$U^UQ{yESts9@Z%`=%$OI)a{5KH|M3FN(RX-Z3hP#tVX!`^P(QXE?AlW|Ln=0LP8 zge9sdHfWm0V~uZ-CNZ~AO6al1m@u`M*qHZnP*rP@8tE?bytJ>nIq@FZCZRfDF%Do0(-1(pXP$1v>g?XfZ#@khS( zkFj%jK$>MN76pmbY;A9H_i%?l`RD%}N3$8j(FlzuO%vwj9EGN+YKFrR{XAtdnTpb1 zo`Di2);!NRoQ~02Gst_;G?Ya_mSyy^j7FuH#W8n&_usK~aLjl7i9gH!Z~l9J`oH>V z9=URcKlA7RG{@&J^WlH}UynnvasD(brkyN@9t&k9VhNM!JSbY$fMH%%eDZUjChKLa z4u=?PxqRgTN>_0_Jz~@!QqDyDt2Z2y=RLHO1vOdBX`E+!dz;nK5Z8FF-@Hm)SM*-j zV{3hrYEfXdq1R7Pu4aEW<>5zP&AC(CXs0{ZEx|OSQlv>?t zp;kZ=l0XOx8Ek_AS-|)3fep5?Q6N|#OD5XbfB=2w6CewN0Rj zl=LdrDAvYf=~1Z-y|n@J{R8fQ;&Tk&_byl;G9HX@PBB}~an5mkdct5lX1uXRnq_23 z#(HnewJVottYu?ujg9e$`D})>meFvCQBpgL6IR4*Su&f?DJC;Uy*}k)PFXHEJ}4Ot z$Gqv$N7-5%GR_BFzHouft!;+G5&b;p*1bF2y>o|AuLmf`gLNqjaE^x_cu3|aNwLB6 zqN^RW){oifUE*0(lE z@`Szh3qqYXY1`vgAx&|#@0~5ckBIz9Ff4n_n2z!tzdQ`o0!_|!#y9?bUDqug?N9%y zKh2|$KF0U|#qZbwg@Q+ppPKnJeXc;wriW7%WMz&lkS<694>X z{vBU1@hym~(Y^n^bG*^R5*% zBC=zfieazMMm|E7vi5bBiV&3#d;%*-Bb3Ifu6+ixQ=ZMTjLg%@F`^(W^A1@Uzv!%q z=RYtUYFqi9e`5w{Tx=NA+Z9J{l`CjQ>yi_|0 z)}4bi@qn3vBvmw(YO{9np6SjV2_#xUF@KLCpcgwS8b_|KTd*^*1H%7duAGj5+lblm z*rSi}|Ma!Jz1;?@5+E7r0FfA+mP~fYwn_rUdK=cQYsr{)0AJHs@?7j%S(dHPTX-I^ zQzE9PLZ&ehwu=PgqP!oj7uIB3%3&?WB+|V!jK7w-13Y_2w^}j*v}&Stjg~G-3Is?A zbLkUDRiHp?McLG7ov^jN&BcosdH(t5{vVC`^@kp!iP{4?XWPuLQjjINlnB-pWwm5D z7|Hr*8qt|h(kjqe)q+jo_bqr9+0ftz*vd1g{5h|%E9Z9rV`GL>u$iH)vQD~n9>gQ# z?~=Xe1%Q!OgsxF&lVFsiYMSnBR2`E9=P-2VQ5Xy58D++3@gtM~MCUWrA=YZy0{8@D zV{uB_L5DdO<@SyV_C_H1d0mwFIm3E9&p11uc?U?cM3ZJIm#?Q>re9L-|?MH4o`UQ#pikGiN|^Mmw$<$`y2l)Z~L0x z&ZT$0lhN5~tHM9=vdoWm(WPHJO3&V1Tl4ba;=m3%fjc^#O97P%UQk(~LaJ>Gv}9);hZz zYuw$xN7K|i{Ln)jpB~Z6GF(+N%zI3W1vmHi8T5MO%J9J6C7iaD^^%7kc!0aNZc@~~ z&4bbHJ%`{rP(RMo?m{-=yrUBwt~k@uM74?9I~HNXpi~QJgljj>iYQcFGw2V@Y%!(2bBn~}JaF+cM@NTb{XV%ioJ>xcFDHygeTr(y;lTm-4izuG_8NJb@!++G z$nu=ctt}Kt?G=uGE_HrYS<)N!$wnh|-a}U@eyNxp#k`@rF>`>#|~VFy?KK zKE=`5F|Qu%Q&c6>*;GWWj0mGFih{-~X1?;;P11bGVm4!(Cam{0yH~GsVP}_(;gGe# zm@5}9(jVkFU{)-dmrIV0k9{BK9uHi-F1<&s1FKNRfwNq?a0#uH^iEGwY%SS<%%ix$ z(b2|`WC?X`DT;#Sa*F9?eE!qFPI+>ZjZ0S`+rlYDe>fyVqbks8&gNLyHNAc=O0#L| zTj97Cz!8DmjzV44(jHPN$<$ig)qcs^35vq67xV}yGD=CG)X3orFj@d00RH5E_9wY= z{LC|KU)<^rxRpOcU_*QDp!WVf-}~nnjYs_5 zzyEjH-`{T!$=A{FBMM`iookvXDDS=_h@uF6T=uRUa2?$tILzpvWb4}RYHRXcM|~Cg zSmzwa2UwP6BEqA(j8HhhjEP$?nu=?{AR>gPViKmWOZ!=pE@@zCY# z)Y|cV|I^>*v!DAMG!19RC(J@^T#|EoJYl&kIbF{A(u>bw?2MC>2`}6_rY@JvPH*!~ zU-h*-{O}EmvSfRAi^X!vOE2GHSz2ljkkyUF=#+V}ps^LpqGqi(VASuiy}d=A_eq@C z^dJ%^ZRHwKKVBH@e2Ggmx^9q!nQ8^AP=UVM1x0b&t)^*6Qqfmv!CW7ZiSVJ%N^0F{ zPe%c>I0+6FfjMCf)=kr9qK(fSg-mfA9EL!&tjZQpZGqORqSx!S*`6%RR_I8K~J z?~v)Pjx{loiIcwTowHa+K_hfQhdB8qMhgHGg9y%vYPYjeqNke9F>BYlqpi_YN*vMJ zpXCCWtukj~x_PhHYn{-<)6(PMJf@?EpU0VXWra;={XB-ubebe0HXDiSby+OhtbOe0 z#es3Wzrxr7q<)=*`tdk;2Fb1lDrU>V3BiuHm*)fjxVu2idW(bZmB0}Z1`BMB_7&ZC zC{>6I*-FqAe1yhzD%GJRCS>cJ2O8qQBYZvLFlF5HysaS->O-fCXf7 zwRGLlT6rI&@qmj2ZE}qcjF1}LE(*AFTEM_LOKmMxQShcWy@l`o?my1S z$#HvMbyH)VtSe#Os@6vq@JC@3o_;PmGR7D}5BjDN<@gwMik~a&m)iHJ7HWF{C}Mqv zn581NC4lpFRf}!)8PvoWsX@0^T5WlKq^7p*K8*oxtvx+obpV&vx&u*@qy>wrvhaSc z*!2J6&-_{L-@nf*ue{7)Fd&G@$-a}Z4?YQD^pyZI%jJ?k{D;1aulw5H&aGRwR%q&4 z3uQZWEvm|zs**CD`Fu{AoBq9l~{iPnbLnDVhnUwNddt z3VI%K);$EMao{g~?>(sRI$ta7>98N2@}+amwHjqjC|e3i6hCfB+Xm6KfTcGhtq&72 z>ETaQXUhYF&mnAaS*MoTN~vxDOGAuN*A3386?-20jOWXc!Z^LrIto7z;}xEv)h)TO zy#Ymmt!nDJq^A{&rlDR`q^V@mU0qfHE2`<7gZ%@NG(~9y-EfZ4Xv}g^ zGCw+@ZW{6|CChS_#S)ch(q4vfisfQKWu-ky(=-^*^>1(#O%29UEtg~}#Uu%JRZ_W< z!ZmCT`cTg~J(-hXDQ~^ZaF8&$GhumhKwXwJvzlSQPk-2F`OGu?!Vmv2H?Cjh(YJpY z&p-PtgN-#dFKu&ScaN?0OWG1A(ju4-shhq!ykSI}l(SF08IAfboFHI7ex@r#hjWY%@< z+fiAr?Cqf%i$#$Rdlbth)9H-e3%l65kzig!H7msVP?}{`va@!H*7{yWjd2l0;M)gOa-#b9_I~jxHBx^RyMCXuabZFKnD! zp~}843#61#x9BKpG4d_-NiZ6Yn9b%K9Nm}N(KMkcmrNH+DqGUiDa)m_wM$h(Rg|PU zq1H=k*YNn`Pw?=K8yp=Uv$L_zU@&C=@IIr_8f$KV8IGjpv1u5sk2yX&gW8vV6eTad z^b$?ou(!S2_OwsZggnbINy6dbp{G=4q-jQ$W;9jFaC@6{W1WrdO(sVtl&)bo9N}=> z-rr|17_gi#=p`BHaLoF6jlMQ~=}TWC-yDMyCW1?#c9y&Q`%F$xxv;g(An&uexy9Sx z`W80(Lmt?@z}EIAX_}KJB6hNzFF89qo{qxmJyp7DhVp zCvrnQpJPlW%KUYO#B-Kqxxh9J%jKNea^Ztq%b?!i?u(x#cl%ttdIg(h)HUb=9)03E zTid(TmX@BBBtlUw%Cc?w?L5s)p|B{l2f`G_Qw;^>Zk%NAl^59&VKCi_j0C4+B|GF% zXn%IL1{&l531VSC{DVKtqmMkwv(G-e@*ZOhk3IG{hernt27~rHXpzgjnF^P8${ec@YB8@oX!7g>k zcc&sAXCjnrb_viGq-l>N5rz8T0H#?&TaA@Rx6sy*Uc*dfiN1<1RZK2O^Pc!#bu?GuYK*-VNfNG0nDN( zFsiE$6tKj#G~_lbat?5cH5H7}G9?$RZIMd!T56r5nyjB2xL4v-jr8mbxPn*GYzF)9!zf@OM+uxkX9){LT z;4|AU%DhKGZ)md>1MzX@Jf@Xf?+-LyH5(tK20$S3t=N=vpu3iBZMlH8qI~Y8=eu)K zlA|M$xZrGudku3EkFoU(6&YjK_M6tGqoj9b00tFWCi-Yp?zd~pgshwnY@-Vt!aO!s z+OJvH1oPS6PikIYvIO9?h?prao~G#3-j&wAo;%nP2~tIoeM!IH=db2P6VNayq1731(A|3$At?QIh~wwa&khRredG9@?#<858&}#=fIbg$oDAf+R5*< zBoCy`o^()&_xkw~nHcCzvJBVYMfUK)Y;51;d*mhisNe6mXJ%Pf)V3l|QXhDFVdpFr z|1{XSbNj?Ou*&+{eo;;Dry0w##QJ1}WVmyJw$7b9w|L@-$M`ot^RvA6+G}k9X?z^e z*rpYguA;J?(6@Xv9Y4qJ%gnC8{cb_^&VFky0yhGqi6l>IouVslNjlVuo#Egw`(L zwt%QO>Cl4$ldg6)(WuvT2oZbQkYzFlfzhH=(t;vwvX4+U>w|tB%KHTDaaOuUiT#l8 z2!2egVX+dUK(v=!C$<}Aq6HyWlR+^EpWMFvDp#&O#L?j~MQT_Z4ajrHd_JLElne(M zMG0svs>mozo{;8}Srelyh-^R2kd`eed0(S#!yqwOk4g;2BdVsNagdsXWl>1&#GprJ z49k;KY;8&UIeDIAa>G*1U@jsKO)VjBk1Bab9})RffBJ>|DCawM#oVTXS@J%GueJ#~yx+ zt*sr-PA8xwBW_(V5Y}hOEZVttlZ&v0)VMcI)z*uJY+N{q(nK7AKn)F|1_23`Ug@E4 zJQ76IvapOwFo|YaT3p?*v$f8z|K@M<%quVP$YYN(pH4}Q;qc&)q?dCxIb)Fb$kNQ; zS4~kZna$>8Ny@xfvRD*stgW$JmW+lYoV7gv+;hwqbBdxs4adCr>MJzPk|n7K(s|*D z1jBMsuvkh9#_BlG8l4^r;4fjs&u>b5S_m7V`J)Q8y zmtMr-81!oYaPRWk7*(Ou;=qa>b!un$pmc-C&i%+4lcy_AHkMfS8-Bub%t$wZ^!Y&PNI&MuEX`2+{E zQ*xy_IXWRznkTN^VEx*Fi@Q5Kc=um3BGMN<|pG{jwEXz$xO_vi|4o^XZEeeg&kywoH z+vJNl7r5pz)H32C7}O;O2^rr&M6H{gFxrSxz_QvJ}V49+ni_; zt5_S1$wvb@>>W7en9t6*d3c1%*ZA)5_`N)L^9wxl-1E4yW_x2qYM>gAz!+Y-^&($- zxgzPM^zs2$9=^zXzWiNi#ys@!qwHSX=Hi7tX0rv)Jadz>k}O)?X#UAR`bBza%Afet z|1Y#@IJkezvJgf~$eI?_l&UNw*hJy#8aM2OzO>fVww5_==fslrasu6<1#x{~t&~vQ z-HOxPseNbX0;@LQ)1u=LR&8*0W4qdBG>vL&&;``-S=c1ORu#rOZXt6X*AZ)Phn>$1 z)~-{9Z)_K!h4tGs4OLTG~2dGRUzQ_ z&bm?&^<4Xs79TKc)s-0pu)unokQn1N9&Fd`A=oXXRb%Vux^8c^Yr2v4k;WLQfezVM zU%C;>H?&%HjAKwCykZ7Gcu!q7t$z{TBjqL%SQ+*D7JOlSv>9M!P+qY<1~GzKyH)}m zH#PvQ0#(KL8uo4oC|c&F7VW6S1D#cSZgt>H2q60XzI6Avdxzn0*n((H-L#CbBuS)g zm(P%jUPOwmC1bys&A?jGkU+q+qAWmJOeX$tSrn3q)rO|2FiIFXMYOJpvOt?e>Vy;N zS|lKuU8zk5-?KYS+p*V1gICcm%gQG@I#IcpT_S84Z(lq}og{|3s0GsY(^geAP80R2 zcb?)d!Dga_F72%Z#w2JbdLCJpO3+H^IMfN$rD?{&!6E&ApPijOZ~p`c$x>ezUy10O zfD|HF+cY6?thjUMHV)N-lOdy9mNh5=MFdn3ihI+DO;&!dSGDN3WSO+j6{eN)j0=gJ zYugA=WTo{X3ejr`ehPs#CvBwTv;g|`iMY0`!TQc5{=FeSiW#$EZ6|{-~N-RB4@UDIzws$4L}!P1IXWVklX{%iQnU;IU0`s}Cq55D6&S%2$08RR*)KKBKVCliKSn=FfpmtJ|9&CLzcO!~?? zFH9gTB!_d27l3dpgDDgA`hji_DXm+kKw>;4(QgimWU|CydGy{9p}ey4wH9%{riQY# z953ed)`rZ_CQ_q67%<*g=j7~+>2gU~S4`$-+_`%Px3SH5ZJnyFSb86F3`^2#e*y?T`!SFdq*f1ks}89TeXoE@JsnNF#F#%DgAaP8q6JbCFVSBC36 z`tT!U{hkC5b-5QI?ggZ>^=rc-7UgHFZOhgcf9th*xRlom?@vi+MqfV>Vlo zB^j45?1E0IYKwN3#j=p>tFO^p6m#+{XFSL$swJbr80Q8|=QBowF=bKG%QJ>~MmcLJ zZNigR9_NwAAIB-j!O0nClO>LnJWa^6l*UTCq{J(V2Zvf~FgnE{&$U<vF%ZRP7uk&C3mw%3*{+XcSu9(hd+_>>D z?|#?2xqs(?;b6!ofBjR`RmJ0vKhYX+{Lv@h|N5V8ZEf-W-~0Xi)KC8uo12^9U^<`j z#A8qJj<>%9y9_idx@)@bI&lUqIJ|LNC9M=iU5V(JlHRcrz;}m_lJp6U>xAV3h}LCD zgYb%NYxqE%$Pm<|X(}kc5rut?Lo0mi7=%|r5@;H1Q{#zMox>2>voL3E03qJ%IZ?IMdbr>a z#KKYWD+IO9iIZAZReO)t+SdMRAJnx`YFL%7%lv8YtTnFjbX(QZQ^UOl(Yh>^b0SR> znyQJiVe-G$U2C`4!48gkOW}=zs@Tb^eQjnJjM8TG+YGbndSr*6tz?*Acjjn(N3NDB z7Y97SW`wZ|XPk+gx-e$JzQ%#p>-vlnsGCApjkBib9l`*1#m-@DzvAG$rPK!-7oElJ zeR{{xMb8nQ%P5Ui9ep@hrup$H%K(5l4 zJUIXRxbA+X`$gmvw5{Tzv5Q|ZkQ9E`0{syXnjV}@?bo)^L8x!_EDG}x_LMfFpHS76(1NuVJ*Ye?Crdirk5E<^_D<7C>%zcrkQQrQ z=|VUgUDJTplv>kN4O!-?-`W5*S{V0fBlB*VJZn&JRfc7Ca6wbm6UH?%&KMPW^z9$SS)>cO&tZ6n#NW*t6G39 ztWj%y^3W(yj=HWW%DN3Cg)x|t=RF$R&@|GEKG=oO@;20m8?S$(=)@h{jBe7kzrzVT zMd8)zRX0ar&5BJEaKogjtZCboFT|iLbRc6~DiiFC?57%s>wsb-U|kTGjlt+{9aKo! zTwu_2-ygrPy>A>}Q?-cK}m^Z4dS(wk>sJD`UVQ`POg!y_`+X zgmwqi=rrZz^bBJRS(bqIwb9m6R0X{}qbVD#5$9vJT%esnn*`;cYHDa4 zweoFLd|QR8s+pWkMC2e9v8;5XPro;&I$bb5Su)J}%%)Sy`GT^lsGTKGGtN# zRw+zlsTUJa36DPVBpVwW+`joL8*3Ysr&D$xyu$e1@8)-W@N0Pf;~(ayf8cvqfAmQP zS;|S;> z$uKDt#gZ&ZSl`&-rCYC2)D;P^y|u&k`Ub;(pY`#WWmTb#v@aQt$Mkv`8>2Oj&dykR z>PX)2F+C}08p|Nhsq2cms`$u9f06I_)^Cj#ZK$mS%j<<>f)Nj|HuK|u7uWK&oBZ50 z;=?f>`xq6gZOIc)KEZE(`jb2}e}#?Vn6fT8nx687mtLVi8Z+$mXsU*ys#zWvR8;Kl z>~eYMBHCyU5B51cIiV<)Gzu1F#cVpIc9!Gmgt~6%_xfyHSfi*a?(H9vD9y4em>o<( zCoC6pwuVF227Sg`8zgy;E4zCv=1ZJb^m+qoThZ%f40=7vvH~hLH#W%A1Z5P9<&yP{ z4SM}PH}BkGx}1?VmO<&bymN_*k8ktJtFLf*ZG+3}Yh2#hBX1PFUXPdV+~nT=U7DsQ z)r$FiNtXAhn#$L5dEt-R((CuBLt6^1(N^jN9TuHtqc|v0wZ>&W%wcksrs+yvxnNAigs*3r1302LYH{f_W zA_=C#U>@Kllgu!~e+}U%My@ z?-Y1nN45AtcfdDIdq_Cj1?Pmh_W$F-MvywSrfI0Fip)rxwYWYm4j{uTWWJ2A-;%zq zNt>}x(uBlkQj*kwlgyGJ>KfZ>a|nfTdV0dm{oC9;xy!3JpXd4Kp5@m+_AxMux>@p; zx4xZxbd@I`c$D3XyOh?lmiEvF4o@c(b;a_uM9*f}x}n$0n9i2i@|1@jyu=gN9wr%T z{@efNN9c_bc)ic&w|&KWkG5iPxBW$U0H{-A@^l{ zW~QqpcX*n*Q$8>jtr1}v2*4B$={VaO0ve-Kr0>DXxGPqJlk;qk5X=VqYF#5jTF$$N z(OQXFBq0!lF1y$U!j*Jm(TPDNN+`D>hzNa`2|6Nl3lq_cNTM?#cEa0tIk)1VC!QJ~ zo+||JF&!R2hjv5OwE<*U?}5G_XB8bCkQMKJR1icICP~Xi&{EqU#>Ihe#np5oV!_c$ zI!b2vU6Ldcl=|a#GGbSuiLpzEL# z=G~Z9^v^T1#L3WNArXdxCd?QND+N97vP zc!sqRUSa;b)_Yxzzjd9;d|(U2;6}S<&N<;L-x2vD=K;?!k8yx58SYg^K`6%yAW;lB zh4GAmi+Ik@Cn{Qf1?$Ben}$3|eM>unmZf=~(b(GCFkfDvJ>$ZP&QengsIHJ;S*XO?2f)7GxT)JjO90zq zodgM3t=~J)(fDa;*iK0SY8X%_s4sP0iKdfIsLCZuLAfYVz6B#nQ7#Kql1Qvmdlmi& ztasiw*Gf@XOX5LE>s(8KYgq}lAx*>|*1A(auj>Y56j~ck(U=`4`7AN(lgfb*;E_xK2B^CRW=QrGBx2KAB@< zfTCl;23s7Lq}ZnG`fwh6<=mc;oT#juB$OFi+lu>zmYi{hT98I9-dmu10x;V_9;9IYGjB%#q@FkXpO6a|~w((7lWdB);oE|ZeED%`3O=@#fv%P1+c4-Mxp}-Qok^{yRyp zJiy8RA|QdE4_G} zO4|2?17h{i#XGms`a$~Ygp4paEWh&WzrytFjH?e{qo4ITJUwB)n348#lu<0piVNc{ zHb(0-z^yyC81{N>?(9%43x;{d*4i3Lnvf=feqPw!WxAMg@BTjf_YcWULe|T8b^i{p zz49s#UcJiZ`Z^oKA){VST{XP?+D$HBeGpC8LLffay2afs^7HLh&M)ZrU~Qre9L6-> z%;EEKwnX0{EIL1#aC}L91U0&H^qs{4K_=$T53#H-LSi}&9s5EoW}+k)SSLNfvxKTxa%txhCQ(2@@C8lQ z0e!blsNhzNY?kFxXKsWhS~s->M0LevcFLk$vNqmiZL~%&E7?E1$3Op>FW|J|?wvb) z=2O4nVNcEdqa#kvCakTEv6W*woiQE{IX*gL*zfcBo38PhFMW|^VR`elhj?Odlda7W zeVtI@u(gH8k@OYo>wUB`Bx!=Ril&m%fMQW`IyqyxSklzu99S*&S^eIC1jEA*UgAIe z{l5q6gc4SsO*o!UJFyqrh?C%hfY=!dhEsk3adfn`w+X-l*RQmPbJ+Lc{X3Vo0a(lz z%;qxyPL5CH*E;?XZLkEevnQXs@W3AbN3U@0-E`+1VATaZ&I2WoIi@Bw;ak}haW5@~By3uCIRDy*yNXBk2TxWeSVB8-u9E}+DM_k;v!i`5Bqc`mF!0<9}e)LVy*SzojUrpl_i5ak1F2GgN zauiFW8ct_ZW@Slcg!NR{6?NmNTuo{XS&~zfbF2qsB`{QB5qavP^KCV|d2ejvd%!DP z6YAtv9dhTS|7-{}LNF4*lC~3ull2<{$n$jSIK!)y0xQ(aG?if8xmB^jm_c%$%H3rs zLxAS|{7EocR^r5K9}r96Xw%DFaJjh!oNBY`NqK$g$ESm(&ReJH$5NPTvw4q!o&&@?hOp@m}@w-9)qXBmY1 z!MQdA9rj!7yqq(}MgI!>Re9$zus2i?{ENQJBH&PW&UV?Sm6~p) zd{(Oyk!ryn|M#k@+On7cjD#RQrme^4eeBeRwHf;d!KsedYa49)Aid3c#kLAB;unFB z;o9-_f&*{;+=bdz{PPEa!T8nEdBgmB215YTVuni)a|`T%u-D@fjyQ84{3F*0MH*MO zD&p1(-CBST38E`&+kGd3#j0gBm1Wtk$zHD~+2FdSwz5~GD})kOoqu1NBt8IkJ}cQ! zhk9nuyhACJG0eTPe(G(7vU06N8J1;%$&8fCVSPZ=br)y@-6+!<&IJKI@k-vbYp(5t z(A55n@CxtRwID5Eb~w)BGV(K2fH{H;7pbi7}WYVNn)--G{mF)>r_; zTw}31v>gm!TJ6D;Zk-#Qw52$Le|5}U=b$PDSO^q;Db?_vg5SS!&3+gsr4%Ohf{RK- zSVdo;mh&wz_WU}R640d8+K2(u7z_-Z6YA)@5|fA!vF$o+IBQY({jb2{L}**6JZ%Cq zwr{b0l1>}~$OLc==g&_S#!9t)%Y#jjd2lUrB+F92t^#AL131Hea}E)3HKM)aLQ6WK zPqnrnykc7uo;fbP3h#;SWSEolNyRY6vG`w-W`v1|cg<2>R#w!4tOw%Y$wODfT!bMa+ zq0yFs&RI4~>iLqMNzr+a;@}KbLN6akt%GgAI+k_K;o&iPmUDS`k4d>8DHYeBc$j+! z_c^?~Ph%a^zT=%=^Fh|vdYnzBY^0jkmK9Ha*B|HoJDV)4nv;Wl4qthV!C)lrW|DCK z=!jdlZ*k+18!YBaLGT(cn;+0ZZ-fF;7zQ{D`U(ZdnC^hk9c?FUreK7FBNdE*0h}?? zs>*-I)hk!|$VY#PkNomS`SK5ZC13dDCz(%D93qUlNrcXl>Xfo*IGIn$$9>XXpOfPg2BUR$27P8{6F&F3XGsS`9veIkXztzL zXEL3zzO_Y`_ZW|cpd?#$ad(gDe8JJlG1@uCqcOIzoJ~$qCS^1jk(h+7jZFqaDetJY z(4NX=&BX^UGwP+hcIPf<(-~SDb~e`0TC*$*2BRTIN5|a0zb|?OPH|yliwj%Zm>ZLp3~P?Qx#RrA`d+g#nfMDKxz1RcZ*8^emop-zO+Vw7)z;-uaTS9_pI zk!Dh2Vr$WSaE+s(VO~xJxTs2wPVb`ZVdn$G zK+}~hIV-f^Ai^0O7#A+CH9_<-Ns|>@1(2rM8!`>F|37qg&_*1*wNa1M88D!XwA`$n zV!5n1ot|K{Vltm|aPNR8A9%%oJU%tlMo_-tO{x!dg&5d17 z=BNCvANkwt-`i)jx6N<9^c+TOhF34J)*rAw9x>>T$of5KV0XMhe|yO6g+r>cq%jF( zDXOl}D%9JFGOpOLjIt~!s)pQvtt7i-G9%?+saGXd3bbZfltT4(4*WUcRG8pUGZ}<{ zB&#I9f4u|Hj<*l;ofB$kpzqqqPPPF?$b`C8Ds;S-#g5{$APKJaPIjb{9=;<6c7#LWe;eKKOFYGCUuzJu!PYxw+);4W+H)OCKzSEKo zK(@s?spYNfT3V&`dKjfhw4$nPmo2vztrKZuXk@&W%Vi55q|x3u4?cyLNfW?;7t5=C zQY%pgDkq|QN_^8qX(|i&AlO+?&-Q|4Xie4=EdbjzB4VwC_U=^2`cPU^HFbMWXh^aY zyxmZK9nlD@q^c}RC%!~R`FPq9>Z7$zs2icH2bPIs`a|Yjk!3lB*X`;+R2gqa;~5^b zestVH0ze^xpr}wr5jry{62G>LF`!wAMPkrD0E${`iGgg>io43X7UlDxU7?h)79^47 zR)pfDRka7-T&Fz}+c~*!5J3%M=9hymY@p%NHB;W@0c zZGzq;l7tR6F^Fsidl2vKHvS2=BG}N#PRI5zJac^iEwkmd*KT8xzQjTG^8WpOloI2< zC=1SJ6Y@Nh`thoyZW_j;F`5ap#X_6`Wx;jygT;J71@Q&0sJj$$RV{9xz^8A>h2>(w?R$4A%L>)Nt=Dey+Dk8yWjWdy(k$aGk3PcH zoo#;c!#|JtmT&YyL+8jTzZrzq!^)zJ`?JR55Dw<>is>Y61|UMF;>F!9a`}AS)TC)f zKOZoi&AGI9v$<5`7#$bHc1lAXnhT%6RNUeu~>5V_y8@wKPF8vIuYaD z`2L&Dk^0sdWl^@mIz~%9l}0GX$|$O$#9GH>a>io0plNE(PEIMxf}&nBTTHom^A?Av zC)_^1$Nv6ZPLEGGx_`)GCP2foC{RfX3IW-AInF7{qQYs|8jpGJ+up&bH-g6T)YDH= z6*Xm5@z%G!h0XO5le0r6^C@RX3)aUMIh~wv`rM~EK0e~9r{0RSCC5jHY;SLKHZ3@t zPI&p%7buz~7cN|+UR2agiAG~B^!hnPF&8?pcTR*-ueo*m9$)dMxAOiEd>MkzrZhi zWZ_Pftnf|$kb~# zG}fXUOP1#JvmTYL`P4Jdq0uxNYNsgbhSRed^Vy88^)bD?$Ju;IF`M(mjfdL$Kx-Qu zHJS1bi%l5iBX)PT*jQWVfh(8zz2EY?Ir-pMaRIp%ck6g#f24m!wHbT~{LPX0%X5 z8&B!=mfZQwfjA~2z*PCHvea~THZTq_f)i2K0uXB*We=jc34g`_XME{n z0Dd=3gKd1PCQR!L2Zl#GzO1rjLXh8q>s2rZw7H z5y?e@Uxj4j0*yF0(_wGA;MmfgiKWk;o(KM6Rb;5m^tuQnkFFE4H!-*!gCF6Xjjtbo z%9b|kq*uFhPHMolZr`(#UGiX2yLSD(1eQk#Oye~gpW!h$dOkB1t`mM2mo>z;DZY02 zUZq5Mv1z)x`OLE)Dxax~Gw)q6EZssHXWPEsVLY6F7JL4?eUKgIGJrnu^~1dzW6-Xn z;s;PB^!bjH7xH&U5`ZzKsH>)J@0+Gc8w5g^&9hC!=%EXE^E_Y4{D)RkPNF|y%2rLw zBuyf*NM($$P#Rg&VSg(RKmwRVY^$vs&`C5WirQ128#)F}-1j`D4#$4>iXKemlUz|r zgtLy)RRWw=j@n7tM&lYVT7q&P_<`}Uimc_L7NI@mdtGOFN>kOXU8x!=t+Pn57VJ~p z{Uz-8##LScKkNkoC&Kf@0IX8sdJ5~nm@Xcueap9gzwcYX)j0p%O=C&YAP{L=a3c<^ ztEwVPa}OHFqN1H$54uj)HfW8x5B={t*1%Jbu>5?t}3vY?s@>oK?TF1;rv89PCK4vpxc6X_O<+$5ds>e6b+!!5UdXriET8jf$FQ^(%+6^f!lYei8kNtB}B z9|&EwC{RX`q=xZe$gP`qF#VhhdwU!n9Gk4-zDG6F##EAHUvGXCBqxHqUrbhoSvTW+;d;#+5^{E`thji zZUGAY#G;h+jtq6zF*Pb)G?Fb4!I~Hq%=3IjX)=6HYfWZS>e^zPnp7Khw|4o|GoR%* zU;HAE-?)L+ibtM)6D9$R;cPmitP0-q?sxN+x4(-Qo_~>CrzARIZM?<ai&1=)|xyUZX5ZmSsVz6qhdU@zU+v*s@}1gsQ!_y~CTXU+2oD z%RGGLK{f{?(q2aGMeXXQVRAO1sVzDYrEH^(&;`>3>p&+4jH0Y7k8ao0ji9TwZLn5o zYP&n@C}pWjOSxDupUpX&PB_{>>u3abUNYg{ypZ4g6Y|e zv+1d{z-cVQBuA$S*>Ffc7;pLhK4)#T&9qpu{=|sQ@ra^!^m{4y4-RzlW<= zullu&U%TQo&u0t%(x3lJe8rc41;gRM8~v_VW}wn(9gM%E#+8DzvoqfH&UbU^(j`t# zPW*L+I-MAUrR%Q?l3>&X)o$67)=3LT$ui3GIP2P4FL}fw6dl)Sam$D99HSO4IBeZ&F0|iee z(P)J&YnH_VYZYlC9Tf`SQb!JApM^#;#L{l9#-)kWKGK!^gfk*dQmV4?baZhRZ7qu? z1e3AdjBQ+?vMbxw3F2JaOS_5Al=FdgxK`&R24|>icXJ*jZK?FlYTY(U$@nNmRYzG9 zzZR4gN`Kf(@hdoSMNzDX98*Eu}legU*fQOeQKl~~0Nmef6) z*VVL(h-O#E-U04eMU^uLLvNpg&NLk-LlfU1w_s}l<_l!drM;xw`d+ipj{_q{KO^(5a@Llozx4s2Fixt)vw4!#_Np_Inct?x|Yi-*-#T)c48Q|}!2?05s zg0%4(1FcA1G`3+Z;`JSaEdlfj0seWvDFE?eGn&Z%R6rx0hO}wdXghAuGAxXzF^BoY zxlS0%cB=oCPm0LBipqIgzDXCDb?Zqe-^PRtwT9aH_LKpjXjaNTvOK40O24NQjOhTm zp!F2iVi2+mO6K@^6c$+1c4ZJYPlC=upLFS>5wgJ6y0(K-0OIgLUy`O+L_e!6OHyq} zvP{IoyzpBZ*^k+5hEk&W(*|$Okt8x#P6?|qD2c>iRIpnu=+IRDK7uaGs`zA*B%;0L z{nEOwsR}8@O|z~XGzN9rOuP|RSZqH#d+s|4Aq*RfgQhzZ;{6w&CjsCOudugp0SNQ# zm!N(h0Anp07}h6AW4}KH!Y#mDSLnpFV3u>v&x5c5o$Ew=<^EU2qr;eVpj|i@bi2Od zILufuO5+l-p~0Pt69;j_j~!tpZZBY`jbD&mw)g> z+%Ie9WyQ;PZu0QO%M`;QYCYq|+n!|o+C}Wil-XyVWg{K1b@?(`o}-+nRyikPHbi~w z8WBp6jjJfjCEFWgUVix%tSu>@6=SUMpU0cd!#bUOg zKjDehoRk6OY&i3XG{TpM}*GCNV z9$Rahpi>rQ!TR|WvU=#ZwaDfNKfz|hn)#^VjL!4TzOG#Fu><@EFnaIBBl*xA})S(IFR z;40u)&gWE><@ETBqy0PFJ>JLl3`ZvmXy9aa%JlS%M>j8`eT}GXY>Sd6rmNL`qaevz z%l`g8Z+i2a__FuEm*2|EIY%*-3`5ViN$d5bEW&8RyT9yRzvXK;wPpX-zGOU<@)R+D zSZd|FXLztNIH%fRbytgt=|C`4+%`#^)X)mY^LB*->4aLXyyGB-Boz1VB-~S9&-b&IfLBkOH(p&{rc~29UQ+_!q39BnnpU21O?;p^AOAis^EDbHDsy7nHOxj ziS}Nc0SYS9adsknR|rDn-sK*vs&ls5zz=Doqm1Yy$kG-eE$e(MHYd6XfeK8!#5)i_ zw3`ZJ-DZcwxksR(`wub~Jns@H$F! zSi7-b5Y|_yM-Q3=;o5Pgx=k1aFu_Kx*PvaKaS39uVMKe-S=%a=JI`uq=P3k0{+eA$ zP`Uy}oX?`ifkK-#4s)!#?0HBKX>Dj|eA!3>G&mQ0*$%v`z3O=Qd&u|_?eoASQGPDv zzJ!4!L8z2x4F&@NG*zgRP1^vg4L*$oL7>nIPS4Ir)6^&IR`<5{!EpzScjY*7$x5&{ zaS2LmpR_Pdn#N~5BRke6$l8o~uti<>14*8Ve_vI#0P(g#C)$^_Xv$D7pv}sDan6z? zlBf&&!5B%P2pDAWy_#^Y1M)=>TH3TVo`IA2JzCcdIx%e>co1J~OEe;zZyTwb&wE+B zm*co1*dOKnfmpmU-XG3cU#A_}S3k$$0>SQtAhRvcV^wn^(9#;)?&SgWqWU0${mc388x!jbUTL@=s@1kO3`_?h;pG+ zQS>)(-8mMYk?~8v0f^b2eXe7L#b@FhB_OS}B$uyTmNB-Ds;)$(6H!@@jkVF*w*-UX zaL8--ZnKy#*x21BU5*$eDP>)WGGUUT6O92+>6Y59or{Vw>G!>pT@;JgUL`*+xp?s!1>%q@2Z@ux)k>j4k7R2p%99e&y8xR)od9>d(z6MRJ6`Ed*Vg=(_H#N>8H9f9j zUM#qF?J<7#BfrGQKJgn2djpP+k6GW@<@R$gP%f6dF#RM?z4@)sH2kyw?O*Yx#~-8L z@1ttV`e=Ds~5R5{5aQcHHF`8vjV4Y>HKVZGv5%mJ#d`|b}!J>4L9%J;%h(nLHdIs#j<2HUgz-mn1jRnl#N9t(%wTg zj>Ji@Q({Stuv1VDIWm-|5YB~epClxSqOKRrCR56_5o_yx>RFFFH*d51aK`NJ5zl_= z*I4L+$=NBV<$|IqnV&8hn3M#e$36Dw<0Lwv-^&@Vjo94WWOH4z;@NN@MBTTKvFd7YMti#%x)EKGDwh5|H;A-Zx zLuS_NV&oZv;gHNEI4cULN(n<_GM!+9>>y?d9suB0WT zH||QQw(qLcY6FEyU{RHnO^tCvzcEs9bB( zR2kS~P38S@QA1X#W^;1~ zi=`|Il&v|PpR!mku})D`OI%&kIAMgPCgp+Mb+oc=4|oU;g(6W2jjeGNq5**)FBJml z)iR#&Iv*GXhX)UeG*JK>2R*@Ah_h*J@TFOCew=fyC{>b#-ps2lynwc4Q&@*xX3Dm0 zr$UDKd{7tcHmqi7g99EvW1NwQow#84L&jVF?Lhm^D!!+404W5>O{lGRzLg=-2~F+V zR-icTv(jOFp(-1px6{!aL4p{kE=zR27kHc1Ns^Uuj~N%%19r~u9oJsV z5JGwFnPx%Fxn&?k*|FF!DE(Rq0Ll3bUYwDN1C;o_VoGrcLY0wPQs;q@7HA1UxAPhS zVc!G?+Pz*hG0aQc(>Z>{>-GHo$C@snXJ)JdBNT zl0gpd1AOO|8drB&;JT@)ox>Q#a#^C30KpwF6bWf+(V%g*Y4?4bNJ0crW00n?mc%4d z&RBU7P>HO&tibaT}aHOox*u0n*_@>+R=gy!S4|J)qSrqqHW#5Q z5uee?-}u}A6LnDq%S7cGwC-vvthF=_YU{9dEpq%yv3BVKGp+cUU-}j7vPL85MP1go z%3>4QoLE7)m2>n4eZKU<%P8CMXaB-q;P~`J#8Uh-SurLTS$`IRkx`1`+y=l=D-ZPEo7)4P@7QL#4u2@wiN<-4iS>M^_U;XQU$zT3+e}Su4u5faCic&%w zmP1vD4>C@IXvTqNTmu?}K03-t($?OE$qGS!tM=$?h_`!NG|KYF|L7lPaB-V=ec6}u z>5qMk-eAm6{Jp<}t(MeEG5Pk2MV6A8gaWyZcOvIcsa{C>RfmK6VmgF`=+gJDOY~#@E#p z%LT=9$sq4>_x?UN@7xkK>#7k$+sgph-Px8pGb?=%AARIedTGjQH*axzaz?M0Gwk&k zjYd?<0#MvLJV05;Ll>`-kubb)g@-Tiu)Dp@rL8@#T)aX*&q=e4*<#ME{flTLJwdmJ z>tHS8;W~r<5aTIn3Zd_y3>k(-SsEvzZAl_%WRj#fD-NkvP`QetT+rBxUY0VOO_)rM zXi9LCDgX0d`)uE4#boiHO0KWx;$|VXaWTk`yory~a}471OhcUmMa_ zIL~sS3tLD`k1S2e@`TgL5?490B&9dbFp0sWiPTUv{-D!}+BTH+k~B+6O^ULX*?i7y zHf6q8;A+R&bqJyK;TLM^QSzY9cTo7%0xux>A3xx_bq z^EdJ{|NGDI)Bp0P`G#-#2L8w&`YwLtAN)OjtFIsZpZ_60`al1}-}2|f>-x3p{OU)4 zjg5^BPESv}pawkEO=_^5a-tj?+M2Pd(yElyveiwELXmorxZpII$ZS+mx8|TQpV;X`^?Mp~pW7*l;=1VUh z@Na(U=Sb3o$!tQB8OmbGWICa?aCCggAkP^LMogw>TuL^0@3m{B7Y3_oRsdg)0B1p% zzL2FURkaia_f{#G=sZ~!o;e?IoM#|~_r-t4w7obR7=JdjB*J#VS;+J`C*>JLplO_i z4}o6H6g$6H;*4y#ml(hfV;*PEgCpPmEDH9{XB}+xb7_ax1*f4sm{Q79Dn-}DDFxPx zm}!GD2}!DPR=QfGsTUMenmjX}GA!c~*7Hj1E>CF>XS$q08f&HOE4++J+i^4|S^0bz z4;`{^QHEINNwWBZ%BfDF zICf&gTCz>!@h8=eSGdQZ1RcQmxUE*$KIfg^IM5Bx9Ivk!po$q8Kud2A;6SJ$4Ka}o(2pd?87L*d8 zs|i8B(xTxO`MYsBL&$=Lb4m6|NBxi2aaC0-^B&f3oY@WI88a=y+{>ImSytYjm{w4; zj@Cj97}m8U5ge)&`V8}xrs>Lh5BDAJt*f2aD?R9C?}N29q9>4?+iSAQoRjY=i$cl@ zt)&XFg1>%MNsf*ZEK{Pu5(m)M$s(jN^7c0`oEu#Pg>9@D2=-= z0l5;CD%xZMh+P&|K?kHMB_%L*-AKt#ntE`&ix(82tccVa)6I!VlU6WJdvH2v2d#iP z_^wVm7NO(ZUhK|RVJjN}<#DauiT7`q*Ym(-u-C!+j{a^7=i0^bc|Q$w&AbfBrB0-}+oO9-@`vuYBM4{hz*X3|v_o@N2*MDPBA)c+V4$ z@`3lgpZb9Z`TS>}Ve`T^N;mxKzxWAWo=o}h-}!NhyZ3oMd)6;9g-#Q2p%smj1K3$o zlVg!Sk9n^TC@L?K(;N0UJ3Qf`N3Qb+{^LK$_x}0s<46ASkMhHR>4!KtJoJc{^cPRk zgi!w=6Vg#BLak~r+({-Bjm9>u;Rv4#lM@i0EK3muVTW>-hpt`cM}GVt@%;18^3`wt z7W$(hPrmt0^zxk4BxK`FZoKKuyzjjq;KsEZY_6@de{h$os(AU;S4gv*H$VIkZ+Y}l zibYAD2_@SYgGqBhGt3k(-n_$eFTKpuk3Y@P*%`;P6KqqlJsgrM$hGD2<|Z1&P9Kh& z4{=s*P%RI+(tMB$u0)JVhmf|J3H5s6nwUBlJ92MysKuK)&K`w@92-la3dub6@*X=| zo7lQ$-ppwn%!(zYYuFmCbM^8ilFTs3GtSB-M@NSYdwu$O&S21IGMO-66!h~R1WH*^ zqA^_9*x;#a4{~vPk4G+Eq2KGXzO_a#*CaY)F|U~}rYwqyZ~X=rHuq?hqNz$U?a@$^ zh^U9pfTliUcsid7ZQW=RlZ%SBlRBcxc~QgZ8D&}Gup&reG^74V>TQ#RH0^Qa!H4)) zf9vnDyO;B!Z~X=)r}r@~;p}Y2)d#NejhFU7!QynrV!mWHopE-0O0g)Y%Zjw0ppt|^ ze}jHLAW5YL*CdAEAK9iM?+tNGm`rCRsU}edtrF5KIP!9M4*MhDOSQt)4Wpr`;om>J z$FiJ*vZOj;SufaJ-()dgpo)T-nlYJ#Am4bJswhuO%Pz-gFrX|7UU~Hue&bW0VsmGM zw>|k77k0K$3aYxIo(nRYnT(B15v0-RHq#lewfGf`u4LLGo0bW{6GYzr|Nc^|RA%tN zt)msJ(n;tK>;o=Gt85(~G{T+=hmJ4}LTONp9Jg6kC+}Oy0OPQ}W_~yj``^oQaZnm@ zK6`n_=Gu_)u*dq^h{`59U0Ns#0Y5~`#DQ{c59&7(jfpcKaS$7yH!|O=O4i|L z;j_WEwzP4xTFV_!{dkUR`}$hrn0gGW>c8jjJI>Ir)D6c$p1*GBu^VR?W3~D?u#B%8 zGK_Uyk|aXcY|jkU)fOv6tynoxOV&x~Wi1X=RZ1{XHY!0wFYp#f3u7G3L7ah(fs*j|P!e!{Zo+5JXQyLe zD9mr0`HtrKe1NPx;@SE-E%4w)$ow+}J%vE4j^{kQtaG?%jN&yEe`m}Vi9v+eNe-Fu zCJJ`zTFS%PYj{Af&CL6G3oQ&oFcIdl4eb4W#6p8szI0`8#b8(b@A#S8y$0>QhWick z51n|fa-K$QJAfl(T*LZMzMLxrSY=&f5b&xjN|e#0QLk)8C?OQkGBFyhB*R&iRogqe zy?_-hGgvTEH;?V+TqmI`jW6A)Yv0CGW3hw|I^CJ2u~vz# zcOej#_Lt|oA;jlT&qNJClIHj4)=Byb_l3JFF5~EUdo^i5Vl9-fhyBAp2B`5dqGu+?j)+;YyQ^Qv$ zn%pLQ;nTm)*-!p6iag`NZ~i?r&61nH`YRlk4gdLn^%Hq-oCP<~H{a?=jAMyy>y0`N8l1Z#X_W;r7j&4Eh7g zs%{lng|;d|wNk5!e8F&sSBy}{1}GqO-9aaaxX}qtIeKZr{mF!n{`$vx>K$+A;YS~* zm*+${P($caF=(#_x*hJ`#;Ey2XFAo&DVJK)@y*})mLBR>8GAza(c>O zG~(fF4`Z8}qMElrL8c^=_1djD-|+r#B*;PwBpx3^J(tiz0c9<5$PZ&9rQRnIHV~`E^O`a z;+J0H%H_+fuZ_6&-~){E9-G58E^P0xx4D5%6RKswd?~^0Vxg(aGfXN}K2SLSIP;=l z-dIxYXsDaU7#Atbeb$>dt-xsFGuM> z%al4VXB|!Bn9ZgrEP0k<8=(^ohtjSv&vFq!Y%0oP&LA6NjMNpERYh5ply!}59JBeH z-Q8`pwj7-tF<(p=_J$avSr$tivZhWaXP^{kXQybB(ChUn%L1+7@c5YHlT+44BTi3F zc=^Q_`OIfN%Qt_^H}TH5yq(jd6Y9od&?|?!Qwr^zP@odiqUYx`lJOoc%aS{H?((BQ z^8dl%$kLRXFWu(9`@#Q?Kl7jd899u+(KU&0DPjf1R$BW$^s??Bd-PHM?4SFu_$xp3 zm-&PL(I4dR|DAupm!AI;t$P$@^v?%aLY?al0<9HQRdeyuMYPhKoSgXm*R}8Qsh`#f zjh&#%+o52)!Z?II8!NuXhe*4Rl}4CmKIi4xdEsk|suWb%0|ALiJZ)5yCWg8$QE1l3 zBhoA-%kq}?Cf_3zG-oY&uh#;vA%kzNWmyy=ytuW^{@q*Tc}B07lVllnY3cP+5|y^> zp00pQ4WHdO+y5ivQfIQ9Qv%@|nlTHeCQ!%Sf zF$QX7$((Je(_yT{@hS=Ac84SJ0hgrWy!QJ}vMd7X87-n(CP{_8V68amQ8pzwrp5#((O`qHtS|Ws_1>^brEZ#_ z2pk8LYGrQx&c>VrNI(Q+gVP+cL?MU`b+%2&)J8$|8wD+K)~Ajgeidhy^oldu0^!kf z#r{jow2AFySO@VMQyv@%3g~sykQpP|6`hG|gPNe^9oA=E*XmRm?9edn%IvB z4sq*@Lo1foet)#CTR_JOb+|nRB0x;aZ=&{v&b3U2cx)2=`qpr9)-3FkI4F(Rk@RG4 zTF|Q7!?p!W+xgTQXB^5#{oAeW#+OxaKz`u?TCG>sQ4pFmNg_T4c%^s|Sc^M%g!z^I z;@V6-hzO+Cy3OjY1R$OPg;M@(v@M7h2Zv#NazdL1T_K+!1W?|-$OTG+=eh^JO{8^XGd z??3j<_fP}Fh1=#d5|w=l*9pj zY=e>?`kwy^rF@`hMchF<$#gvb(wFGveIB^{0P}L;QBOIzjt>r5&Srem_j~|S$r7xM zM?Ck;bNsLW^vC%Vf96jz7!8=5o}rYY*B?+-(qmbrDOoBAWktgCFMo-wmviINbpSs5 zh0k&4)~h`EKK%bKZ-_O7J$$v%T5B{Us zDL3!lV>})+?&o~f2fm7BS#o@K#Kw4w*?fl6j;3-bO3LK|vL0zN;n54fhAU3V2Xh{M z{5u(rE`q8ks|6;}q+04~l`$M0AJFd)=?@h5Cik#5@06UQ1*Vk4v5MxON0;J*J#6&& zpp659IB2kq_2NXfr9ZX-K8`dK#QFZgA(gA?8H1}E25UohF6{B@{rgmnWjGvD+J@8l z3_YJP%rZ8HBNk^f9@@LeH-F#*^z)3p-EDSub~rvdrYK9Eec@R?Ih&K_IXE#a`5-4r zH1qkK`Fuf^XSDU53d*{~kOGRu{EP=LU14oB;&}g<3zsgCC5GGg4meaPAN;`kSyUBu z=|xL?yQUCWj@LIR=5v%uu#IFz2kRqJV+6G<8belhmR3}aWbtS7Iku^BwxO&_ zQFu1qNY)k0Wr;~r5i3(t!@IRP=JYIQHalUyn9}d{nN$LzO=e5xiv=djKpPfy#bQ$W z7FU-3aEMcI|K1VSR@`{(VP?|_SGOyJ^&(%6d33~8E%v$7DuD{m`WXIp8sHdL-5^&*O0=0Z`|6}EBI zuAyj3p{Lfu?9j%L_BBarNJ+`kTuNE2h*s%DfW7&A&PPA`E4=;s!@TKTPrGyI5{XWZLfzhCBO_ui2sUc}JwiXJrt}QN=mOM@h^O0NDSR8pTgGSCp ztEKcqd0^&^g5=D`s?t_amKx6vLp#K4OLmT|5k`dVv=;NpjwbgIh<1@ zrgM7n0kl>IytaaruQgbtK3}wJQYqo9YN-)5Qt#dFP^Dfs_OZho)@c}1qA}}&_tobM za~85oWm%$)A@|O66Mb$akf#H_o2PNN%8b#A;S0;*%* z1UnGMEd~(7TpD9g)`?b^RwxhLh9Ex%i(-m#@F(90lnSi2U{gY7+Bp^ZIMxSrt69=` z@3poP-?~df;~~_}#&v>k*1EQoOtRn!AOgNbwNAaBXOP*B)e`n#*k@WRa3Y#rSz1N- zz?zYD+Kq=c67Ys#GF&gP7sKAFn!44&3VT0ZUn{^wV0>xaX7a;zLXc^+2xljmFHb3b zYdIaUV_j&usigI&j|s5&giqJT&pID)69nWspfNF>@OIEtsGC|qys9fJk@cX_I)H!5 z+h74sLwS*Pt`(8%5~uQ6*<-6~I0hzyos9wO_}}r_BP=!3+KjMAfKIL6ua3C%H@S81 zK8;7|oD7_YU1M^}bgRL~RYp{(YPf~8(+ovom8f)3!TIV-@^V9sq zzxv;J-`9N&gTYw(gW85-xg^h}g-_q)eEi@28=m>%XZd}<|BrBXe4ko5j;`M4?u#$* zPyhSB%;>@;zU{mJbB4*6_$Pnkhk5yMpWUk$xLsECYsWwTk^i1&@9y(!pZW}sKJ_&J z_T!)6S3dS}=2gXXHkCsRplXEbphbM^!rmUorzb2N5`Y(D3eo3Aj+4PWyWAL8J2&cFNUzvF%H zdJpA%$nn8#(ln>Pwarid)W7DT8xL{)>LXm-+F@Z!F(3m-ltLMYHrtrxZ?HZ32lTcq z4_^R1`bK7Iz-)GlG&R(Vg5%3#Rxy8%Re1XmJ zy0qEDvbDCxWAAu7S1(-R+Qlney>gYCcW+Y_1y`?J;r`J9yJ54SwU(pXA`+m^2r}ur5lpa}=|Zt5+Z7^5s1~@f)9{-y4#kxPIe0X}ZJNa!%8f zjK>4++%36(Z=Vxel3K;tokQOJfp^krS3+ZJnp$YzjtYk&F_5YZ>oR%+nMZ{vHP>~8 zR+{;I$-&7X%jKN2vojXulF9T8=N#klh{^1XWhKH{i`ksU)_xyYnXkq&U(Nu_Y%<~a z;6B%{Kg?54K8?if3Tq|kS{sf@la#WlDC>&pY)(;>=p(7e3Ebf=HEr*vo<(I_)l0b()v&`XRGwyV0>eQv^}_#VsmSgkNm<%_+S3nk24;P zWj_!yb+!#=gF_YezH^SVvs1q8yR;-CKn8*;KHN7+g8){d@KICaer5jwa5b-$Q%h$Oe;^c6)AvK0! zuTSDzsW^oGn&la~Dk$bNtP=-&Z8R1DMnT^1QI{2`^JD7r5{cQwDRFXAWvI)N`C`uP zJ4>FpctvcLFOxdHe?T@8fjC>&^m;wY`9kJxKBu2&G#1GE=oHdkk7ZdhR=Q<5$lQ5% zK`ZiJk9xY4-)ZU7tpek~y`E|uUcosEzl+!F8#xUt0ZVlFOC~k(nTw9@9$zmGyxUA! z$N)#SI?m9B&xd=BGca*bWqr0Rtm!x~H4y-jM8SIdb0>4Iyz{7{pi2?JC)w+<_Dk3~ z#(1aFM3iAs%kxf|#wZcnQaE2uV=*RepCjz+##+SnqkXn`&dvkTads~bcH{Yse;ypU zEc4=Q{kac*Lg0RWe#0y5op`T77tl(e)BzFQ`%;>wqAY7)lk7nsE2Vf=l-*kWhQ@Zl zfKm#qLj#E~N3u=WkE_h8kX5%HEQx`)FeWiuBPfr@XGZMDomb=!``Y5XxTu^@t(HVI zP9b;=V-vGEVwOU9qOU*S7nNTMwDEpQa&~E-D3E|Z^_lOO1tm5{o*|6;8|}Z?cBZM!qcB^# zHh%#;KF{DdfBvnq7FNsEgq5H=#rx>J${+r*ElIxW8@>^o&?nL~Bgs5Pqj z#$#s5zxZE&nxFX9k8|&|;61ns=7>h+C(Tf2ujR+Qs(P*Zvx#i(}sNp7-(2jj!ar?|3JZqhp@^ z(ihm=*kNydhX=1-<>=^u{X6^IynB<2moC#EUgF}FcarvUtZnFLIfqB5jD`c6x}tHG z(Rj%I;a$dwVW8f_Ox;7NU5a9zS$UVHo}=hd76tu&&SJixm*w>OeQv&Xlf0KO7_ZTw zS_)_5MHy&~nW1jF1NeMKBz9z0sej!D3V+5yLQDg*){gNs}(H@)>T!KLsVgC-g^s*#l16N9FxKPC0Uq=9cpXlhZSjG@(Bjpta)c z_=^}vqLK_@l7t`l!5`owAN|GO(zSp5pZz%R`?B|Oug~uO!kc-C9ILSyfuA$%S)9dxny22z~Fqfw(gI+6Z*072$u6&yML_wb5?oE1CUbPmV)Onm(BIBO7QSrJY|0>Vimb+I6aRD+Z>u1g!zsiTi*DTc+gVuN#w){XSoE5|7#WAhK12j{vf`miPQV zjrS`=Vss%OjP9qdo7VxY(sNt7PXt*MtGaA(8|XA0^H4$CcRlR2Ft%k~3**5#=?@+~ zSG-5t_Xk!&1VF`WF%IzC{U7EzVuHlBB334k!GricAuv4;SV^W>gg5Kj3bUh;^UQdi zld7s%E(@|OZK?R-=K++lT4NMct!9LT56*?TlG49C?*YEOnsOpMtyH^T!u^G7$0C`r z%?#rs&zMqGk^t0EuqT=n3X>?`!(6SbhbAhGkU5HUbXW!H!8mirkCNUW6pWmPL)_I{ulXS^|VDq)6&2EPhu_Tcs zU1Z}LD=oB%SQ37B$-KFaO(N^F^NXylMU2^R&-0*U3=)QaH|GNGm`M_Bjt({v+CW{B zCY`_J{NIzu9)1X?AWMXouaksozQ8)mH+=QiaOcil7Dsc|*Vaht8il2BHFa&ty%0uG zmGsk`swn971`KPpn) ztvpxRScfRdt<`cZ*@gu4_VgIbhuYLZ2aX+K3hF~GjGw!}}pFBxe-@e3Q^*xl6 zDLdO+OlDK^q#*0}0LS{;n4&7#+Snv9hTC^duD|-DN zRaG(ESYvl*2cryCS#bHn4iz=YAZ7pXfD5~OXr;;WR4DOQ4kwiHqFN<5OVbqSG?npp zhV{V+weGl-?D51SkB}!h_8Y#D!~K2c(*;Pgk2a{313(Vd&Y`0P$6}`=7~j}ws++pa ze1GdV|4!ci_P29#ax6h?u;{@dMx22>&zQ|-{LTO2Z&DNm%VHVcCg0&Y8sB0u2jJU( z_wV7&Prr$ilM~4Rh3kg<(eizHmNA{q_*?(u-(otQQj`U0nzR{8Ig->$z}IFQoNEuT z^WYes5*W~Sr3DpNjX!i9tpFU(5q!K5$jJACQJMZ=7pZN<+2oAD z+E6mAMoHgbpP^|yvYx1frl~odPT0A;(`Jh8#`RV=AKu7kI%KxhdnSv!eWjy2r(ECJIyL`-r6jA6ePsg ziNS*SImKaIb#`ih{Wg1LCF>lw>pUNXhW*ghby^agqDZKlvURpX2C5ChCDLp&zRvHb zaLw=}aS*vu-+C_iJP%I9&tFv)O6!&Ph4~5JvFb3tUfbn-kbWL457&vuyQSJk_k6x1 zP56#9O|Wr~cUc%h=`<;I-AE=-byW1m+7_I&-d<)|7WARI?5ta*N5{_>0-adQDh{mU zR~+CfXa)YD>k%Gocf8-iIxdQ$r3c3VN*i2+y#Q?)M)-V~n|S`>F^=aUR`y=WLaHD{ z?7Lx@D66M+dj^F)X_Q8p4&c&SO3;+G^s;<~`C)D2Rj>65_@=Zk7igq+dYU9H^*+9C z@ME(qTM78i14XS5=-EQnBMA<%w>ry6)3gOc+JH6O1FPUy`0n%eF05hM+o5wpH^v|V zdsSJ2$ZNcIVw-1eL+xyv#g>}(#MJK!#i$qI0Y z=-)IRtZ+U6&eCjU&$oYf0RUGmDat-J3`P z6QBKe{%kT{Z$;Ydc>u;*lE3#q{0|HU{r19TRid0%!K@3kg+KfqzYm>g7PBc;U9vXb zps6HNsg0qs7NZpj7Nb*K(@-l*>T(jDa`*5Kqv3%5aDY;p;c(1nKly7s_u_N>{y*^D z{Jrn}ulcUO_yhdiKk?ms==c30{_+3#*HEKfe&@G;C;h&m_)ouwpa1&b#_SWn$Rf)z z>lgXJU;67jaQPZP^J~AvAOFF>%-{LX{w!bn{`XV+de@k)0g5C|sEUGv{rh~`o8QcM zZH#tGHk^1w)Kx{ENwzs)8DhLOX_j(we8$oK0i)rF#Aq5}&61$8DhS1Ck|b{@$2r#q z-C?uEf+k@z^?JSb`zf9az<{noegE#LO-?2R_)^#_c{YrOFCi}d<^b~e|^ zdI|eSN4$FLHnXCnxal}MOnL7^hg`}2CDYkGHaFqy=nwPpXRmW{ypZ~rG^Hvk=0(BY z_72a!@Df>)vAe#<=brf#I;HIinD-Lq%YxBpNWa(T?Btl~^pwrA_vPY$o(b$hZ4AU~)R)_6zqZ z8qLYcAx1aUrDKpA8dq{WIU!9ni|K-8Q{jNRELqIvl-4pWDo9gQQ!_cfPg7Mq{^a8% z7cHqu$a(_oIAvItHS@)swY)C^aaGN1F=0AA3)L@8R@ps4_FSAaf13^RGk`>) zobn2-u8pmNLt%^rZ$;H$jAGF5ar5>~e)$u>!p`OfRq+&$TzZgxzt3{H;I*4mmgSPg zY(aVD0jc}7Qj?Y?DM8$8eKaQYY!!#Vl4d=0Qc^p3@XB@8#~bu|0}_>zXsJ)G3Zc9< zuB&+yW`HHrhP|C#HrLl^Lo21|WeM}ejE!tWYBEfsNb>}T#VJKymLyt{Brr%cqkaYz zCp;dX*w+Z_BU~$f{`2(9IKvdK6$g{&L56rd<^2xpx?moJ4U!lE zQbTD}XCFEsK*jT;d`F0;X@$tbzKH8j<9m!Vsj=2gP>ycr*N>O>Yo)dgCQC(_%&lg* zp$pjK0Py^}Yy(dZR7tzBE`Vw1vTM>=rOQHxS3Cyc=jVg8F6$YB0{OeFQz;8^zGc-4 z(BrJEXNYQ+r8eIAF|pSAfUWDyQrF^RCBCIsW4kemSu-E3~EoD`4dV0$G`Z~rZL6qr4-{OEjj9YwehjEp8>j134?lDHAbwbk!gA5dl z`GV1S^oBmEF$Uw4A7SdsvZCM9qTiymSGE@)B}r1svcS0@99Oq%AO!4McdZ5A=v?jq zoRH1!es7Fw*%{73>cuY41Abwh%D+XEs~!7LQysbkD7CVtWgNT@;LrR(H*amd?v(#q z@zt=?9GJw=gcj6FQ9B9pEta~e<-VJS%GUl2^!wUcoDuCNRQRcgXNEl0QC3wzf(gVl<;yGC4aUHQP*=R5xc zde@%h)1UejPrdXkZ++@1CcpU{_g;LFwG7tFlJRhtyh&()qx}PlqGo^pE{oG6Ub=G! z?ZT20V=V#>-T*4aqFi$S;6T~{c#5aG6 zt%{h$RIvB}jFH5!*hEFzViLnMue`+J=`nA6dLZoznwslZuko>8|2U^7XFPS|A%6Pj ze~w@O#3#6Ra8SuU0+H>Yxnqy76BtyvqdG3XDN&F0_~ zX|5=n6O>*u7_Kv4ELj^2>17#tuSb8-CpQ_p8=I7ig0=A)moGoaVo{JPQC@VO0vitd zrV-RFP)Fi}Iex{9H%9$q#4JXiwbmHbDM~6MDxtMk2Dgp0>Pk~sEDK(E@g??;ZsQ!7 zM3k+IW#wC?G@?-Nq&K=!q8hm@3lcP=!I15pi@g1*w_=i%JBNoTrx^|U^oKe9Ue5a3 z&~Gj&bFj{#lY}fY^!ho=QhGJpy2h%S`Fw_ID#q&XxacH5_tB|V^`mbcM94J|@);Wr@p(&QQ2I|UEElaAZrm~J+f539K(v+5>ShB2^93CBWG&|#|Ymf2h<^$|) zU0`xH6Cp+=0AQ$7(sXpi#`k6Ir73k&iM|XHG+S-anct(0#yCf=Q(T&o_l6Ae0mJnk zDpMTXo6s~h+H~tM-k0$jjFIJV_y8Q=KL+6LtM}NsxGgHu=Uzwq$K+|w!QsJ*Ll<3! z?o8_rgv0xX0PNqo&-R5aQH4MEI^I8_m-o1P?_PH}YeA!9bU5B~u`@4@tgte|&)Pdt z7Hk*9iY%-0f`JZ=cZw`64KBQ_XBBBBS{F)dj*m}x@}Wm~$6MY?o@S&v;lk!NNup_* zipoll<+`XC_N8P(`8sZ^B!gep6?NS(91YP*GU|2RP%cXv<)~G|WICZ-lni?7?CxHm zXB16SQB;=Y&K^mgwWSUkg|iLg;fSUzdH(t5czov~AcAAgHf-68}AR999AWI-w+Ct2Aw&$edZ3{FT7-d;n;z zZL{71kW$dnn$J7gA*<9nIBhVkP>Be9DZhuLgRNhKK5!0!+DdI{l-Ug5(~TuKjaOlp z%#ZVDbokyT1VVA3ZMs&4=N-5}2@U^_pCx8H#B7H1`!~$v8)bIG+y!Sm1b87)5Z6z} zjI{8IgTZ+2WB(-v8rpe_z#4fEZ2%y?m}>#N##s_4IwaOc%HhsM0b(blbbh{K<@7k1 z4$l_EuiCv5p2@F)kN}Z&;r$IiKEZM|-Y@I~wpNn{F|#1f(uVgn9$1LieGH(q?@=8i z<~+a><}wConilMlvtKI&By<9d)@6lJlIad(7v@#2tK0t4Vb41&)tsVKE?oh-@t2@4 z*b1XXe73P65z_^iF@O-BAzo8quHrS<>RM<`f(N>qrWFoEDc=dEX={@M_!rx#*v^G{ zd42hSYHQ=uG?Y$AfDO_LaX1{T*vq=E+kKgO5J&p}PN-vw{vekOua)Gc(VDfjF~a;a zfYh~1DMDcORR2HP{yW^ZGQGCp` z5)Y;7;gQYYy%Y&$d|QK#z35qvM)qA+6!MH#z%s4EXva+21HJS3m|%5w)q|p=>ZihU z@@$;g0xhwsYenQ$nci=BBHKjPm+aLr^iuVpfW+uBtwSkI<3f9YHh9}JF`{_1OzB#k zj}B7q5+fh;!U!_Tx>22dTJ@bh(`vccn1Z0I>oEFo7Yjjc&nh;_I_&@zCGB3B(iz)Z z+d*}(k&RoN zYwmv4YdKoXSR0Ia`T2`nzVrg;ZaK@D+iqtvJwkg4oNvG7R6d?%54`mu{@kDW zYDU-gnOBQ`k!g*$!O_HCFY7v$*p4<~Em;u+G(xnlbev%tZm?41c}Clc@SF`Q@l{=Q zH@j_{WuX+;Qv^E|$Y6N0K#ghJrlWfhjyai3xc$~!nSZ*W$V%47Yk*==PdTx@$zn02 zCg3y#4i30hd0R5*>TA5h~}RkzSPt z?t3k`nvLB}ycc6V8m&=exd@V}jItatt1FII{?~DO?-T&#Am{p(V{8z>N@#?~S2`HS>)KyDU z%Lt8mWl=f{!Y_)V98s1IooAT5U~_$)FZ-g0pqWy0D}VUui#&hv1@64}ZjPr%934-2 z@$w}uU%5mznNT$|7IniQ%NdqA{1v6yp)5EXZ<$%7ZYR(%1mPt%5_aEXb9v=cvdHl86FqZEy20|HZ%J z7vJ*>Y;WzL6ijC`?zrs^zT>Zd2Rl34T)jq5=Zkx!3k{bmDCui^Yny-m?cet8Z0~Mit|ZBO5+KE6#$Yk-J2`iE!+FU2q*qESEeLjWT%i#> z0+ylSQH0(C8r=u7y`vuwN}8bQao4F^x#RA;m@gKLib81Q-c!|er#@`kma9B1ryW3mL77MOjyT+|&PSfJJa``e3TsY5Q zR4^J3IX;@wdfTxHoDXzm2f4{HO0G$K3}I%v_#fwECC&!`*YvaN6PuZWzwz&B0+A*g zy`2;)qO%Uy*f4^u52jZsqiK*5gV;0>?kZ@xn zre!^}Z4;`DGUkq8Ut*O!Cezl6@LwuQ*nuhFaJR_dUq z;X1J2bgJ>P=Ebh90vPE%ioa_^lH#1}XuxqjcEAmU(PgSjy2ZlMfj#N9q=^7N0-k{t z5k~xKZP2;Gw-)P`pGyah$pw)cgY`nS%}pjF#KMTMc)ooyvn*8TT(4dq_iie#mfqvI zu2TSF6Q+`62ji4&tdB_X4wl?_fUw>r@R4+lDLe z`L8T+yyi>30#g=LUU7R?@We0u9GAx>d++>04(pcMT5MZ$$C=ZddB-~$e(F=aXbeB_ zJ>Nr77TD34C!TnQ%OCp)r;qkId*=oI@Wsm`F9p3yW> zsWO)Hr3!DI3;jE7#Be|hHYiB50q4oIVP|Wb_0gCj%TPEjU%AY@nlU{-v zsBFtxQLt?`xY}N$Y8Dh)QJW1u{o)~~Pn`z?8`~Ls+k4Eb1x2YDk2lD*jL7oN(YiTX z>)W`wVt#Fb&1(MO@kjaCAAFprAAOwd?QJ%;)|t;1)KyJ2U!XHhmMcE>sZa5j{^Gat zZGZjSdHJQwD+z{Ne^k^>k*3wkMcRiR9dG=3G{lh&kp>v?Jw8-AR4_Vuk>P+3eeivZ z*N2=vcNcZLU{IE{jqPUl=2=EjjIgcD(k;pX-g&mShU}a?!O#ENd-;v`zn{DBz6-Zl z@TU7;&vVZ`&I>O*#c;e%RaFe~k}MD7@w~JJIP0m}Fpfxjj8W(;V>}o$9Ij!ClFOG~ zq^=gMjmMlkvCErZ^Ln1I9>HpHhvf$jVQb3x$e-%{fn1jHpeOW@S~rk@fF|tm;X0TpL{2a`GVugb>{P$ z$>A}R=@FNY4!LycDwm&so@)o!m^YT|$NN0{)Dt}YsVCXq+-7@goom+*Fa|ONe6ski z>Z=I?AzFcVw5_FDG(s;_(gT*~IhhhL!{aHkLIN2A!$kFgy;4H+lIn+|$TL}MNB~oq zf?+WvGa1>S#N-(&S2*JcgFb=~iSN`#(<)Z#U{p&F)jGLmNHx|C9=EW`U2Wi6++w%H!7 zQ|KJ6J#{@7kOfC$o4~kf87P^9ZV?KnP?bg8OQUFA8=i+lc_@mKyeOoaUe_pv^#8Rj zZPTE&1U$!+V;P;MMdinZ$s3D>_>Adn#`SC00dbtU&RI;RjK*W~Gls2=b=l{5hNB^M zwP2%KV{2=ZyKlLT7eDG*K|dbhC%kymbq)8Gz#B!*Rs*9h39!;L?wu4H%4D3;a@BXat;Jdkp^_RwBP}IpGxOP&SZnr){AtnA?t}n29 z0O3F$zoNxS;)^bpOV(RtQpnGA2<}5ds}v^Cx%+z_*DOomWB9hEsm$AY)>;;e#nPCtE?I7*@N}~xOln6uAVMjoiy0cluqXvM@xpX)fXVW% z2RyYaa_@ucbt=l0d}q2ABI8Pao`?HyL;O(?$C)YBKTqeRPgq-rv%+vvPN94syBh#! zaX?jxz-d{Q2>1_KwmdetZ6latu@;OGQQ^9-!o77se9lsYh`^@o4-ZyRRW(gL#d*v6 z#<&}68UcpIVnLP}G9zPcBa6#9Cu_jTm_w6=f{yQXCPb9gW4(y286(qb;t16U0z?~> zCY%z7YZ>(?ACYrM3R!XebTNn$- zZ~fodK6#$U9{nU||KUI4=%;>ymwxNFxNmLD%WH~D7q+-d+?reIOO`_0e|@TC%ATW1>3YZTXF8hS%#w%oIEpN zf4}0)t*2NYuQ5M5WHcO+=LMVVyUZ3xtle>*G8@Uv^6@S&UAe^7s}~usjj0wDxAWAeAEk7P2k(D?FL=|NgMi%-=PgyWplw=4;~|5*U^VQ(TJ8r=EithoTSXu8dh$sXm%(K=y%o$!r|JK(x z_{blAg1`3H{u-bE1#jdp{*~`!GCgK%bDhJZ2>^p4C(8_Zkt4JgIcK5GWK0(`&Yw8J zmp=3mcinvt7jD0U++=*>kw<7;%feSu6*CR0QfQsyam*$)t#wqbWiTvh<~42IG9HgP zIJ`#P$f&WCJ6jZa#{SU}ljA8`Wo({1$?()R$HzxZjv89$plxxjkc^uqh+JvSc$jhO zv)i=8ew zym}q$YjRUC+S=f@^S9zPf_AD5+g2P+kGXbu$Ye3+`n4-O{lurqwP$vGOs1qt5(ARx zRARzyatQ+RqNHhB@~j{q<;-Ril#+H4lP&jSTJL2prWYYRal$b;>w^KK#d&2~k>v$N zF(%JTvOGtX8RQC;h5o2e`PGD=hrVwrtu&?UGVb%%ww)78jc;Ao98Zn`_|Cuiw|T`q zui!hs>pOYrr59=1rn3(*Hg=K1!Ag>q1kcf+TiY_3$eR7Gzx`d@dEqYp#^3%9E?>UP zVzCIHTkdIBst>Bu*J|({D;7SjIQbAoqv9WkYN}M8oR@Lv1U85F{rSh%i})ShgLVq# zJmal(e&^v2@x*(7mNTbMbNjjT$v_F;QRP}2rmT98Bh0`?K$@m*7;cPN-&~h_2tvKL4LfTa z40kpejYcf$s%w=wK6D%%Pf(fR?XP%=9&f{?^)PGCNH|GsAt)hq`l2C0Z*%XX%#Wur)e^rzLtUTJ}6HA9_gkj z2ok@0H35s?wd#}8WT&t8^~q5;gI(z`c_CI>ld6@DD(xXYP{Q;QW>^Tq<8ur#P`X|t z6+I@>k*e;!3dii399bA0n4YimUPd=6)wL<~+62A}@>2jwu0K|h3Bi3@U=V;S#*G~i z5Y9JJ>W!9at%+bU+yVehDmuTL`=q|~tn}*zEGCnsv zm$+ZN586jwcOqjt*jh~l0&TcX-TB`<&lwDdGK_OX9P{kl&5=<4^cf|=>7^J8jx?Z&mR1V)ByRY*>n-FC+X z{@*|GFY#LO>8C%{8zx4`(-}w;d#%H_0}a%%Sk&8((y3tn~C2IFDLr=NL@?TtIx*x13gHEV@tZL~pa z#c()hxqR&kRoybJuVHP=sS{_|+1+J*eGQ`wi)z8RDA*iraCC6Y`CHF$?ylQ7ef}(O zALZzq^t|5eHJi-1cJ+Wv2j!BO19=~knci5X4lq`g`o*r6{v8*+ZDjOa77()zbO{b1 zwj1EVd5g(JZS~yQ^St(zxANB4KfnVIJjlhDU!<<5Y;0^%%`2Q2Byvy=7!AiXZ9|qB z%5s3Wo~o|6`;NQ0aO(wTiy4Zwx zi;Ba;1D<%{SqlE!r35u_ZPEpo-kIA(3xmk}XMD<$eX8l+~rKKH4o0S08 zXi3^zhgNZ3t0K=b$}*Ssjl3Yw3rqnT*<&a|AC;HBHY?Q~iPx6Ztd|UIv>`f(0d@ws zSMGE{YvEh}>R;j9xpVxR|MOq-(n~LPf^a%D;;MHPvNz<%5%f!6N=sD~;BWk`zrou2 z8bAEwKg8wBmpcSIt%}JxvlMKnfq8s?7g!>F&?YAANRZ+qQ&qX85d0;+0;gQA;nY};PcNGa(X^f*vDRMZvLgKNT~P>QN)x$nMvIeGRpAXN^n z73&-8jK(8qYDx0z3Z-*So!n!X6-*8fFvj!j3(xV=%P;cOBagE+$k{xxfyqkB!2s8I zY03?{CHWwunH#X8a&MHv2787Qtqchw1)LOz=7Xwj@6X~Z?fr{MXhi8(M|;NLBLXQY z!wGKe<4gmJxQ@~!Jqp_xV`!49NS6#Hd#I~!#$?qlCsXmybPQs=j<{~qz$~qfrR%!e zR1v^SdQ{{4Qt%-rG4cDLuawIupsY_GL-HGw#nxI>nCcP1X#plh(6e^7&NEn zlTuPwtBmQ-mTb{VMLgZxX&-yMKPipBOI}^yKDG*4#7a?`c@W4`&GN#T7M7nm8G za$%I86e(N~KuoEn5zLVBtR#9oo+8iX9YHP13mQU9a^ybBb5?k?^(Z4Fm$Fc7$vT@0 z*-|S{Us3ng&ssl!~>ep{ql|_6?mYG1&4k@8h_(&)B zvcJ9dw1IwX6T3`c(I_RNV20&{#ac<&l-77rGfY?leX^SFpRPZhFcHA{5c^~y{_UUZ zrHdD-s*1h6J@P#7#)HMs7OrLwr$WDkoY?l1nihn zD#QCef$Avcy7$}ZD}pOFP^z^yQs7XENIh@co{b>(UUW^o*W{5E=^SN|Q(H^ZTC@X` z8?+&aw@Et|y7%#s-61iXfWQ#|&^p>vQBlt_VTVS4C40=#wh?F-8y9mIl<*2Xmcc++ z0Cg?m*iF;ooEI_EaKE)O7!&PH+wI||Y0!Cw3hU5D+B?#!A|kxf+NJ`7B(_-Gtm+$| zLkFsPhjyC6*BR!OExbGUf+yWvTA#8*2Ns!)P>QHl2`d zZF6+}kl%jKuh1BWAFlC5vzphQKh4GChUv>!cwg0U{MZxBKkx@!-@nQOZ+I0CJ@6KO z?8kn9tB*X)Kl!;2FddHg-QW2TpLp^yG!^f7%bO|Jhdlk@D~5 z(MzA^i`EO?W;U4s?;PIBQ==1PZKy&A=NiWcM07qnym&*RB49eAqjNf5=!eF8(dG(@ z-$IKq*w%G4ib!FUF=IiDAtn?gLNzh42n#>7p>(1K@!{4@!|9VJ`NFq-0cDvn9uzcH z$?44(SZlwFQeS3#+XK9O{ViO)Tv6ybRa0^K(p8Mg$V-D&juWTOkSVEP?(FW;*6{d~ zk8|gkxVPd7~vmW+9Lj|AH{tFWu!AT?-&p4=vzG0aJn=s?8@ zXpD=JGGBvyh!PoaGBczoGS&uB*sT}684iYMW0=q9VY4_6j*gfdA44WI+N!FADS^i+ z&1g6vvmTS@%x4quu(iDfUNIOH?C(2@q6`&i%g*jDRXt}|jCkS2XSjU%Mee-oUXkF+ za)w%?6%^~6C=9K$fhsH4)V3CMPTeec;f0r&P9|JA*ylHX^Y{5PU;4*6vAsoR45v?? zBF{8Bf&e%FU@3HQGoL>z(xTt`F8ie|K=g zMvU_0;F#Ir1eBr-GlNwKPIM3fvEGHMh65)m`_4HTWfjDiOlCUKM(JV9DT)$no3I}< zNn9c|s9)QH2yz{2bgnEjR2C6<-;3Tw2d4Yr z)j3f~ch<5t9C7l*9vf@xoH)5h)6@*@koEDH*0pS|kFibJJGj=aTt{@cGU^E5S5Hlr z2|^#iK_`i**19|I@vtPz1vJ$@B<(<+7mP+DuI*pr_{1rM)g&NLnU^T7sjX#kaKPHy z2@zY(@|#WK2D#{YH}R|@JJ)}$v)}! zverwnPh>Bw+KH6e&?Q#k9Q%YK+C^ciI6T^^Ua(2d3gu&kRc0llqFsy=84RY=a#0-s zC-yNU;Yx*sKbPv5ive|p)(BYQRVN&(GmUjEQm$DRHS2(e%+Lv~1~4}kD1`bQYVApK zr^EjUY^A6XAU><|MNtTN9@bJ5#rA;1g9B!>8KdEl^^FaTG0dh@taTJ+(Z$elO{BDC zo2<>4{HMTCXP<)bnRClD`M3_9b6p#nb3U}^0QCD=`nFmAOo;nq@>&!HMN!hWb(g%$ z8i>y<3Zjawo=haRDFXewV{o|MzeIbUWk#ynx)&bo85dFr>f2iyoCBpq!5&<94n6Co z-+Rt2vtYdULA71cG;Np5fM{Bc*G5>|(lmim4}oDC?VteYQNPI}BZr-LxFA$#!yI$( zT$h}uWA9e=9#Z?Vl%P5pe-=gltd(b-Wk!5M0315-E(jkh=ortbtxJ>ixUN#5F$E0p z%bFwNXG8$5XBOBc5W5E*8{$~h6yRQEaCBfq@U!Xl$G>-L(%;zDmF7XI|HFGSh34A9 zA(7(n(n~M#_IG?fKl8Kyg+Ke}{~Ry9^fI^KdK=|nz_0)MZ}5vh|4RX^3nJt6_)3;{I3j)>CJA z-CS|o`VLRFQz}>UgY$E&fBE0#aK7NBgKNRy2hoLaV^gP|^8VvZO{)U&ch(6-SP){1 zcgW}-qw(Hgi4W1-X4X+g##b7w1sv3r)5jroZt6F9xXBl~x zF`Z7xvy7&iGnr3$Z6TG1RIq7bTX+f)n&L&{PD-qtt7k=q+v8~8lq z)?07o#EBDBRTajW9b#=QY!7b(bxf%0$_zMlc7wZzCGU9STbV6dE?s#U1q`>w6j>1c zGg2ioPC-z~RNhfzX+kg&Rd~G@TB))jc}4OZcak|Lf4$;E2-wAB|;K zZAehi$ovS02E^HIZfvr@zt2DUp&ulD#hILGGQFBAcg{_x!JP`nE?8e%=jiB&AN;5P zcx3g;OD^9~4!0YUix zIIns#opN|^M73x*yM2n`cq5E=Yq3o&m2KNB1#%u?F2r+p-ctoJP^Ej&qoebOpuP(I zd@i(Op%es`10D*c0_NjUS~0IGX4Qf$kHNdc8_ld<@Zuv+Vd|Q4G~{w-*xKHtC<^9P zMP_m~H+Iid7210Lp`~K%x-HWePbbnPqFkL@!zox!42J+oH4*N+f)!p})o|zc9uT-(qYWylQ zAf8KH3rm&zq(YGfg*vW_a1W!hbv%z407cuC0_aMGYHR`s!~i!wlPr^Y#1d?Vgvs-s(FbQh6og#=O`u=bfCR2G<5{AguxwUw3=aC^bJ3;3En56N6ye zmXAIB3GRRG{rt>N|1^L8fBhz&dFENp-g1uJ-Cguf2qZ(*=U{)I`MhE{Tw^>Qv9Y_w zm220jZoiB9tMBLWhd;Ma{bNU2-^;`Z5_uTyoo_+phUcB-=-}t>hz$bp; z=lS`6|0CS@bzg>g!<+fg$u)lFmwuLy{MLV>e&PxK^}qiqzT(Tigq?gH?;S;%qfE~A z!y{&@Vbhm1Rl^lkVS_@uEb?IdNfLw*yrfiv)R3%-esq-tqj0s18_)sWHQIFZg9Qc(``@9;ao%&{ zlwxo9B*U^`UN5kXh^>8GCI+TjsTKl2oif9ewq3&VIgV0+^<)_N*e zKt)x=Y52K9% z+lEne;C)}sSQdH^^>wA`XkBq}$CuGskXF+xqh>`ODibz1PwDkiLFl8lHLrU8gA9jj zGI^l2v{_A-XADPUoOLYbHJckdD1ixCA8yh#4a4COg#Cs0o<%ihPz)HCn<%5%cG5$I z@~jntst>avgg$9E0F2_8IfKmNRm-B9)3ya3Bg*Dpk!K^&hNH?)E8Moec3wWtu<7{9kcp7hmcu0$Cg{I{~19D2u>E@F}DHS8*S z0a=cye2T!QPM~9IgqIC8c7{a zlO#A&JyW`~b53@58q9lz&XyfmdMy&H%CjrWlCm7IwzfuNTdrKc%IU2$vUYG3MNV1d zR55r9fo)9A<1vdoM=Q-@zF=)I>Vm^466u^!4`bCu1aK@ELoq1A7$wMb-&+bW8m+Op zy)ApoTfDPmO4^uC?Ceraj~NUG934-XPUiR#lzC1*8elza4cECopRx7F9>U+cOOBz< za*R(Me)KgNMNx!jrMuOcI_#U4Lx6H&Mhi{oG~R0EC*I2x1WE(&w9t`)f*nOa#y`Qf2FVYUk=Otoq`y3! zjqk51Bs;b_z?Cu~rtqDul6BNi zJ(7e`00b#g_zs*gv1KsKE|&_o6>YG^9Pb>%;SlFN^La(Js3`{-gTa8dbtoNs`sf&P zvQK)j#2AAK>%VKMAcFNhAgf~`(zaxJx&5hM`+CW)rFm9o;-qRcnK=Z)B|y+T)^Dj>G#tHj3xl7bSY17tcL{Jj+GJW&g0+Ce@uu;*U~0 zw`$kpv*>KG)?}BSe^L5gv_UITdDJL=|MDg7yZ1i+*$@5*fA@R7hld}27_u==anq6xPm|B7y=+`yfyS(9_DIfnN=}I|rTw9mYfor^BcWh0vpn z$pv9;EZHCzYKiaZO5O@>x3$gEB8|we4$i~cpbT#WHH@MMnKoS?i`8PRXd0%IW5%N~ zqjHP+^cbTwSy9j|ChTpW;txLlF@EM}ewzL3S2;R3=E|j)INCpA^_33{tsSwLH&m6Q zE;q>6H+cPhujYZX_hNFx`ql#5cVSEsg(2+td^d7H$Cl=zJ$I=TtK%l7TEL1nV zRFuR2l#&gRBcOc3{_Ku7jc&Pe8zY<>I~4L zs=#}SvH&9^F&6U~+AD_RaR7f{KAQuIt?eyQ{8aL@^Ix{h`o@^nIkq=Ae z$mUsz$ut3&1m|g;sF+(TNw{}SNV07=p2&M2;3JtuO(q82qk1$JPtydpLs<7x$q=!i zT<0MmmL5Bg@2HhphtCGah;>$wYOQIl3v3m@N%EeT1Cf>^f8oYsA6+}9ZI^p?psW65vh<*iq46QWYCkaNTh*K3}1#9VY!h4+puQa~3WEz=iZZxNM_t;z;)7qBd zXh7T4@~o90*&dd}l9W~=PA8t0EDu%3Rz~kB!dNZavbM1S5cE>Qm@*|T8%3zN)ZQU= zeNApM=F=HCOB0&^%DlifEw-*P#`5yZ7s11LZOrD0U8+Tevo)759`NYZLw5hz=W*i9 z8P?C8<#2k;PNv9|Mi&E|YCBb2g~BPqh`$hoc!%qfXF5uy-0L*aR5v*HzM8b0yr;=; z7qo^xS^-;>OcO~ewjCIdP=Mp#`v9}=VT|t&d;qz|@XVrkT?9#h{<};+$}J0hs%Z~l znsCR&J%Z@*I-~E5pnKZBwyHRuR`Xn_99i#ht(=>OAoz46>m>bmdd#S{PqJTQwIn{s zEUD0}_D!Zqb_6EUqD=Lg6k_{sS1OU2n$&YsBHY>R)6pm`p(B4qVbv|3E#iAY4F}rm@KHFBW*{)m+Juj6@hi?oC{Qc zhYi~ zRAhG`WBc&p?_}S4ieeC0opID+WFTZ6SmB){rpknQ*{vfAnaREm>hWH*Q6f9It|Vu; z<<>Ku7^n9hZQ^qk0oB~+7#-PBeKIMP@npoC2dwXGnzJ%`Ft#ejmavpz6@krYr&6C0 zzbCG7AJ%=ek+I+r1rtS>`$k=jRZurFMPdRS&!e~VVU(zj;X;2*SwAhYG9Kyf5yX^s z+vUj~t9v_5&&u-VmyL|q#rZRz07d9ZiGnZ4ODdAJ@The_$ZX( zJuWJ`()YC(r7=2VFc?u5hRwA#hUGd{+pwrLTN@iZ_ssJ=^W>AODb&jS}S{$$1+2;P+ALMm!c^j{|>pli+pbLvv3foAqm1PFs zI!tatfaL{Xz>pbFmKFTzulfp(XA|}>?TagvY?T0>cmIjwF?f2EGcMo`%_3INLm&G} zwMWI#8y@mdfsKhl>WbDiUGH?B zXDnt5nr49sbUN=9v)O{_e1gf0BtJ?spD#kP6ompkwQccbDQce~i17K4vM8}msQ;s) zq*^Q(QlBhC=cjoTF{qu757}=m|Tb5Bil-AyN0;*g8UkFL`EbrkEh;ONBc{R?H9e8uM$tbCN&1`xsHX%p);=*2z>?4fEc!kO& zG0aN|wgjP;;KeHmWV52+;P8;0t!VFw+w65hlJgS_t96DB}wSp5Yl^|CP1qdB#zG9q1OBBrf?}Tz_dV=x0j& z(}XzAR8NDnSk(^)?I_?NmF2F==z5B14;n4g*yDM{bBaM(S_xWOf8m%h5LyB%oa@$1 zOyGP-fTF|Fk+REjbvj+=avwtvuooQ?XKgQ3n6Si5a=g`~?q<(&6_7}S-gu1od?WA| zkC*oDrvbF6O`8s|TTQzAq=#{S~QKOdO`9#G-Bd%*NY!NKmCAc1-WC{wTq z6RP{ZXF_GVXCKIOi7Xy3054Hrgy1`q_PXTSmg0}({&&H->#yCppr_)6?wlonZVHCQ zW3BpQMbk@DMW?+ zT4cdCCUJ4wHh8Vc19;}VjHGRyD2L0ec!_BRAk2xPe<>p)UR&G?J?N&16OTLs-iyLO zTJ4sCS)OGAxcFGz^|&Zrrd1GN)*WCK*I=}%-UrPa6ix6wX_A-a(qkUiwzUqeqb8E+ zVxk!56D!Tm5@(59+oHX~C=FWCIu|sn1l$+;bP@KF5BJH27*2E&oE0!lD@BHk{aUsc za))|N8#xc_EQ@L$CQpUOsxkep@1ABEDqZECZ+=BWuNG zrN@eUJ@tj19gNq@a`iv9f+%|We*~PnVuVs;r}j>FVHJm$lmPK9BdPk;2&AH5SKK6%y$lNxZKCwsBHVnsOva;an{vk)R36K8PBV2y* z1-94MId}dHF3$vs%oLXnE@KqD;{FFvZ+Q)0%N779)fo<7yiBe#?*GQG6cM>OFN&UGI8ut)>eX^c4;xBH#Zud)qpa6Ux%WgB)Q0>%4<|cuJf>=i=@8; z+NMTngYrQnK&d6cfk@@CKJ>cj-Y~|%%ZK1C(s69lus&Yn!tJ+nIGON?PkoYHdA5dQ zihM*>H&ji>aoF%;s|ux^Qi%+8Yk`4;T)H42FYFDZ8pF zjL{TD*@@LmCR4K9$ZTaRPIEFjVlWtx<$32U7IT>kn&n1jZ08xaZD~+J07uihme$oM zHITZKj}#_Js0)*!wZc}lRAE3`A;KEfgArve#$FW}^Zkj;IER3+&O_MwxvB6kSt=s! zP?80$q({$_h^fTDNCjp@+w=yAL@3I+4oP1MNEBqs1V`g32g87(ix`t6_A*{32F^uZ zfOl8~Kop8PUC(v|Za&kiM^BSW4xjT*X2Et zWaLUT;(zmR{Y`%K$9{}y5R~aKf$*m!WkR{GtBTot7H_hw*YMmTLn6|j0lxh^zMXSt z&oQ6RyJW3%KB!KRFVAuoRn;W`@z23JkLxAKoY~5;RdJnc3IC0oLxw@0vHZuO&daB zm|Uj>))IVVCKI+&5RenfvQ#KqXS)hlYuljeFUQS{p$$PdN|EVIDh45_F9roV%Y=rD zXn_ni*2%^L4qlpKs|IHmJa_a2cind%#h^qhO`exHqqsg_@a)wm8CQn2(K?yZc&)H1 zw)n)E%kdt$&Vef(H0qO|^=q~NSDH|)R!&o2mah4wgwjU;r#sb-9$_ zqeA?%tT-N%Zdu3B1BCtiOfGCaQREhJIBT0=JCw|;*2~x6gKBf^5swLie9w*a+VpuV zdI8MzS*80i1z);9Rcc4|4eL548)rP`Zn!IEytPNDp za*V)Kyf&#WhjtI8#qWpX$}xns)Vda&FzwJPi1a#am^zbIOjqqljE$p!XDlAX2|lsl zBFQ=3z0-s^#7aVIl(2tj9hnl%nJzikT9nC2jwuUO{;6W(4RzC!n~XA(@nVf_q;L|e z`AUGr!ep2{>-w1`p$d!-kHj8c{D@qG#9wjra-Peyfi#Add_me1T-Tl@dRNM;WF%xv z{A>?^C3eKNHh|b!0vOmZJ}g$2C4P%N)^T5^N#o6cvq-lmNg{z8lIIj`is!c4CZm+< zKw+_85j0q)oUa1R-uHd(>9msgN?Z2QoT2kOH|*=k=+I#e#-IC;2S(k1{`m2FVrx^( z?cy_7wOJ7W>RLQ(uK^Q}BTG_*F;g~G2ekg@U-+*fp%~x^vlIsf#(Ne`P21FLZ=ayW zvw!sx}pMQbdZoi#dZ@Zm?E7!Sj_XYM34!Lsmnk@c#1J3j6`(MLT z&p*SD{?xxfImfl5L+V=k-wzKaTt8vBe(fRN^R7R^%k?Fm{@BNP#luq``^2;S{%`y) z_R4kEADZze9(o8fC@4omnx^h3;yNI;F&z;^FYAKu^d_eUDWcS=5%J20gvoS4;b2&D z>EJ2{vm;KNJSlT3Lob6Mm66izsT-l3M6(;kI2>YR@L`les6GmHN$A4Xdz5#04TG{I z&vQQg%=28nex3Dlz-<4REGrnTuTzc+w#p4&eC|d5;13_?@c0rJfBV;Y>fuLt;Pvwj9+8V+yo#SSNHOZOqc#P8mNT)jh5H>I1$PlZeO~UZGXkFu0|S z5Dk|6Mub)D(k7IuVb!**565h8?NZkjMNv>53)OgiV-yk|&9IcdpSAUMnz}|C!(=kS zI?Hf0l5sI;ERI20kmUu|N-|CcMOJk5&DOWf?E;s1e5P@>!TCmnqtMJ3m7toorK)NX z77BrA6Xsh^uU}(2nXooq1Fbncyv}$uU^ZWfiB0HL_e$vYDx9kXi~(K$9IrYJwndyr?m_(YXf)#R@Q|PT`Txr0E0=ll zsV8~++uqKVD_0ndN=}_V4Zz3$@Z)^^4?q4n-f4MlZ*Q}{CbPEp_Vxfcxpxu(Gtitk zaRPvkef(p5?BgH%A3FBl-X1$UJ2X|x#`*@2J@FVn_X|Ggpx*B9^WBOP$+FEC+nwq`cT?WNNoZQ+b%MEMm>y(2M zuRLvI$+W?(*`Vqg&o2bTN|9$_zPZtzKvxX-a%~vqCD#}G49WpTUMx9nXMyNgTv z*V)O(=)r)>T84NG;8d*Kh5MXKTSguFFXJ`n0AvV5EC}_4S4^xURWM!ZOVw=M1EeuA zFuDh)1*}#;tU#*(yz~j=Du9|k=QN1u&nroo%(8BSZCgod0v$QkhKXxtwZ|`An<^gI2*tX=Htb|7BVPMXgWc9SQ1{ihZv_`y}c6?kcS-iDg=q zPxp5O@S@s)0(5wG-SbMSwrTL%U3>Dp(!e&o-t=evbME)R^7|xl&-3s+os4AFS!aaA z7bWk{g5r8iv{g`MPl1{An&Y1->rx6U{)V-fuBr4`OCV2J7oC8ib7V@1olpv$BtH2mig;2k(i&SPG;?o{{u+Gv{t!ObRjnWR2 z>o9#q=9gEMw6sJGg*0~S1rSr_h#}AW+4at;0K`blVMD7=WC9WrI_0I(>|KblLzOtL zPpvd)sIA3YnWd_fv>3PmGPkW0@!Qs6g;3eY>pl{nqK=BpGj~X`E#j)eG;5j$R1dm% zBq1yEJTMmHGjU<$TGW9cB!i0C@sw**A!; zmqEv5(OP%8Q3`CN%(3W$vVZ%3{v>ti^St{N_mX7;o_qQ+tX7QHx0p|lIC0`Mjk7%a z=qK@7aq{$OKJUQ?`8PlLFCi=V{_pySyz{|#(zM6C@X{r&Ucb)4!7=yW_bP_FLq77< z6MW;tsZHv7NXSw!@6YMbJ@ehB9s~`9zd2N`Ty#sTf z<iz-m```!o<6rOvWP^;lsp6^;LyJNM70e}yg)vLcb2TvS9%P^(WhU=X zN3UciVB1=L>%$*LqqygeyQFgO`-j~$O+rV^@XB?wdkzhf9pw}zdm7DFHoZm4nFiOSvH`V z)#xIZdB}?jyd@7kS=NgfUPPLmGPKrl_4+k7PHuAdD=$zvg(0v7lo-6I5-mtvzY)3( z5I2|)y?{OzbX9=N4LTX^CL7pw$(Zx5pVyuMGv`m8;unAOxA~3V_zljVKg+zWxpL(y zJ10)a=4fm1n)zZ*TUX>JCkoV9D_~Vo6nHEBP>ZHwJRUQhOu}fe45vKD)0t52GlSML z|8+87P_<#~RuIXHsNABiP$;rIqghnl`o)Se=X_puD5%m7pJ|%bqHK$dppzaXuQYj9 za=6&%6~!6;!@v1y6bh@Q{+$$rmyBg!;f#S--`h%JjvazDXC}k7G9T7O_32K)BaA9h zimb@6P3SRFac+5}+eLNMNar)%7#2Av`JJ~us4t671EK1eYkB@YQsEIQnE(snoIT)F zaBTgBFITaW`#}sYMSmmqN$X_IrmyHg+O}nKJmnw!{eQrheaWBb#HzYrHK4MQZfJB= zpO?)H&A) zY<17ixh@!sRl><+!UGSyj#GQ5I5<3DcV`!p%Sf3GDOIgQnnO#%(p~a#3}m1vw(>kh zOCavmJ`go3C?os6KiwlfMkAtnn_DMvc}89s%B-Z!O1yWJrHmV@7Ykw9XwwB@DpOLX zP=-ZSQ`@$y-iTP2JR^r^V||_d{R0+@1#6>`P~x*(W{b}y_%hny+olT)O)j=TdCzD( z07Rbw?-^t{cfRg*=r=sXcw@|3S#Wsy8s@}Fu1t=}M!Q@%eV#ja&hg;AujOd}fO;{< zZmi+8?x>M*ze&a3N#Lb)*ApuHQtrES3MBzhtTIWtSM00n6VbHV(CuwcP@7iWO!c_O zTPs>E(JqN-S5MXZOqK1F;v560_`R#YUrLajT(3u_GH4?aaa@Zrc#rEb4Xk4C`^_rq z(Vs6>IrOr|OWdQ15GZ*s6?3J!(Qom4S3wAwpBw_ZkkI9ME-h)fjQNYnerH%b9c>mM zFACWg)&}q@Fihg}l!CaNM^H?T?};ksN-4@BQrAPjKT5`7YKWuCGOuH)Ib2f~_Gi4d zNKK9vxaGuH)=w<<#`X((nr1w%T&7rL-HSs7lvgO|;TS?GUS%-K5p)0qyIbdNuLTm$ z1+|XxX%B z%>oaUgMlQEWkK!<`XgboiSJu;bYR;kKq%mHf7(Vw=A2*dH(mwT;+oEaVt)ignkKfE z>dvl3u{{9}RhS{(1F{{*$b=Ea^g?XjIb8IWzVG|*k|3|}ZJ?x^2(-wwARpFBY>6^n zF(_rcZfm7iT>(W|NQ@u!PlUl0#Kg2hIgfR15Q|Hx{ieGwRaHr%sRbzBJ$XVHn%<$k zrl~5?;L#eT!W?yiUPA{$3V6M!YmCk)%aXdT16!e_u4L8>qrOHej2iVz(xko1 zv10p3($?Jjk)GWq_eFR2wQZ$XYpunFTv8?b!32SCYkM1%`r#$ex&xVf$3P{3Ih~#G zNjrj8WIN+^ZhPJ9`Q!)Q$GC;{K}j{K(W5n{qXD^saV`nMnX~6`J^2VvJ^v)u8*Vvw8v|4DOTYUYeCWTwpU0kkj^k><`uZB@PM@Zl&T$5; z&bTyf$rN0F=2^yTLtd|kJpJM&j@Ao~jz7u#`gO7_=edhlc*__6aUMTB;J$+i_pPmS zV*4c1#jKk<=>j4pF_7<6FjJHwHIgYBBZ;DtKAPab2)*HhVafIVLvmfPwZ1MlRQIS* zUE40fXq$$puGtwUE7b!D)CmtXp=#SGj3ZSHYaM$hclq(3_&5CY|Mj1_^V~_cE?#BZ z4A_3?A)4_9>v=)0Ehk3>%2;Ogf?Lkt$=(1LLFm5icXP*sZ{_Hvmw58YM{t>?ElVbo zV_tptoxJ|O``F&zBvVi?7Sy&yVQ6qv&XKK`Y@a*L;gx;XH^yQxy$DVS2x7WkRj(z$ zD7S|cxub0sA(4>EvGqOj83kah^~5>nIs~pJ1XA8h^}Gw1gbX8wn~>}$ftYhHRCsL{ zY#E)Qg45sH-r)leKgLh~$Die{`(H_erK%P<JhO+)KE-YCjEr(IMM6lRhz7&O)^3^MOH&kNSa>&&ZJ9~^j( z&T{acx?NyYhRJeFu9;1yc(*|11Lm`uVPUYXjCRu++ScJ)MXjb>cZPNvg5m&8Uo3XkQ!rXox|Fu8zmDfbb?sMeWMY*0*?=s zdZS|hXAEu}_@2sHlm$*nKr485q(Vtd7!&pz>rXd-Nf_rt5b0vx(>d#8uAfFp{tfErOC9RZd>N{ zA?s@+HbosAB9$^UZ7a#WUrsvP){z-GR#^`4O4eyzR}?{Xv+p?-;iL%o^?`9* zhrT<%xJ9yDGu~LEXnP5Z9hxoSTYH)`)$axqOY;S*L6#s2kAtqSsBmlyI$9 z9J_O9TfBnda45-bSW7ah&C8?+=VbbXl1itrk%ThsoW=PTqjT^Y=VVl{Qd+>A(!kkqJ zYs?8a(bjbU-8GB(T(ldC66Hl>qN!@~Ah;L7C(vE{)L<|WMuH7%D0wF7v$xKolxMUy zf=s|3Yn>?S`&Pz+Y8B!s6~HP&TbB(?fHveWCd^p330MYwwOH5+5inV$e&5WNrdk{+ zgDFjhS8YssovT&))VFnckQQJGt%=I<-QG+2sNE}> z{3CiLSy;1jJ<(4{9imUpB_?S*Mntq-5m-#YLz7&0^uuAP^USpVLJpaNKPMzK3E5Gt9dHVgo$KDZeuEEw=tF$`k&lrV8M~W1Y~>lvY|68bJxY;hR851o;EiFi zn6tLN$>pZvQPr|B7~!6tq6)*7$!X>lQ`>Owt#@$w*_U|X)1T%o_q|FSlj_lC=WI~C zj1+|y>uy3}Uon=^C@R7j8xMrpg2ou;b;S!8U*i5d@1!VlQ2khj==eR*R88pbQdrk^ z6vU{QYr9RXmO6u@SdR1)$#FNix*#XSDP6=E?=flhP=$Fss)*n-sY;Fk}07fHj6oHYh(5g4zPi$lxf9uG9`{Z8Lf|L zY%8>QZJ00S6oV2RWL{G_2U(8x9%~y+QPMOm1&T%6(AEu`>l+*%PZ;DmqpdNE`2q)w zheK#A!_feT73#lpphcax$TQm7qP?OVW{j_9_%fiDL<-|_^0itKPJYuFa!FbQ4v}i8 zqHU!Q-e?n)V1pC);oF=jVrs2KfJOE0yP~* z52~QTt8`b@=&QGKJV_M$0KZQ(;(4rs6@4F}1Vk3J>4Z>L6BVTtst9W?&zMbTOefRj z->ZHOZM?oTaanq=?p3ZYzj#IVN9Z{_K0Ib}G+8q8DdQ(iOj2|@IxZ7ttVZB5{od88 z&T5;Fih;2)ov@h?RTT*WbZ5sT-ZuTc^@O>sa(yvz==-o**4EaT&*z=Gcb=zITDiZC zZ~8+f*X42ew#BwBgHahk&A#oW$i!~cK~yo%vo4Ug&XVa+m5-x~j7fS)B{(`bo-mz@ z9zdLbj5ZujCtP{%8C+w@$74?4a-M7Z`)sanGTA?%t{SZJT$vrC298#Rie3O5rW|BkM|}d>M;lk)mIPXc|qGY z(vFh!DW+>JD$AyVROz}&*Z9rWWBT`1>ToYy)Q>n#f%LRO1KjZWv`2kaKrOzX7~lmz z6T#pt^l*m-wj`<+UwNLzE}yU#HCYxbPoAWVdlNHA?>|R+N8S5al(9xtfRQzvdkpa-kw?=??)=|27RSD z^#wKnSgXD%9xt`msf~|oG+h_z=Lu_Dm>NFp8##|9wn_r@#PeQdYsG0Et0I}Hk4o2L z1UIynwP*u#Q}V*3ZL9+w`xvSR{Cj{7rMmWmC6Up1om$#iA~OZQ9J@vESH}eXxtCwy zv8SJAkU6$bo}}@f>w|*HqQW>M$bVfiJKhJ?a_!0`+Ih_@@4Snj{?|Xw*KF@`>ck0- z53aMbwZpIf<}dTFe&{Dy-&y0XJ8nY_3TDT18mlNuL#{OKyk>WIMC)aSZtZK@GGnB+ z&_+>L6@zm-93D@ZH7!{_!srTBlngcv@BOv+^1ywsUzBnO6rgM#D3 zYZPcc{q*Au$0Ig2HmKSKv)O{!e5P}Qt6TQ39&+nFx0B_Dwi2W5aNUf^R3SK4(j#_n z!p0Y4lL>{)2Op>uk^r`$^4<$9q`_GC`78_lA|AYEGN16ky|?q1zxL0N4~x#g64VhF;74C1YiGEf0kFi>J_|j@dffcXOIzM9S!061z( zgmH^nF9olzl`&>TE_6hf7omMZW19wTvQCk=tAK?>RH3jciip_`5Q+e&wJwa(F=&%h z2WoWRXREPR0&M47sjg^6i=}C527{72Z@Gh0+j~-BF`Cv}v{6(?#~fa|&hE)Q#%m)C zG8*xtANdHjs>zCyY&hb`wOq4MEf%62+~t9NHPPsds;X&&@Qu<6LfekKUv+CDK9@8> z?W$9qB~8}5QbNOXp#{Pi0ke}NKBE8LL!RYbwJLmd=dV_K$yFhDWx%0Ze9%t zl~Q3=Z=d+9aX;!vX6J@`mBtUt z_b}LWgu*E_P7h&B83-F_shcHMsa2OjhtG$kJ64jF59~sg66y5M9OVr&*CECAge zPQkT~8KnF1bK3N+EV^Tz_z<5P+BO2+O((MDoFg{AITt6wBz7t6f!JEN^lZClB!z*x zZZLt#B}JK{TlKN642oTuLeoH^TwKuYpWK9@Ql3c1xbPD|qXf}U8liTx6*6^Hl``-RvC2-mJ%;~npKD{p-B8_3I&tMfUda===q zQB6xR9&`Q6-p-ZB9_IG9zKvI#5?cu^^KdpL*BR@>5qXhO)eZBuVmurRCC4_{MmE#& z(J`aZ7@Z43lovv`K7Z~kgRJ1ro-; z=V^nDjMadYI^(@mcDhaM`=lfGg-Afr_oJl7O{u z<=z(g+K`J+JDy9@qR5#}j>+?k;b@3147wbV zjdP@rRNYh{F1_!`PrG~VyFf^V3PGR|cIu*iZ%i~|&I;0)=?oP{<7I`+NtNI+jQX%G zF$jV%zRyPiqvhmNsn`}FXV^3iMknKX=+9FE8#*8W1fW>Ca&Guh{IoHsKwAYR0c5xj zQ70lgq`&rU-^S@vrn$|2FIE>zz7#=ZKW_iQ)ZnfRq4*{rqN? zI26~NbF>v{UsdmL`XFpL9HO=6`@Z-4c;EZq$M*I%S{nv~l7oW-fUXLn6Q>%_C+#_l z_d-NSTqN{{^ALiUDO;O}D;W~$dVK>uPlT>Phz>sZQ0U;1k%&KbG zUf-ZBa`29(ZDl@rRk3&S6dP+BtZi*FULVu8jyvz%Mdumw#hi_D#Q9Tasq2Ql;W~r7 zpsp&)a!nFNFZ;;_J3APaEb_43(6VP&lJfWxfI>!aE+xDwwV8og5uytf62HhSib-h~ z=!fsHLHi=2_i<7~4EAnDBTv6CeWl6#%~XNo?_=PURyxw-r|T=dzI5Jg`hDs7b_sg? z*$O2-9;UN5()^nYI#coUlu6Y9>C#r2Tv)3C++eH;F-vx5YGKuoRyM?W#6`w%x>uif8$ z|30w={nw{-*YtIRpXvYu)qzeb=wGPNh8WpBS}m){tMFO5C7RAK`L6iC6p-J{SEOrt zHECJ4$1&lH{q`o@0M`K-u^lrDv%{4R9oU1~E6ld$CV>o_DsZ8*nb00{df77}E?Y0yzfti?8M5HFS_%68fxaS_R;h*a%zP~z~^Rh=*2@E6j&1L&Y2@+Tbv0LDpN;j3F>BRz&!; z#g16oO1|EC2Fkui_Cj)H^|@GOx(WoR_a$Wj3uD zZf?-bXDCY$aS4Oz36*y#I|wLX47gU3RMX4<_w=S^l~{S$bjb@&krg@Dj<2v-RFp+V z*0%VnX1^5`^kOoh&eqv_!xwVt+CIh;s75W5*@8h?vY1ZEwNUPlCR2{fV+l-}Di}EF zbKbwc-}NFXFF~|cUV7nLFxGRle;fi5MPnV!La3SEI+S+Q(*>^eg03rqv+zCm5fYWu zaioT--z?yLORD6VZoZCglT=Pt!474_sVL`Z+n^hkXVi@ZWKL&TH1m4FbTOk{)a-0* zFqzN97-+?GIwvz3C-2<^W+KYs%C3rlf?t~gBFCaeeDB`1|#yU;LK=~ThE_k zm}OkJ^){|uyUJp=peRZP;{mu9qYWFI8#t|LO@)s$Hj!&yHD;gr6-psN@I`e^KjnNI@?iJ<8k9TFDDgIyd?@a$usDZjTOfr*JN={em@$HxODjv zKm21q%+;$`Z~Bx^?44k3yhhVDHzYJm6!(}+qPn@_M(HjXNgZ&!PObXtQFL6fT;{zO zff_>?ZKxRyhU{!_(=Mb(Pbp1V(r5nL1L)(%*=PrRCvp}UDy!eQYFj>2FqKwH;_p@! zgjea2-uo_~PZM&j^%BUinq0?o=zy4&L^u7@n1nSF{_6$uS~4RENGDj9yf?m5Q7k!T z2vW7`G%KXr$Ol$Pn7tbk$`rKF$$6wnUp(jj-)RyVE9CKw{Th!w(n|?^w1;6aty)w~ z5Bj7%+gj=6iJeJ;x_VD;v{lQmWq_EawXvE2r=L-ZzQ;4%dnJDn`>y+YDgC;p!ytUJ z|5ccf;6$`rvdfM zu6V6!%ou@E*-II9-Jru-jkh=5Z?S-(lq7I*y7JJSE+s#@l z;{~B>QIo`1QD!+dus>pq80q0?VRSj$AOdtUWx`_7-Iz}p404)Q7&#h^Z-eNsZ)FmX zwO#9!bK>_iW4d;*s){VZ<$W-l%>I?c(` zog^|QBKTkCIZ8<^l;P9`WnCqqA7pwB|yVLfmG#Ara%P6|QUhY}gzO$=Z8I)db ztCecIOz{$sH`uW59?ErQnM{9@$J7F`-`>(|DgfShJ?I{&<4C#R_;3G>jln!iyBekfXz6 zo_q0S)&~W5oH@s*AA6L=WJZLb9}qk!T@ z(V<|33ACCNEJ){MrouY08s>t+Z5d{I4oAbzfn-WEUKjv~)N!|628iGXy>S{x#Vq=dd>Oh#F1yfK_Tb)K!wA!dDm?ZyiW-L!5R5zfdn zs;c66GGS+Ti}BiU$pIf9PI>v|iygHlb-a<9vK(ObGa*y-D;j{*z&YnQefkvZo9np7 z%UBf!*REb?K3gyvj@a7TVlWtljb(8->ejI~9#PF^+;`zT^QNI~YBtw5L}egZ+K3T)xEa$&-SND@D`Pm?jq*u*q=FNN>BXML}IDoaTnW>yLbe z06jYYSZ&c-s>(j}%!&A2A9!^mh5{O|5LM*(JbTJoPy1d9N`q1KfnF)=GXz;q=#;E%I4-KKm3C~!teavZ?m?x-UTDx!(?*I zEAD*-ciet~tJkh}YcdA6T5B>R0ZXSxq5H8*anvH}Cd`r~K#hNPGhUN~I`%eR-@nfG z);9n4U;bM@{LzoFHXaj2guM409v<@MH@}(f?QM>Zj+W5un<3NPf4ZmmuYzk`g*2&7 z#Dp+bjH07zttHpGvyuBp2h6G|yBnLVuWeAbjm$~+inMbOiEp+-t@F2@`W28_o;t{)$=XzFg64Aw`iZLIP9Gf%NN zIAU#UgGHE2|5TPS7z|m==3Kpak;A4X8;_{2Ugx1#-$Su;g4TQTZq3oLTNHi2u?u~l zvObm*%03}+eI+!!VzoPcUtBw>=0SXJ(dVSqj@0%>>MST+8%9|MMd5U9+^lkOL-jdX zr)jVh&n-=MqHjt;fOz~=+-FrZE=^p!b6BZ1TPxEvdM z$4V3Cm?Xz%6ve>e-y?W0$-Tq_aja^3kK{V~ge*O8`7?gkaup{sQ(PBFs&1c3(x>BJ z!pPY8`;bPe<>b5zgw^u*ul{}Y-^=&p=C4(N1{mq^%6NU6>8$006Xy%KB6c0>KbB@;~Ya~vn z@m>2vJg2s8$cjStz6!I`mFOzP^%H;Bv?6qy86AYg0>eKmH8E@qqD(4aTD}t!qTAPmrS^s4R9eCfE_kR6c-Ex=%*qwWci( zDOEdFdrw)aX>YkUrUNzrlvk2m24E!K%MK7p?D)+Xud5aM`2J2WA+!n!GimvKQY;V@ zD;_7!=_2r(o>TYPB&JfR(0&=2HgVE}tnc`~&JTKva?7?V%QPaGNcUW0%nbBxNeaA` z{4*x;0fUfh4h(OXoL?G`W#9N`zmffmFM;yRrpJs|gI?uiIB6sYbK$&%}-hC%;y6+XJ*3!6^gKPV& zkH=(yQC5zn6gtcJ;y1mM>xb95>*RSJzWOMYx12e>$MNKta!@cZ85^71oZj7Gaziwz^?gG-pqy4b`l(0xz4!fIM@2k3I^=b) zdyu!h=`9>jj=TGwK96N&YMBZdU+EmgCX7E5@r#UK_{Cr3(MKO)G#aB&42MJB@s4+J z_uY3hT`U-n$6>QepQZDj^^GyUwXBVX6nW0!;W1aPU1KyTC<{XtdR5!DWl#=iZ9ig* zOw{54dx@N&+fb4das@DW95 z2=~ebup@k7f6s4H)lQvx`jX%GLN}A?gfIP*e}Z>?<-2Zru5DwvcJW%$qM(+ZXPTsS z=f+Cn&GL-W_>8>w-6RD8EyE+}f;)>UjP#2&GKyxgSfDnxhPj;9v(Bua?EhRysj9G1~lGLSCv$^LKPa8eNSs!s=5~7 z&*&~V=yIhbnDtRvTJ=F5$umil-4qCm>!e$+NkW@~LaDDx{i2Nh5+EQ=!m})@+Q#!t ztNb@_M~dIQy3bO;plxLwP0pk}fo^P8U-^j% zjlnyyJAJ|*>51vgZxcYHWgQ0-0DonGz;cNrvbuBC8WsAHdoUpCJVeA%h4by#tb{AF zFTyv5_uQB)tMEMn8s6mhpC$QD*UV>2vj3=KuKqkd-pzjZIUiF6W}Z?@_9?#K(JStI z7gVuv-RQS2SjVsU6fs^YXmZ1`SCY?kZLTsO(ik(oS1hVj1Z8haavwDVC7JJ8gq4nWChK~ywSn3VoS@4FG=&cH118$FYZCFyi}}xn3|zX=zfXq5T*m`qBv*#xl#_T zBiplokG1l=A}b4!LKO;=<$w)Dy}&LFqkXNjc=QrehU7V9N7pV>8qMC_ui%Mio@L&8 z_DyV=Ux`m35Ul=y#4hLa(Fz& z)|Rm;m>ld=W*NJin+%5oPVDV*{+3&K;rSQ1<@_z&cKcaTq_qxX@=!IWdoVYkkl`iC zL56qYu(j6Y#;|u{k01NHe~mTPW!0WfSx#x#J%44s6km5_e9P0uMLJ)Kb&Qb*C zBCV&N2N==4Xbj`R=@&WS_XdSW6V)pPU9T1kp|`tGfzgoXnyk#F0^o!iHJQ!;&uBOl zN8VamZ^_D%`MhGWs2CIltp~3&$}%G_3r547`Fu_@nW6CPA0Cq_g{>48&GB?9hAzE_ zUaA8gOOX%RJGILX{J;JoKl8KyY3Uw+)t~ulzWh(Vi|K5-Bnl)3MxIr_d0qD$RyT7R zM8?E#ZEcMo{jneA{qKL@(s#c5Ti?x({OFHRJzH_*$`$e=M|nq8Ezo(+NB`i%98V@} zZtXG}jyZMW1Z6JCL)*60-eaP1{&zlNm*xHP&oQAw=)K2!7!AhEr$;R6 zIcAXK_AAcs?aBxoA5h?gVjPWCYRo=UP!t1Vh`plWvn#-f_Yq-Mov~XDC{hYiT=Qvw z-lLyAVk%fns1A7_;+Pu^aL+u6O1tsIg6-_CS@l04N$dlVA;@iCv0V)gu3y>j{(ZB+ zG6r~QHBE(}unk7r7}FVFtrch;L}Va0qLvOf&X`W0!;LJ21nmt~i-W5NH%)-L^Hwa~ z!!!X(_hr8}VnBBz^)?N5($5g74C!4Afp2SDP+~KO!(pg4IFt`bpwVapbyaucY9bX5 zB+++4#I}nk*ZKF-COBw-4L1 z3u@^7N&3Dn@s1#sV(FRniG}N)ZTebGhSC5mU9%||6cg4Ml*nV~*HlVNU#)yc8{G-8 zvCJAt*H>DBkDpH|m#eSThsS`aFkl*b4Zua}7YS?FZ-{*R+5baVw>TKoR%kR}%Xski&Ar@2Qoj!m%aSf+F zFl{GDt82^J466x4`raPQQ7Ci(BatK|_$KFLG9WEJc&WE{`rJ9>8qp@vwhf*-@W*}eue3w`n)sGG~GVaXdF{Z1D?9B$@3hOXS7v=#gSzy-0LE)%5HDR<&chZj%z0sj?D|r$=goi ztx%oY(5ibg{|`N=;=PDGyCTNPW(mNJYtuO=<9D^{v~}X_@pNx`@4KIOc3H`oP^A>D zvjJF?sZS<+K8{B2zALl=$7@fiLiPr~;%7VeLz`8N6 zZ5S5?zVKv?r>$gWcQu{x%6snOf%{&=6>U?67OBb6sHW zJy=^yf~y$I@k|ES-8LrMV76WG!7B&cd3eaq-WjTS5K7Q8kI)DDg z-$-x6(PTp1*7#No-mp;YtZgu_8z%FLg|kd%GrY>E4<{Tw`7njCoIG`o!FY{(-~1Zx zx&MBC|GmG?laD{kEAM+Hpa1rEqK-4JT)!&wC_~SX1cNQgc;@pdC-=^?cWRf%9)FY* zCrXdw`g zo7`3WI>%}yf;38ck*r!yCY`fkR;?nAGmp$kP2W;R9j!B z!N%jQT-0ik9ZG%6_o0iav8eB{3M7JVV&x^buGg+625Cdc9y97K|;Zw?{(lRq!SF(^bOXHl_?z|$j}P3%0pl-6Fagz=jyeq*xN41y+dI#FlA0*hq9QwX79`y zntIOk;E=WTb*jmfo$)%ScTX^1R1}@|L7>=V3GYR#FppR*SCW_Z zMVIg{pF;}xbip2S9+sp6sgx+(dSS^JExj$R>&N&QgrO7-kP0@-u}pPLtKf3{aPFAI zuJuWU4mugJA3cJ6vBiY2Upqi01k33$(q|xcGF1%@lxq*l2a;{9+{eVd145H`*jzSbw^$S4gM$);j^D*NVIQ=%heLo5TGCZ z$x@(?S7D}mxUpfKcTA=bSH`{7eM7RoSI>X-KBx9un_h@9oN7=?m*hK+Zqq^0UHO#< z9^Ru6rFYvjfhiz1%{eE6nn`6e`eCDm9&N+45UqNOaXiPSX~=^bwm~YgRlOiDGjgN5 zq{Ia=IFBW^Q;8U&>gfAzYbnbT=x1ol_e7>tKS2pVw1?ta1MjVH9F#)mxg=L@i`E7c z>}5>cAIWMAg)xuJT`=lLcqp`{}uNKmmpM``n%R+%h zl-pyAiwasTG7e6zLDG$7dmi^xM=5tuF9ZyBF(K5;v9MCA>nl$I&bn#Hhh^`NgDp>s zA#K}Ilx4S!qMcri0pP|K4vEE7-|O9m5zD!-CA3mq3z5#mm#G!Tm)vW)j+?Pf(s)Fv z2>wc&g$mD3!hn#JNAb0Ut=R#u&Mg%~yWA`8H6L0_>n8M`I|!=zwsoL9MG!}pq(5qt z*sx}!c35nYb9hY99&??jvepu(x7HzoN?~6X8OkYaVX!s@8Gs`gPXMpG}Nrq_k$VZ52(XJggA3 zs9>lfa-#@>Qo+z01qZfa(!!p}@r~z$vzA|SM|`8L5hg?Evuzu&o;Z_Ndr#Z;NL^~o zqmz?fa!q4JG$i(-qUAwtY;W_SkAH%H^pAgl+itsstSD%`qp26zs%C9%6R$N*UE$jX zs})sM$t=XyqMXAk&#kY%AJr~+;p3kq8w{u&RCd7z4mCMsv#xk@Fkm*B@bvH8&gh%J zjn}^JA>Q%%?_jN1qn<7B)^l=qtD6HE5lx4~x)zhcU@aKo*0Hs@#T^%J<<|4JqKr7C z*skGRpHSIWDnrI7=JSf@o_m(jXv8h&&-3Z0pQf&A?znJ=jDu^#1`B~h6m!AD?H6tn zagEwC-WW-5P3V0tij2+8&F&ct216EA#k;=rOBoMK>e@1&S2T+m+DFAkMV1XDamr1wTO6#z)G1HkQdNRj<*&!-V@y9M zwfpwo5k-_R?oAZ~PDMb>Q{~NQ^gN+MNRZjYaHUi+(~W?k`@YZZC3Yb82F4!Gl=c^o z7ailO@q|9OOdXwTTInxOD}-M30Yv4K5OhUhwJ63XV<$}jh$2nUuSB1*Pce?VzX2g$ z34Ei|TJ8T@egA48-+gWPd#ujHW8Ey_N?!`yB@`x%|3L{rQ5FT&Vu4=UU{FYlhXg0G z=JU|LlJ*Tsl_EoF#b`Lf%nK52l<9Jaqy?($bA8|A}hCJitt5>O8sZzyp zMXPI6Da4`2?G#weH&hB$-%q~kQ~I?hL3<38V&y|?jY=wHsfup;c>#T-GU5Zc5*Z)8 zaGK2J^>|$CIzgMbHlm7o8W_g)($O(Pd&3gQkbH*?!i?T~Tx;=ab<`UIh$ip%%6C;z z=lUeN4d;<1eUvH9))?tmHJ#1tfv|M{$KMG^kOq?de?7nv+GPT;hVCi#{e72UE$(0G zd+ncf=w4phPjMfuzW%7Bdo}pJVUOPQbIYLZXMW%6XB0}s9?%<)_eY)M&8lCY?Ogw7 z6Z@OpgVgSIz3b2==3-~XKC1vQ-_+)A zc$y`h3E8eervkb-c!`1Jqv)6p6nft!=W#8^c0x(`Ro@1pWx?9ki4KyL_Bvtg2@6yu zzC8Md#bVJFThc_Vvr{Z5h2D8g){j~9`0gCMwE@JU69|PqDeV$7=kV4Apjf~@lbKG~ z%yzLj)b#@Iq-CnADh8t=8i~=1qQqOrqOLJsG0sL102`s+yCon5WR80jzKzcXWYn5W zfT0^PnO1^LNGO%j0#4d~L}dz+rhZ)jpAautAEx8@rTZU&*Z4V^sIy!xUaii@B-i^O zfai6WB+FzFhsq2d0gbg1VAX_{pUC=(BYIOnAwI8oZqfF~)>UIPbuDebkgQ47gWWnj zM-$@pUKHGSu}frj#D5Ezz0AawXCOk0&V@-Ss%IrOP1`-&2);mMw@53L3vC*$wL!G7 zSAUnO1C103Oop?*8%f*&^U*E@e{FqVyvoj;yN%br<^i^bhCle|$2hgK$6YL#&l{8) zP_+xJl?42FGQ}&{+djqCV8qF-O+gi$$0$+gedj}O;7@$<7f>2Qy;$Iymho^i(1R_5 z!GQUEE_7Z~bPlnuYqU0uN9#0sO_t@%7E?q6FJpUa!EEv(gK@*w<^^o4+1lJ;5rVd^ z(w8jW;QhJ)xC`vP1a95vB0Ox_x6~mILZSYDXJqsdG z;d~qV36=wnl>WKu(4**&oR>%IEI4(C&J@=VCb*_y+O{;c!xUqz_l$Nnxw>d6(3pHo zHqOaCsF9=9V4TI|24B^D-4}lqmoB}`Pd)w;XYRScbhg0ShU&QHt>@sYPL25GU;O~1 z^>b`I`V5c!(;w!`e)^{vZVYg9OEwT1xAU=|%iw+6i#F*TpE$ZI7Ykei$CG1T ze)(m7|9!tlUDYAL3FvPKs=OE4>Mgh2${XMKMy_7H%5VMlZ}H|gy_xlmb>8!yU*fsv zpYI%m?t((!J)8uo|aIx))KH*^%NI_F#6Zcf|#2JLP;>ul`R9k zFOFIBNxx9y1mf}K+4#PCmmV`oN+P111=Z1rJjch{@0nP6Oq4{sK)UZyibfotej~|u z-~5N(2Ip^pj?=R9j3Nm z=pFr1kgpY9`Hp6rI`H`S^xmf;L92*-d@U*MMyejM2Yne`PwAbXi53|@Yee-2?>)K6 zy5z&7sM?0oNg&iaswDVGo#OrjjeFsq4k#Wc#ZANEt>f?X2-{rs$|wI7z|32;;+NvWQN zbC;lya?Tedzm2N~tPbYut13JUZX&Bmj)-9DLV57}snX{LA}$QO0=x(tF!Y zInc4UnSTE-CCI+3oZwgOlgF0|W)8y2)7ONl&#Q<@jN(76wWTT3n zQtw=_2TC-S;w5WsaE%S^FmZ%wOneo2ks~VUL2T2y8}5gV)#dP~ZCha#CT&|Wk<7A; zYF3e%9Al)du5aN)lK3RiOM$z1kE*Hxd`DGp+cpt&jH>z)%L{hy$ztW#sHJC> zBgo>zocKtwkGe^9E&3*@>Uk#=mfWlO%+t2c2u!AS#o0cek%V0srt#kALDwTDn(5k% zKtNZlOx8rlD0HrSF43;GQADh(P$8bo?s?^Xy!N#Zvbl4bTVC@+Vh z^}(2VRZ%rHD8*zp<=WNjOb?C$SR0L~77cB9;9Kk4Xb;Vz#pnSzi}Nul)y(EIOt@*H z&gf`u6ObQGnGaB2HdaxT7-i7e05fnj)r++C5p7f9o#Wckb+&ePmV(dd(6u(A=i96j;%J&i5_Dt4AR?jxi>Bra-|;Sf^FRJ7ZF>b@?(w@9pP@0gkuw5q0f*9A zFW@7~N{mSeY$63VqGfSI%7*I=S{A669)-ct)-C5won`C%1I7U^~Oy>*68yonxp|Z-zePe?nB(d8YTWk!+odHxnqRJke$b@zMGD>v`k_ofBB>)b_%t<9|RK^}=u--8k zNaYVgz=@(PVnspvwXzuS6`|UrBlXv!Gg*5kTc${QAH<oId#r(CGhH;n^Lik)Fqcd7YG=W z;X~Vvf-w5W2Q_yS0KSma2P9W$ySkg78=tpU3QM1Sr4H&dz0#y9ZN0e}_&@;9P)QGF za$i@$izSdCKFb6wjUt$?Z81uP8QsXbcD@rplzVA9z%&)8X|2T|^J4R&?CxWngR4Ri zidHh)w{APTtAI8z8QO?wqscN2$g|E&&SKGUd~}StMf^oEC~0iVysFSff{~4_ZSrA( zt!u_>8%(BiX8Mr9Xehv5Q*rC5GprAUC8M+9$}SA+17VN|am&GqQhEyT_6(F8^$GI8 zG*B9v+Aaljt8?$uYFY{|DHYl+Vx`SR#!UZN??q^^yNZ~=YMITPes8+Q(m*ezRmRV! z!Da+@lqcxAEQ>xVlqgmEzDfu^pcKbELBIcElH5_~lW7R)c|`x5f*J||!?G+V(zjQE zlAfZ!JS$!1ov$X5l5j;~xm0mJSsqJ*Zl5U;znKmEA4zKe=vNP_{?W(o!I97Yed&7w z^^==l-|8_wmjplE7oROTzuDj8dm`@J(dP-Qj1V8nG?(~2NsB^~e5YVj3go09=F&Aq zKtL;8EAgZ-VDg;0TIGHkl6zve;jVJEJ~}1{_V$MAF0xp%LLVt!Z3T!Pelw z)(urq@s8ESrmZQ8T&88TtuV!OWXP>fj4(^~C$eHvV4^4tnK7cv<66+5^PuSMb?Doc zo@9xWg{i2Or?EENdnx!hFYLm&3{6OUB0?GgyEZT@Gh?KW+6e_e({fExWi{cM%eZ8j zDrCuvTzqotXkClRO#n2dP?zc@L0^oBu}c)ej0tv3o?{M>GVbD9(OQ_kWm$H4gmW$k zq{{lKDjA!sm7=X1TH7)l49S&dGN0jrqD#VM-K~y$j^|g`HAPV@?TP;{aep3nTUM2a z!q1p(ZrZ|KS9ytGm0T9Hp#X95`WP| zi5iVjZb)oG5+k634N%4_`h5x%UG>fB-*)e{)|~VHF~*p4to82qRAFv@-{M!C_ucQ_ zYtJ>C(L7^}XXspNJJqaqgx*hV#pxQaIv4uPcJEso%hragf7ZtVap*=@*htIJVdIJ7cezph#_(IUU=Kb^^#f&=6cVfMzYD?on$}0GhQzc)%=<2UwyBx*>QW=d(4A(nj6{ z?Q9)HC=tlE3D~{s9F~VO3>_hL`vC68AY!?9h?^esG(7or-;6VlYq5Fr^>7z1;5NU3wYEWbxB$luSPA=Ci@q0Q zgSkRWZKfLgc60VU8;MN_NT~xr<AZi$!@+Rz}T0WE-ooqe2n%xPSA;}$;aDgOxG5&C`rWx{+0?7aUL@o zz7ZEMUc|=624adB`T>i@0&s*c{KC)2op;>@BxdFO?ce-utj*@Q@W44B#*&(q;=qSZ zNz{;7ImK9nx{|J>s7{9L4`e`CIcI?p$}~jyoEa(h8F3gm+Md|JbYi%+%^W~w2WCOQ zwJxEVv2s%<*i|%-1psvuU@lx0T9bJp}}=7``5kH{rIsS+cBxR%iq1Hj}snli+Q!KVVD zGV?tf+YW#O14K<55IaV|okKCk`o05(i2a>?H1iqye!$`30&BAtmo8l7_3ASghf5$v zQ1&=`{y{AI1p_TftO{jV27?kq9FPW1g-bbtz;d8Coo3HjK+8r}>RI4*2u*F}IbCx# zCX}$K5ZdTo5R1|~-kY2O0wG=FaqE8L`BmUqfo&R%&5|~iNQ~h^SXCxb(k&&5r+t8J z3T%XwXPdp3Q-UMbuU?GCq{LB4()|@sFb0;L=V|7NI?&Fsqr|!pqw!47oGpFfPhfQ3 z$mM$P6;9&AIjP6}zUuX<T0Wd?&A8Qelpf#WH8 z$nnqenOs+L%vZg4`no1#l$Ub_tcCicoH+%`H99&iBbwfS)fgHfAmg(W)%z|3VD)PN zHa(Y6{D8q_-e0abOiI35<{&Xg00W>>;wb?IpE!M=G1CNUf@F9m1XnX)lv$jdLzcjU z%7rAPr@_=1+cavGH*MRX>jn%%gbyAYvkeTIT{LjbJ?jC;c(rVmziSYiPE(kP2mu;I zki|lVLl(!GdzE{Yov3@c^#Mal7{KLnF#rlfK} zOEERIS~5p-l#GPhI#J7ioO7krOXZ?w7ECkWEE9Xqtf!rK7!G^v^#j_qHIpS=%N3p4 zl~5q(sE=ZGhWb@r2+v5sdksoD&klUo_a*pxoSk7EcWXOXd&Xv5c<;6E2E^5p_h+PG zC_rXegA_}-a7@f)k|BTrav^I?rYng|9S6%qPs9|_ga$4tcTAP*YHM&iVJ3$|PC!g> zZBy-b(G>*8{)7U3sArP9jB%F7Ffgg1a>jV)5YAsXhkNh63nxx&;o_woY;J8MrHEy> z1UZj`MTf1;4eae)X6Jd{;=Z#F;yF)yHcoDx!tU;Qkn`}Z=O`2rw;-d+<~m3uJ7-{f z^CUQ$GRR@lp5%mC%L~)>JyObOJxMy_65cfk%?56~?hLl(+gL1m68|+^0asIB0Koijq8Nr1jTx`mIG5&}*f0W-3b`S96r#uNcXFPcSS!|!$ zK*|a0>+5*o7rX!faQ2~d*x%bn&KZxr?Xfs+y@@&By#-}spCNq zK?trDOjW6|Gc3^?Qc^Qv$yBEKz#x>qC$vE#VF0qEx424r!Opq5&U|2%9F1Ax8S<&m z52@o3WKoPh7@?O^l6qN2e^Gb%|J)_sBMYQ@+bG0cj>awVst{%cN!~GIZca$42az8| zXsuIe4fjF>Mugxz_jOOTZkUyRtpUv0Fo=^l3grRRK&n8&k!K{5^)-&EncI4gqtWVe z8>4JEOG5yZ90B+OXyqjDHED4m;yI03$}m_t2-eE2IAYIHVTo>(_CHz3vL?v8Uiuu? zX*w?2R#NH6LEFz!=IjlPVo%X<>p+%&WneTJLvWstT=1NN7ZY4?2up3N)fm5|} z4Er$&P$YGQF=^^-O?S2IyX2VYGY)ZNVA=1tSsQ)dm$6uIs6@7%W-bvzW1=pAoCRM} zGri1Z$&3;Q!ijOMB^Jq?U(IYQKqrmMKy*)$0Y$C+vin|T%k+784Irw9oqT?IwF7x2 zr+bwn`8Rc7SAU28B#tuyO8U0aktUM;s&i4?#i}!~+96dP_(*lt>U(@<*A$?h%CRZv zT1T4eNF7NQCLJ-@r#iuAy^KMQqb=G1TL-N7VTS_A?laBI(0wZog@Vn+@glLW$3SZE zp4$Pt>Nu-YSV+#YWN#3#zP83d;;@vGvRYo4gu@|c1~7x?GQwfV#ipHtxHX-abx)dWwG6Ygen9t|T1wyq&BvElU z(f0#pp+RtgoAZgy7Kd0O%=%o)Tu#xc=q%Zm-h1rr?P4~YBS;_;kgg-*=;?E434rdO zQ5G98;_ImLzSgGeXXo=d7K;TkI6}R#xrt@hA%UaXy2dHh@=1GcRnAVc>3EG2XNQ`O z7%A8HkH~a^ku0^T^E&oviI%k;Z8oN63+UVrJ(Iq+^BIN|+2^5}1*K=I2@M0g0%8>> z90FdEAX_OHP8vO5&S{`2BecRRAbzU_yVP!j@&&~K2??QX3IRD4P^p$`@;uejYfy&w z%rzAuStnx7cnQ*k-~8=gM@&6VpS}i{FYjS(Z3Cc$2OoL}a2~VSCJ-~aOh#dx?Y-;CRiL4DnC(*PBM2?{Ff^rloCMFP4R!2{q{(0t6 zHv$x}Hebia);8AGfsO4G@XZWy7z#?FijtikZ6=?kIlR<6xcYZ(JCSqZ2x!xQ!0GmG z)}qfncFsP4JPd50kVCt60ve^e@zK}gH-F=|@O^LlCx}DDSAW&3@#b%TGafpB7X2_t zOM_g-1oW~YxHqr%Cw%K$--`e7fBhM5xc&yb?QL(vEswbcLqFjBg$qbA7J&kB(n<|Y zMr9*aK@P`l*g}H@!omK5A%rDFuyJ~Dc1K!AC+uDX8f1iqjV(=ew5du{<35Y$rYyPb zti{C(mjOsU5V&4P>urAbcYYTy`;wQHd%XBXFUC9n!+*jvp79L)?(h6AZn^nZ{NelG z&xasagLH3i4*>A0ulh>7`#tY2pMTeHzYDMU(pRAGIy4QFOEgV`2OoS8O$baVMJQ`b za2&y~N|;ocDpDFm;6~|-T#ZB4FGll5J%9Rs#ZRzU}eL5Qytc93_26FKt&D9 zfd)zo3z_(WhN^&7CqUa;lt(k`waWMyziuKsj*z1u=_C;k$|HMfnyRY*^<7t-d*?~e zvtV_>~b$%Lm$RQa54VH5m2RJ5nnqG zWiEI{WX!dUB?B080_Dv0&Bfu*fUvhG0UXGCS%ZXVoMdLn7sE^hzoPoOr^(Er1=Fm; zovxw2#wdJ27C|JfBhB2aqP2VJNMs(hroN0NCuY-ij?)^uB|>PKF}NQPL=MUq6$4Mt zPR>9~13Ni^Fl*ZaN9p%BEl1eIb}sM2Q2;qMMAx@Au{bzH><8Tc!2P)9s?)gUs#CcB+B3+#ZBeLu z-a&VX^PY+GP*0x|LqR`h_m-}obuIvuRxUACAYgjdY{b|aVCB8K?^8`rhwg2f62sd`~PXxP1%~*8)Mvk{S zUs(WEr@%sWl zCRPrmPkhRN3k^6mSW18hoV8TSmIA`u@LuGaf*oVTOy)@KyqGfJwM5OaW1rF}ps-jh zSdSGzZ@k~Px3>YP8~~QfUY@@dK%)mu0vtB2TV>mnFT~ca>s;#oD)L->jiw18BU?*} zpscNaxB4YI9(A~_b4;XVb=pm*+IuR$bze?{cuM+d_neghRzK)-=3D_Q{h6E)=MAxR z3$Y!Z^cjIcBRW zgFK(_oY=M{l2VkM;2>NEPO=zMLU{JGpO0a=zz`E|y=BH>cIWW)r#}nJu$K;=+ng(@3h23=Rk>qXBW7r3ndx3Lzq` zMRC>WnEZWued3d!006xG=l>0U?bm+|?|tukuv{(>W5j*;-;ciUN2RYnAt`JBT+$bY!b&bbCGWV6x_068H!0tMo>EFupW;hv_Z9yL~{QC2T$b-lFb z@e(~{oisM8?VL>atKEk=*VRd2js@=VD!q6IVIdYdS=NUb>?+?^fG0+sa|ZVJ572I{ z3F<8EPeQ|)R3V^g8Z5e=qaJJP<(aeQ2MC!@Zi5g&awf{*{vog&n8QL8@i6pQ-`v3N z&RN{`iBI7Ec8+%5plKU?;^QB|d^SVuGhEx^)amV0fv zaJ>EwjsoD)k-uAq#O@mlM2;Lcb%rw#nx>qQ={{D*=8}dfQErg5IRp^e7KpKcuXf(X z(H$}HBnssdr`TtzweR-aYovt;aITgalq{lhPIL~l*mTaAe_;8Bv21!cx&26F`tg@_ zs*iJ$)j^+rPd?^n5n36@=%EsH?41A2uPZtA$2sK3&F3m-SzjBSHx@N;LQ`DVp2Rk> zV~COoH%WtCG5%@R*>sFdASn(76ET#1rdO1*9<>3Ha?xGtuvEtdIbplgLXr+YJIUwd<81lI!C_;3hu-a!N zIO1SN)T{#UF?2nglYo_@lHwe}#MJ;06#yiyLpJ1Rk<;v>oM%sD)^87N3hrs+-EGJ-WyJ`bfKAoCT004`{0-@nLe}FSQLm?a+mksC``o5Q-DBH1~9GnkW z#$mJul{Bz|gO!zhyg#P8-4VB|BLPbZC>d@+%7}DKF*2yCHnttRb>?k0fW9`BZN(;3 zzXt$0RJ~6{+Jd|UEmKC*Ht2?)GYo0WB%fle93OcsPfHe|%mMRLq4<^jEb2Q}rP!;p~jfRq#V_YaWcfbA0}(Dxm7 z5B87&tgo%3?>aaDXD?r32ZflyI%Q(=BSD6>{mOE=tVV1W!x1%wA@&I;k`=iCn2|O{t=(`n{S<^DigFE{`#*1H z?0Sna9ej(B_mK$j6cCY$laNIqkZg_Rvcu;+@AL4&m%IS~><9lT{^$dLjLoerIPb8x zyNl2ItY_dAFMm1ix#u3-`q*3XwjcUooI86K8yg!)DdOVAi+Js8Ux#n_#&5u{{@SnM z;NSoWNm$EyE^^`)3Pi53JX!}K1n%dn4o6K5c7T(VQv%=!lsJ;isTz*|6Xzyml3u~7 z^j$3`+SHJelw7OF?FQ5LO%?SM9{+e;bImn~G2+^5uEqP__ddMg8@?VddGSkd;^c{P zP|6{dwH<~Y*IsiC9{;$<1K{*f`@L{gh_=lfp=qV3Yz9aL0Xvpz^t12*Qlf(L0Vu>L zIVVZ!Vbv~dR!&*~et&o|fuTRHfjU+G8;)Dzzf;?{t zDUO_G#T61S{U~z&aL=0M{TZ1P1f#VAqL6PUVTQ1XRaR z_a59hq8EsxrbLd33x!C|Yme|83m6e|F41<%Qi}yC0m!cGkK>HR>17R-oS7jv#p-m4 zMK(J7BV?HBzAerVF{tC6M}e)uz$~{B5 z5k(S&S@u5zySab~UQ+uuHrDHTA$GPsNm&6L_V@O&>^lB=e;-5aaO0!S;Pk1hnD1kV zxcbypoQ~)SC$Bn%*=!9P+uK+i9N@;s+=Psb`D})bjV+wH`f5;0m{Wt<+D4HbDQ3wg z;j$;nyuY}gx9B+ER6uUU9=4GJJLlGLbHw|UlOV=X3EdC&3bOBqVW^SktSNz1N?Fta zvFmP)tr(LyvaT5D(K3P`ei%Dd>9Ti-Es-F+io+ zTnZRh#jejp<~4QVr}H$eJvZPQj_$vQyRP)SQ-}PxYZX8_{oKfDHqTviHpDA8X|??R zTEb!-=_!Dw&vAr=(2T7B)SeD0t>fuBL57_W(p5LyU-#%h0SXqvu=OX!X5-(!@G869>xx z6uyzt)>oX`p&#JA5>aMQ&fLWVNrD#4svctvo{*O_4wTZe5=outFY^2xOgzR2jn(m5 zmZN2*HUN>NEp!rj+=PaKl%${ctb2@nt4=b@jb3zK;Sfow@X@GTQzEt!jaHIA*%R3T zyZd`w;v?VXy({(OwFJ;|VpZVLI>f4Lif$>gN=gujq{U?gpEO#o_bJXhwDvuhz^&y< zS;gJ3Dq9Rx_cV{iNiY?KFM!(zg3A?T{!7X|vXpKKai7sqv1Dyf(RnFJ>)n*mga*nX zz>YY}%isbNtEX7@us)yaEk4<l!5n@u5F2Va5*AFH}(*hA9fX262BT3N^y};2rO$CIc$?;?ajaDSb5fUfJ zCj~)987WUOAvfT9$t3;!vPL$j=qp0P?#@2G?)6`X&GilZ*$4g%Kl5`xi&wwut8n8D zHy}HQ`|i6B?|8?rBZPp97cb)MxpR2eyZ$rY^sR4_v}}*}{@#1=lRx!Sc-a?yF~0fl z{#{&s_0_m|=>lB#2w)-R8c8J-)Qiap*sVF01yxe zE(?lFs*V|uP}QB29!!*USd!PLil<)u^L1y=003U_`CO0w%+G!%9(?FQeBl>@$q9EsuB8R`IqdH)kN?I>Kou@K|BBF-&wx{7c?<;PTuM?D6(_h+&-R=%cUoZl z1WZ6jqw(3XRTMpq{-$&4y%#pznx&(PMU79JhN+*mY10*bPJqk2*HP02eemdqo?9b& zkGA2~Hp|5l&Bh!dG$n11`$_vkrU)XWAu{v2YtYOZv`s)BB60(GM<8Z1!w?577YjB( zB!YyLFAXsLO& zyMOeo3Fk^a0svyPSEmjSc{Z$7zGtU2tykCc;yt%I;uLxAhM|UfmFIC} zyla}|bT7q}N?-O0&opZS$goox#!sB>wZ@bc|YpqBr$?8aUk zdv^Mj@wgb#69@gc=Q{4Xl5=g>V%2->oUL+*j~fSNfD(`#XCXS?%19uj#OunsQgLH1 zziUR}(df8!ex^23c^|Sw&m{{ZkI#8=o`}!q5Sdg;d!O6;jxtNsE0{cI%n5zh%UKAL zwZ%a!I6{n_?D^ce#x#tL_g2g%}D+k(EqNl{cGe@DcVh$l7 z57J+|VbWE0`n4@{2Dyyo&?9({5E^)L%qs7teQoBTfeQ|K;8K^yHHFWq%u~y@6^RV) z`VKi~W{VdNrfGC}=sM0s6$iI%XIL&4%r+y>owAnQ4hW&e)Csohp?1P-HXE&xI*%X% z1?>QXQEGeN^@Ts6ZMmcs-UGxXu0xDm?uCqYHkV*jwINuZ*YQltpo)zdmEcs`*g39AM8Wh3^?b}whivQ=UzPK z(T{;|8h|_+2f(qC&pDSvV5$6@*-R)$=F4)7rq#z8V^734hT zEjuv7K?J3-1F*e)0?q*!E?i(HU1B1Q7zbuLZ-u!wCZw3*LyL{g4S0C$?;nUR;SHxo zg{DSuq*8hcf^hlLWjy%0Z~4dgv7h)c94;65uK)LU<5gez zDtz!mAHbMeDJ^dtDLfAn2=@WBW0vM+iW z?tkEZ?Ck8~^oi3(!C-XpYiek?^1CXDY9y$GBZr9qt3;e`a^fczJA*g2=p&(=K4qB{eSR>_{pF83H;o@ z{&}1_c~Z}OIp~cLHvId4_iMQ8?mN+hfQ^k!Jn4x~0wSY|LySPG>705GR~$Vi{{omP`ZW1M{b-M&_g z^vrduNsv{N{T@Oqg8#yt6g_wYxDs!vMm}P6WhCOeg zTJOZp3Om_Mf+o>x0hp{4S?8r9uMlHOyY)wcITpi?jb z7)Mu&(Ml-in;k~&e_f5-Y3=e6M@7z)BLP4v1}JmF3UCO4<#2f>R%$LQ;w+5D;LmgP zM8L6um7F5fDRFs8@E%!emzxmaMeaLD4OwDvGm1eAWVjHdwjbPrCjp0x1upJhMhFhg z;IZs`AOrp00WMs;fUBv&rHdCa3_TXz0wFl;?(X8$)(M_2)BTbo-I z)fd1cXGyzMr3~4>IRnQS`1TyxHLde1Kv^EYHf>=xdcWB(+8(C7o=|G_)F86*$nG7E zq-V4<<`iJylFL$7rRh)irrHWRUIl(srdT6iPIq~~I)N!iI4Cg{gYzmcrcRn=m#<^1 zAgewb60c3Ezg!`&?R-|Jyv|oKVpY~quD|LtWp>7D&GBa@y;p?Ug~)q7U^XC)Yf3?yYGm#CkwI>O$Q16&nYRiZNz`3@m}>$7yjkQDn2 z4tAuN7;~(4vu_@DsxRbp%=i-`T(|O*w!9%Dg_Uq;Ruo0}T~RyfSs z7Jx(Fccb&bt(e&k>IZJ=#WHJviVoFdM67eT?wp{(J&k+=K-YC>go8w*@go^58$pTQ zh^Un6Xka5qk9FTP=p-;TYg;(yuv{(yFz`$y-x20;E|)p5XWlx<7K|?daH`IuOO^9L zgRypPxuqOC`GWvND$mvVx9RluJ~~JGow{H7xUrlmww7cLFo7xS≺~!&Gn~3n`of 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

YUQTpgEZkF5%IUqjSizHtFPP*(GR09r3 zFdz)w;rnDEq6aNFjg7I_EFotAKG*FvSYUhSEZvep__u+C>%U+9+=I8A$-MeCz6s|* z`T{KEy`G@>%*tB{>-qc1C!;P~Z;h_apkCgOtF3-ZmxRpgBt4^^RzK$iD0o*V`Fmq+ zxCUm2lDrJdyv4fswM(s*c%g&rPJ8R7r(eE)#j-5e))hl6`1$iz!!mfOB*1luxT$2+TtJ%7i`FKxF73-kO4#E&;#^_#{nWu-8ck)N%s<>3^O; z0$3$Bbb-RLio&^XF@| zqeUe^Z_VW1W#8nunQWkhuR&ij`or1!>epD-^EkNxumF^$K>GwAyMrb?i!ANu`ij`t zFgx4BrxtPV1;=i{@Q3&BF~)FE%X^>&CxW=_LyOobHtOLIA3lVvnC_nd_cZ}wpof8x zx!Qud=IDoIwS}#63WCGAMX~rf<(iVY-JXqld8*`@c`wwUXx*zjhRGN!(dY~1%4OGTZ;xVlDX99CJ^-A`3b>3L2ny+>J`_*yEYY~W9J(HbeC02?+P<&2$D$5i( zk+tx9j$;R)Sl8QJ2RZjz=V!VGme>8@Jrnh*Wja8uv+vil0?T|p>p%A_iOe1zqMD-C zgXd5}U=dTXI|A%vZpVJaerMnyuhn(0!f@%i-1ko*uUBU_D=kwl0{WLkwXbasSDDOm zM0wzTvrK&SenRH!xx#z!FHf zW)a?Ua80I4pq>EyOt|x3s-f~$;0yROa*n*k0%R~9Q89oB}l48CRgGUe|;Me$5<5gXs7xNtyFceB6OOkryWaV3*YO!jt?4RPJskC1IAxjPIn4T+@1rpl5r_fTGayL-)2aWu-7^C$!H)kQ~qq$GuNMG{hEVK`#Y;!ESMo^?Mfzs$-K|`9^VRT z|9`zASWRn`!OXYrb3VVFH>u}=6>wYQKn`)@wayzjU6`+6;az|wfN9%s3pKFifd zJMR+!Sb$jToNFu&95Xo7F`|UO_sKP4YHR{3SD@(_Hde2CkPMjI!huRw?Fr7L!**|8 z=>`i*2{g9eW7^Q;en;;e@7}+QOk=i%kH^D%`wz5Zw-V`6(2fJOSZVgppFUw-SKOYS z@a3yzc|Uyk7+e7TvE%;bf!oLTKFLP0tme=!;;jxMShgofvFf1F2KN1M-iZMW3t+pB zAlN0CV$%U^_O$`q=AUrHY>Z4Cmc_k4_8^H(q953V-lp*TEnLz$jBgAL{9AO0Z5m# zT=RXMiFAZ~ywex9~%i`LYs z2XN9C)OGYz>D$q+N^rk)XsM_uC{XPCOlnXcS=%Hcc&DDX?=sbHa*m{{hF7=Qh&aB- z_G)6~8H_MF8KHjwk2lM#f_J4B>v=bT zO}*{Fk{>*iIkCc@9ecyNEiP+Jyq=Sa`78qXEdTaj|9kI2pU!07WFC~fkvXuk5=m4Zb=jIV*EQlQ13Wt5KX; zK`#aAjyA){6Jo3k5c8Ia@MNVopG$ofAfL;S)$WIQZn_ybB5hnsL-cw$RD8zc5@@Qb zBa2hGBj6Xg^zzY9v$7^}L0WGc-aS8KH0x`v%ZkTiNAw}~2F2{{-}l{&(U{ra=0QId zNjP$tfi=XOYnIGT`LbX!%)v~@HQkT%MPt)Y~W;99z1Y-nhK0aquK0IsfF+&M9n$Lv!Zh*?y3}W(0k3K zU9)E_u?rS{moM?~hK^kBUAJ;+D@lYaxmsrLKIJW+y}TCr-`Q~F;3l(^zU6!tSHy!( zC8on{H!agZNQqhLy>--e3lf^E?#SPn?~7}h1Fw+3bhfU}HqShYU@extQB1kxcU*%4 z>X%${chyyItuJ^V>Df#toOLO@qNI0L7-)bruLA@#d8$Au=Q7>v9=;V2nvSd(<9tsH z&L^-$nJy=}&W=R>j%*N50f`fMjbTpnl=BN<<7X1mU1Vt5Ewd6j+RT+~ME(efT(Bc~0=4-tbROhptpYJNG`7?P<@){}Ny_uH9W5!c}$f|RE zRtD;>zDD+2a`oO@`*QvHbze^oygS!OJ{ZR*s>@(;f;u|l3fKE7qw8N}fB5dHgC^mv z2^is@WZ|^-Wio`bdWimkh-K}&ucr{O1k1M1_N{xVa4kM=F@a`G9(4DK232V(e>!mc;ae;ps*%Ep znnSNfnD)!hzo6C)w_369cYO21w^-lZujrqjVtaldVOgDfSI8`;NUW)d=WXV}&vR`CP# zGx>d6ayRWyU6mFEN+OVkXsVYBXU>kVJOe8JHh-oJl8tH_ex zJ=v_mHJp9`TQ>K{x976ul|dWyQeTEwXv9ODWNs0r=F0nBXw|^{n50%|FXu|C_)0 z)O-KP;MtVh*N+bvKSE0>WtLp-uvNd8Qn!U5X&3dRq7xBAeEVxsmXP%#*5eHchYmbz zCTLK#$`NZ_apVv4j9mM(shsnej;phr9hrH~ye&cG;)uU4)5$-(jz7%VvFqy^bY9OR z_vaK?`R7^B>55-A-`ZExQZCoAvH$Wf*ab|#2+T}gw0f-QbMptk2)da%RV`cTSja#_$wiUu837 z3+9+9$-m&Bq)dnKy6@bBZ2#;%0tDR|z%iWm@foznOjloLc)&NG?M&1(Uy1-5VLg06 zkG0+e8tm{ccm9dWO0ry`lw`CPN)+Q8Y9T<7}`g{q*kGL1h^?G_3c zhl;9I@?btwey-vB!>qhzN$JmMWUBxxc~(^RLHUNtKabQ1oeE9GI>urNV z@wngd^_QQq)`Hu+5BP_le#ZVd@Xg0>upb?*53Fm!hmY^@-S^)?heoFP%h#_y5 z@?d| zb9FOE0*V-CR2u_zEm2h^K1u614s5p#>$>3Bt^HVvPiRuBDn)tCO_c$JX+vlO6vy6U zjbg@opBxU{Q&s&efBkR%<0t6&Se${?1l&;$kNi15ny4lFWpZx`8~Eb}N9tqgEu0o+ zbc&ZQAQ{?B?_WIg0kv|2*5>FpA~2o(HB|T_0WRd;mTOf27n2I%YVf&8d>@UCOQH8! zcP~@7erQ8`Sjs!Xu?okN8 zd=y?HGEsAuo|^OACZoQu#qg3VIw6hy)sS$QTemf!gV7n3ie<0sQcvuhwHPZjXEYPd zDqjA|5`1_-DvrJ{sZt`wA;sE?2OVx~)84@qMC(VafAMl85wG1!I{8p z-N;S`s0fhyo|YOV{aH~=XLs18Vos?EQ1Ce>6qj{!uw7~ct zD$DwOuXF(0^ApOtK%K?4R+G6r%^=_JH7L01l31t0u{Q3E4vl{gcdE0|$PP<(V6H(% z-kZFyIpd!}D1LVKy*8-Y*gjiVbzp7w@~OTCBgsuLgU)j=^;O6>bYFIPdpOAU>p3PEz10h~B^yf3e=bCaUv5xtk zO43^ls$XY}=kxTgr=aPz99qz9&(R?wCn`4n0EbHeU-l_04nM|f$zr| zNV^80^YasMRn6~9yaf=SkfzawA+ZJ}k$6eyd<`&3XMlXtMXrxMlgLqArzp}tH-?i3 zVrGafK$Fmse8#wY`b5P@3~gN#P*A3>msy}S&voMADRow1F(8Mg{e?PqW+NH-j04ja zDRh$GrPoNlm60+UXn;chjma39$2tM&69Ag)t!clF7!MGgtthRV??8m^q zH!O?b!^ijd?z?Z%+K$KLftQy%-hX_Lj~~7Ryh=0l-5BWoFnOq)Eo1Gb_xl|M5?SHZ zdw1{mI|u}hF|36D64PY-6BZmlZ`SIujz|07@TtdU^sB z0SG)EkI3p@+XhN0xZO5OESc-+XHrl8Blnwr*=f8fSdnQmXH^Y0LfSY0)>u3H%o1y0 zKbwH%j1_&x_!!6>Vi{yGek7a4PW>^#agArV`UKZtH@5==GijEm>Zls1RUEuKTEn)k z*wzKRlipd?MR7ij152F&cD9R@ne2<^pBoRAoZgdtDNl}kmcRLTzxh;4{b&xGqcVk= zVT8~!i)j~{hzJ#&7k|a?Z5FTfr5=YVs96GU2VAPN#SWILN(9~n1=JO595PJjUqqZF z!O+unS?y4d5z6>HtB{W2nT!X>85#SQSlCjczs%Odks9IbSX0bFFfc|sz-Ol=D~s%C zXI4i#aok9|H!yh9{U6E!>o!ZmuI;s zAc+~?NJjX4MTo3pj-gm zE3GWA`>*-^Zw0dX-p+=x`?+RG8cT{T`*qDqM~3DSB;f(7);x&Uf~SAaq)PR}lvz06sFY!q?; z#fYbRyhn$L_s#d`ENl+O!+B1B&ueylFaP}(H$}cL+aE;GEACWMC)#y7@0}<2@ zV8DPZqRiKQy6U?em}kI=sp)s>WsYa?gP$=6 z&h%eJi4xohqSAi91ys4j`~6zBc&;VYv6rNRU~X|8|8^k$76@W%CjsbMI|}(VG`=4g zDB{uLFkNqLN9Q(|cm|MHB$|WW9x#lB2kdDrJdkA2MR_Ec%QK%}XZ=Yac&;r2RN6UJ z1V;yjA%GW2a)AUy=djP$-t;O1P6zNblaEr4&%6ubEZI>p13)p?00OAbOeTL$L~me_ zuR#dPTT_=U+93KKw8Ib!;A#9#KCk-1NbBZ|=GjIU>*;$IEc5&x%u;&+PJ6;i2L08q#E=#VgvG0294`^3B-8QHe^nTbLtWR$HhW94VS8KBpDRXK`HD5K4 zn9D7Jt+gOu4jsp;x@7Z>SQ%*D#=ecilQipc_74p%3GtnCTr)*R6&n&ofU?`nm`sqA_)2>aR+xBD5wdeJ-O|&yTGttbpcL$Xa0k3PR zRCSg0N67U!-$y(P^@JF>q;4EUfKp*h{|XeCAJSl@@56iQ*UhF$Ww0}BgHEuXXD`}k zi?j8sIDz50$~)`7Qp#uf?SJ^~r=j}s

IMO!fPq6QUDMW%iQ`-P)P7M`W@A2V(0u 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 literal 0 HcmV?d00001 diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index b7670c0e..2fa685da 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -466,6 +466,13 @@ const Map localizedValues = { "ar": " خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر(قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف). " }, + "parkingDescription": { + + "en": "Parking service is for you to scan the car location so you can find it easy on you way out. click on (scan parking) button to save the parking location, then (show my park) button will appear to show you the way for the parking. if you want to rescan parking QR just click on (Clear My Data).", + + "ar": "خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر(قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف)." + + }, "readBarcode": {"en": "Read Barcode", "ar": "قراءة الكود"}, "showMyPark": {"en": "Show My Park", "ar": "عرض بارك"}, "clearMyData": {"en": "clear My Data", "ar": "امسح البيانات"}, diff --git a/lib/pages/AlHabibMedicalService/parking_page.dart b/lib/pages/AlHabibMedicalService/parking_page.dart index 82c390ea..19f06a56 100644 --- a/lib/pages/AlHabibMedicalService/parking_page.dart +++ b/lib/pages/AlHabibMedicalService/parking_page.dart @@ -8,7 +8,7 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:maps_launcher/maps_launcher.dart'; - +import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import '../../d_q_icons_icons.dart'; class ParkingPage extends StatelessWidget { @@ -19,6 +19,13 @@ class ParkingPage extends StatelessWidget { builder: (_, model, widget) => AppScaffold( isShowAppBar: true, appBarTitle: TranslationBase.of(context).parking, + description: TranslationBase.of(context).parkingDescription, + imagesInfo: [ + ImagesInfo( + imageAr: 'assets/images/bc_parking.png', + imageEn: 'assets/images/bc_parking.png', + isAsset: true) + ], body: SingleChildScrollView( padding: EdgeInsets.all(12), child: !model.isSavePark diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index c86012f2..a74c7177 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -471,6 +471,7 @@ class TranslationBase { String get medicalProfile => localizedValues['medicalProfile'][locale.languageCode]; String get parking => localizedValues['parking'][locale.languageCode]; + String get parkingDescription => localizedValues['parkingDescription'][locale.languageCode]; String get alhabiServices => localizedValues['alhabiServices'][locale.languageCode]; String get parkingTitle => From 107d50826c55b054e9c257751c484fc0f5db12b5 Mon Sep 17 00:00:00 2001 From: "Mirza.Shafique" Date: Mon, 26 Jul 2021 14:54:04 +0300 Subject: [PATCH 37/59] nfc package test --- pubspec.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/pubspec.yaml b/pubspec.yaml index c86b4a59..db0811fb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -171,6 +171,7 @@ dependencies: wifi: ^0.1.5 vibration: ^1.7.3 + nfc_in_flutter: ^2.0.5 speech_to_text: path: speech_to_text From b31813770ef52db3451eb6d142c124ebadd0fe0c Mon Sep 17 00:00:00 2001 From: "Mirza.Shafique" Date: Wed, 28 Jul 2021 16:41:35 +0300 Subject: [PATCH 38/59] Check-In NFC done --- assets/images/nfc/ic_done.png | Bin 0 -> 18338 bytes assets/images/nfc/ic_nfc.png | Bin 0 -> 19686 bytes lib/config/config.dart | 3 + lib/config/localized_values.dart | 1 + lib/pages/BookAppointment/QRCode.dart | 136 ++++++++++-- lib/pages/ToDoList/ToDo.dart | 17 ++ .../appointment_services/GetDoctorsList.dart | 20 ++ lib/uitl/translations_delegate_base.dart | 1 + lib/widgets/in_app_browser/InAppBrowser.dart | 14 +- lib/widgets/nfc/nfc_reader_sheet.dart | 196 ++++++++++++++++++ pubspec.yaml | 1 + 11 files changed, 368 insertions(+), 21 deletions(-) create mode 100644 assets/images/nfc/ic_done.png create mode 100644 assets/images/nfc/ic_nfc.png create mode 100644 lib/widgets/nfc/nfc_reader_sheet.dart diff --git a/assets/images/nfc/ic_done.png b/assets/images/nfc/ic_done.png new file mode 100644 index 0000000000000000000000000000000000000000..5b802855ce8942032b0948c1fdaa56e885b4c78e GIT binary patch literal 18338 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 literal 0 HcmV?d00001 diff --git a/assets/images/nfc/ic_nfc.png b/assets/images/nfc/ic_nfc.png new file mode 100644 index 0000000000000000000000000000000000000000..274e1b8c0d81daca3127e8a2b6d0522b43d6bb8d GIT binary patch literal 19686 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 literal 0 HcmV?d00001 diff --git a/lib/config/config.dart b/lib/config/config.dart index 40e0a300..1d0e7a88 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -313,6 +313,9 @@ const UPDATE_HEALTH_TERMS = const GET_PATIENT_HEALTH_STATS = 'Services/Patients.svc/REST/Med_GetTransactionsSts'; +const SEND_CHECK_IN_NFC_REQUEST = + 'Services/Patients.svc/REST/Patient_CheckAppointmentValidation_ForNFC'; + //URL to get medicine and pharmacies list const CHANNEL = 3; const GENERAL_ID = 'Cs2020@2016\$2958'; diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 2fa685da..96820fb1 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -473,6 +473,7 @@ const Map localizedValues = { "ar": "خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر(قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف)." }, + "checkinOption": {"en": "Check-In Options", "ar": "تحقق في الخيارات"}, "readBarcode": {"en": "Read Barcode", "ar": "قراءة الكود"}, "showMyPark": {"en": "Show My Park", "ar": "عرض بارك"}, "clearMyData": {"en": "clear My Data", "ar": "امسح البيانات"}, diff --git a/lib/pages/BookAppointment/QRCode.dart b/lib/pages/BookAppointment/QRCode.dart index 00fb2fc8..ff7224be 100644 --- a/lib/pages/BookAppointment/QRCode.dart +++ b/lib/pages/BookAppointment/QRCode.dart @@ -13,8 +13,10 @@ import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; +import 'package:diplomaticquarterapp/widgets/nfc/nfc_reader_sheet.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/material.dart'; +import 'package:nfc_in_flutter/nfc_in_flutter.dart'; class QRCode extends StatefulWidget { PatientShareResponse patientShareResponse; @@ -30,17 +32,27 @@ class QRCode extends StatefulWidget { class _QRCodeState extends State { Uint8List _bytes; + bool _supportsNFC = false; + BuildContext _context; @override void initState() { // TODO: implement initState + _bytes = base64.decode(widget.appoQR.split(',').last); widget.authUser = new AuthenticatedUser(); + NFC.isNDEFSupported.then((supported) { + setState(() { + print("nfc supprted"); + _supportsNFC = true; + }); + }); super.initState(); } @override Widget build(BuildContext context) { + _context = context; return AppScaffold( appBarTitle: TranslationBase.of(context).attendRegisterCode, isShowAppBar: true, @@ -51,9 +63,56 @@ class _QRCodeState extends State { mainAxisSize: MainAxisSize.max, children: [ Container( - margin: EdgeInsets.only(top: 30.0), - alignment: Alignment.center, - child: Image.memory(_bytes, scale: 0.5), + width: double.infinity, + height: MediaQuery.of(context).size.width / 3, + child: Row( + children: [ + _supportsNFC + ? Expanded( + flex: 1, + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + InkWell( + child: Container( + margin: EdgeInsets.only(top: 30.0), + alignment: Alignment.center, + padding: EdgeInsets.all(8), + decoration: BoxDecoration( + border: Border.all(color: Colors.black), + borderRadius: BorderRadius.circular(10), + ), + child: Image.asset( + "assets/images/nfc/ic_nfc.png"), + ), + onTap: () { + showNfcReader(context, + onNcfScan: (String nfcId) { + Future.delayed( + const Duration(milliseconds: 100), + () { + sendNfcCheckInRequest(nfcId); + }); + }); + }, + ), + ], + ), + ) + : Container(), + Expanded( + flex: 1, + child: Container( + margin: EdgeInsets.only(top: 30.0), + alignment: Alignment.center, + child: Image.memory( + _bytes, + ), + ), + ), + ], + ), ), Container( margin: EdgeInsets.only(top: 20.0, left: 20.0, right: 20.0), @@ -70,18 +129,20 @@ class _QRCodeState extends State { EdgeInsets.only(top: 10.0, left: 40.0, bottom: 10.0), child: Image.asset( "assets/images/new-design/device_icon.png", - width: 120.0, - height: 120.0), + width: MediaQuery.of(context).size.width / 3.4, + height: MediaQuery.of(context).size.width / 3.4), ), - Container( - width: MediaQuery.of(context).size.width * 0.5, - margin: EdgeInsets.only( - top: 15.0, bottom: 10.0, left: 20.0, right: 20.0), - child: Text(TranslationBase.of(context).scanQRHospital, - style: TextStyle( - color: Colors.red[700], - fontSize: 20.0, - fontWeight: FontWeight.bold)), + Expanded( + child: Container( + width: double.infinity, + margin: EdgeInsets.only( + top: 15.0, bottom: 10.0, left: 20.0, right: 20.0), + child: Text(TranslationBase.of(context).scanQRHospital, + style: TextStyle( + color: Colors.red[700], + fontSize: 18.0, + fontWeight: FontWeight.bold)), + ), ), ], ), @@ -300,4 +361,51 @@ class _QRCodeState extends State { } return docSpeciality; } + + sendNfcCheckInRequest(String nfcId) { + GifLoaderDialogUtils.showMyDialog(context); + + DoctorsListService service = new DoctorsListService(); + + service + .sendCheckinNfcRequest(widget.patientShareResponse.appointmentNo, nfcId, + widget.patientShareResponse.projectID, context) + .then((res) { + print(res); + + GifLoaderDialogUtils.hideDialog(context); + _showMyDialog(res["SuccessMsg"], this.context); + }).catchError((err) { + GifLoaderDialogUtils.hideDialog(context); + print(err); + _showMyDialog(err, this.context); + }); + } + + Future _showMyDialog(String message, BuildContext context) async { + return showDialog( + context: context, + barrierDismissible: true, // user must tap button! + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Alert'), + content: SingleChildScrollView( + child: ListBody( + children: [ + Text(message), + ], + ), + ), + actions: [ + TextButton( + child: const Text('OK'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + ], + ); + }, + ); + } } diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart index 79bcd94b..319221d5 100644 --- a/lib/pages/ToDoList/ToDo.dart +++ b/lib/pages/ToDoList/ToDo.dart @@ -92,6 +92,12 @@ class _ToDoState extends State { padding: EdgeInsets.all(0.0), itemCount: widget.appoList.length, itemBuilder: (context, index) { + print("ttt "+getNextActionImage(widget + .appoList[index] + .nextAction)); + print("ttt "+widget + .appoList[index] + .nextAction.toString()); return Container( margin: EdgeInsets.all(10.0), child: Column( @@ -459,6 +465,10 @@ class _ToDoState extends State { return "assets/images/new-design/waiting_for_doctor.png"; break; + case 90: + return "assets/images/new-design/check-in.png"; + break; + default: return ""; } @@ -480,6 +490,9 @@ class _ToDoState extends State { break; case 60: break; + case 90: + getAppoQR(context, appo); + break; } } @@ -516,6 +529,10 @@ class _ToDoState extends State { return TranslationBase.of(context).waitingForDoctor; break; + case 90: + return TranslationBase.of(context).checkinOptions; + break; + default: return ""; } diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index 65fe2b04..c894c84c 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -1445,4 +1445,24 @@ class DoctorsListService extends BaseService { }, body: request); return Future.value(localRes); } + + Future sendCheckinNfcRequest( + int appointmentNo, String nfcCode,int projectId, BuildContext context) async { + Map request; + + Request req = appGlobal.getPublicRequest(); + request = { + "AppointmentNo":appointmentNo, + "NFC_Code": nfcCode, + "ProjectID": projectId, + }; + dynamic localRes; + await baseAppClient.post(SEND_CHECK_IN_NFC_REQUEST, + onSuccess: (response, statusCode) async { + localRes = response; + }, onFailure: (String error, int statusCode) { + throw error; + }, body: request); + return Future.value(localRes); + } } diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index a74c7177..96cffc60 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -472,6 +472,7 @@ class TranslationBase { localizedValues['medicalProfile'][locale.languageCode]; String get parking => localizedValues['parking'][locale.languageCode]; String get parkingDescription => localizedValues['parkingDescription'][locale.languageCode]; + String get checkinOptions => localizedValues['checkinOption'][locale.languageCode]; String get alhabiServices => localizedValues['alhabiServices'][locale.languageCode]; String get parkingTitle => diff --git a/lib/widgets/in_app_browser/InAppBrowser.dart b/lib/widgets/in_app_browser/InAppBrowser.dart index 63509b7c..946876a7 100644 --- a/lib/widgets/in_app_browser/InAppBrowser.dart +++ b/lib/widgets/in_app_browser/InAppBrowser.dart @@ -21,17 +21,17 @@ var _InAppBrowserOptions = InAppBrowserClassOptions( class MyInAppBrowser extends InAppBrowser { _PAYMENT_TYPE paymentType; - // static String SERVICE_URL = - // 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT - static String SERVICE_URL = - 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE + 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT - // static String PREAUTH_SERVICE_URL = - // 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort PreAuth Payment Gateway URL UAT + // static String SERVICE_URL = + // 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE static String PREAUTH_SERVICE_URL = - 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort PreAuth Payment Gateway URL Live Store + 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort PreAuth Payment Gateway URL UAT + + // static String PREAUTH_SERVICE_URL = + // 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort PreAuth Payment Gateway URL Live Store // static String PRESCRIPTION_PAYMENT_WITH_ORDERID = // 'https://uat.hmgwebservices.com/epharmacy/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; diff --git a/lib/widgets/nfc/nfc_reader_sheet.dart b/lib/widgets/nfc/nfc_reader_sheet.dart new file mode 100644 index 00000000..067c0c9a --- /dev/null +++ b/lib/widgets/nfc/nfc_reader_sheet.dart @@ -0,0 +1,196 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:nfc_in_flutter/nfc_in_flutter.dart'; + +void showNfcReader(BuildContext context, {Function onNcfScan}) { + showModalBottomSheet( + context: context, + enableDrag: false, + isDismissible: false, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(12), topRight: Radius.circular(12)), + ), + backgroundColor: Colors.white, + builder: (context) { + return NfcLayout( + onNcfScan: onNcfScan, + ); + }); +} + +class NfcLayout extends StatefulWidget { + Function onNcfScan; + + NfcLayout({this.onNcfScan}); + + @override + _NfcLayoutState createState() => _NfcLayoutState(); +} + +class _NfcLayoutState extends State { + StreamSubscription _stream; + bool _reading = false; + Widget mainWidget; + String nfcId; + + @override + void initState() { + super.initState(); + + setState(() { + // _reading = true; + // Start reading using NFC.readNDEF() + _stream = NFC + .readNDEF( + once: false, + throwOnUserCancel: false, + readerMode: NFCDispatchReaderMode()) + .listen((NDEFMessage message) { + setState(() { + _reading = true; + mainWidget = doneNfc(); + }); + Future.delayed(const Duration(milliseconds: 500), () { + _stream?.cancel(); + widget.onNcfScan(nfcId); + Navigator.pop(context); + }); + print("read NDEF id: ${message.id}"); + // widget.onNcfScan(message.id); + nfcId = message.id; + }, onError: (e) { + // Check error handling guide below + }); + }); + } + + @override + Widget build(BuildContext context) { + (mainWidget == null && !_reading) + ? mainWidget = scanNfc() + : mainWidget = doneNfc(); + return AnimatedSwitcher( + duration: Duration(milliseconds: 500), child: mainWidget); + } + + Widget scanNfc() { + return Container( + key: ValueKey(1), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox( + height: 30, + ), + Text( + "Ready To Scan", + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 24, + ), + ), + SizedBox( + height: 30, + ), + Image.asset( + "assets/images/nfc/ic_nfc.png", + height: MediaQuery.of(context).size.width / 3, + ), + SizedBox( + height: 30, + ), + Text( + "Approach an NFC Tag", + style: TextStyle( + fontSize: 18, + ), + ), + SizedBox( + height: 30, + ), + ButtonTheme( + minWidth: MediaQuery.of(context).size.width / 1.2, + height: 45.0, + buttonColor: Colors.grey[300], + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(6), + ), + child: RaisedButton( + onPressed: () { + _stream?.cancel(); + Navigator.pop(context); + }, + child: Text("CANCEL"), + ), + ), + SizedBox( + height: 30, + ), + ], + ), + ); + } + + Widget doneNfc() { + return Container( + key: ValueKey(2), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox( + height: 30, + ), + Text( + "Successfully Scanned", + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 24, + ), + ), + SizedBox( + height: 30, + ), + Image.asset( + "assets/images/nfc/ic_done.png", + height: MediaQuery.of(context).size.width / 3, + ), + SizedBox( + height: 30, + ), + Text( + "Approach an NFC Tag", + style: TextStyle( + fontSize: 18, + ), + ), + SizedBox( + height: 30, + ), + ButtonTheme( + minWidth: MediaQuery.of(context).size.width / 1.2, + height: 45.0, + buttonColor: Colors.grey[300], + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(6), + ), + child: RaisedButton( + // onPressed: () { + // _stream?.cancel(); + // widget.onNcfScan(nfcId); + // Navigator.pop(context); + // }, + onPressed: null, + + child: Text("DONE"), + ), + ), + SizedBox( + height: 30, + ), + ], + ), + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index db0811fb..c109bd0a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -221,6 +221,7 @@ flutter: - assets/images/gif/ - assets/images/pharmacy_module/payment/ - assets/images/pharmacy_module/lakum/ + - assets/images/nfc/ fonts: From 14ef096c321282ced758769cb29c568fca4c517d Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Thu, 29 Jul 2021 11:12:05 +0300 Subject: [PATCH 39/59] changes and fixes --- android/app/src/main/AndroidManifest.xml | 10 +- android/build.gradle | 2 +- assets/images/1.png | Bin 0 -> 2497 bytes assets/images/2.png | Bin 0 -> 3381 bytes assets/images/3.png | Bin 0 -> 3062 bytes assets/images/4.png | Bin 0 -> 3089 bytes assets/images/5.png | Bin 0 -> 3436 bytes assets/images/new-design/pending.svg | 6 + lib/config/config.dart | 402 +++++++----- lib/config/localized_values.dart | 30 +- .../ActivePrescriptionReport.dart | 2 +- .../prescriptions/prescription_report.dart | 2 +- .../prescription_report_enh.dart | 68 +- .../prescription_report_inp.dart | 124 ++++ .../request_send_prescription_email.dart | 7 +- .../medical/prescriptions_service.dart | 112 ++-- .../medical/prescriptions_view_model.dart | 36 +- .../Authentication/authenticated_user.dart | 125 ++-- lib/pages/feedback/send_feedback_page.dart | 101 +-- lib/pages/feedback/status_feedback_page.dart | 19 +- lib/pages/landing/home_page.dart | 119 ++-- lib/pages/landing/landing_page.dart | 2 + .../widgets/LiveCarePaymentDialog.dart | 28 +- lib/pages/livecare/widgets/clinic_list.dart | 7 +- lib/pages/login/confirm-login.dart | 1 + lib/pages/login/login.dart | 2 + lib/pages/login/register-info.dart | 3 +- .../pharmacy_for_prescriptions_page.dart | 144 ++--- .../prescription_details_inp.dart | 310 +++++++++ .../prescription_details_page.dart | 29 +- .../prescription_items_page.dart | 88 +-- .../rate_appointment_clinic.dart | 23 +- lib/uitl/translations_delegate_base.dart | 14 + lib/widgets/drawer/app_drawer_widget.dart | 1 + lib/widgets/others/app_scaffold_widget.dart | 12 +- .../others/floating_button_search.dart | 1 + lib/widgets/typewriter/typewiter.dart | 3 + speech_to_text/android/build.gradle | 2 +- .../android/gradle/local.properties | 3 +- .../example/android/app/build.gradle | 2 +- speech_to_text_/.github/workflows/master.yml | 19 + speech_to_text_/.gitignore | 11 + speech_to_text_/.metadata | 10 + speech_to_text_/CHANGELOG.md | 166 +++++ speech_to_text_/LICENSE | 29 + speech_to_text_/README.md | 150 +++++ speech_to_text_/android/.classpath | 6 + speech_to_text_/android/.gitignore | 8 + speech_to_text_/android/.project | 23 + .../org.eclipse.buildship.core.prefs | 13 + speech_to_text_/android/build.gradle | 44 ++ .../android/gradle/gradle.properties | 3 + .../android/gradle/local.properties | 3 + .../android/gradle/settings.gradle | 1 + .../gradle/wrapper/gradle-wrapper.properties | 5 + .../android/src/main/AndroidManifest.xml | 3 + .../speech_to_text/SpeechToTextPlugin.kt | 595 ++++++++++++++++++ speech_to_text_/example/.gitignore | 73 +++ speech_to_text_/example/.metadata | 10 + speech_to_text_/example/README.md | 155 +++++ speech_to_text_/example/android/.project | 17 + .../org.eclipse.buildship.core.prefs | 2 + .../example/android/app/build.gradle | 67 ++ .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 32 + .../speech_to_text_example/MainActivity.kt | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values/styles.xml | 8 + .../app/src/profile/AndroidManifest.xml | 7 + speech_to_text_/example/android/build.gradle | 31 + .../example/android/gradle.properties | 4 + .../gradle/wrapper/gradle-wrapper.properties | 6 + .../example/android/settings.gradle | 15 + .../assets/sounds/speech_to_text_cancel.m4r | Bin 0 -> 14006 bytes .../sounds/speech_to_text_listening.m4r | Bin 0 -> 16416 bytes .../assets/sounds/speech_to_text_stop.m4r | Bin 0 -> 17128 bytes .../ios/Flutter/AppFrameworkInfo.plist | 26 + .../example/ios/Flutter/Debug.xcconfig | 2 + .../example/ios/Flutter/Flutter.podspec | 18 + .../example/ios/Flutter/Release.xcconfig | 2 + speech_to_text_/example/ios/Podfile | 90 +++ speech_to_text_/example/ios/Podfile.lock | 29 + .../ios/Runner.xcodeproj/project.pbxproj | 578 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 +++ .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../example/ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 ++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ .../ios/Runner/Base.lproj/Main.storyboard | 26 + speech_to_text_/example/ios/Runner/Info.plist | 49 ++ .../ios/Runner/Runner-Bridging-Header.h | 1 + speech_to_text_/example/lib/main.dart | 275 ++++++++ speech_to_text_/example/pubspec.yaml | 33 + speech_to_text_/example/test/widget_test.dart | 27 + speech_to_text_/ios/.gitignore | 37 ++ speech_to_text_/ios/Assets/.gitkeep | 0 .../ios/Classes/SpeechToTextPlugin.h | 4 + .../ios/Classes/SpeechToTextPlugin.m | 8 + .../ios/Classes/SwiftSpeechToTextPlugin.swift | 580 +++++++++++++++++ speech_to_text_/ios/speech_to_text.podspec | 22 + .../lib/speech_recognition_error.dart | 44 ++ .../lib/speech_recognition_error.g.dart | 22 + .../lib/speech_recognition_event.dart | 30 + .../lib/speech_recognition_result.dart | 140 +++++ .../lib/speech_recognition_result.g.dart | 41 ++ speech_to_text_/lib/speech_to_text.dart | 511 +++++++++++++++ .../lib/speech_to_text_provider.dart | 201 ++++++ speech_to_text_/pubspec.yaml | 31 + .../test/speech_recognition_error_test.dart | 65 ++ .../test/speech_recognition_event_test.dart | 42 ++ .../test/speech_recognition_result_test.dart | 134 ++++ .../test/speech_recognitions_words_test.dart | 86 +++ .../test/speech_to_text_provider_test.dart | 196 ++++++ speech_to_text_/test/speech_to_text_test.dart | 425 +++++++++++++ .../test/test_speech_channel_handler.dart | 134 ++++ .../test/test_speech_listener.dart | 36 ++ 143 files changed, 7111 insertions(+), 537 deletions(-) create mode 100644 assets/images/1.png create mode 100644 assets/images/2.png create mode 100644 assets/images/3.png create mode 100644 assets/images/4.png create mode 100644 assets/images/5.png create mode 100644 assets/images/new-design/pending.svg create mode 100644 lib/core/model/prescriptions/prescription_report_inp.dart create mode 100644 lib/pages/medical/prescriptions/prescription_details_inp.dart create mode 100644 speech_to_text_/.github/workflows/master.yml create mode 100644 speech_to_text_/.gitignore create mode 100644 speech_to_text_/.metadata create mode 100644 speech_to_text_/CHANGELOG.md create mode 100644 speech_to_text_/LICENSE create mode 100644 speech_to_text_/README.md create mode 100644 speech_to_text_/android/.classpath create mode 100644 speech_to_text_/android/.gitignore create mode 100644 speech_to_text_/android/.project create mode 100644 speech_to_text_/android/.settings/org.eclipse.buildship.core.prefs create mode 100644 speech_to_text_/android/build.gradle create mode 100644 speech_to_text_/android/gradle/gradle.properties create mode 100644 speech_to_text_/android/gradle/local.properties create mode 100644 speech_to_text_/android/gradle/settings.gradle create mode 100644 speech_to_text_/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 speech_to_text_/android/src/main/AndroidManifest.xml create mode 100644 speech_to_text_/android/src/main/kotlin/com/csdcorp/speech_to_text/SpeechToTextPlugin.kt create mode 100644 speech_to_text_/example/.gitignore create mode 100644 speech_to_text_/example/.metadata create mode 100644 speech_to_text_/example/README.md create mode 100644 speech_to_text_/example/android/.project create mode 100644 speech_to_text_/example/android/.settings/org.eclipse.buildship.core.prefs create mode 100644 speech_to_text_/example/android/app/build.gradle create mode 100644 speech_to_text_/example/android/app/src/debug/AndroidManifest.xml create mode 100644 speech_to_text_/example/android/app/src/main/AndroidManifest.xml create mode 100644 speech_to_text_/example/android/app/src/main/kotlin/com/csdcorp/speech_to_text_example/MainActivity.kt create mode 100644 speech_to_text_/example/android/app/src/main/res/drawable/launch_background.xml create mode 100644 speech_to_text_/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 speech_to_text_/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 speech_to_text_/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 speech_to_text_/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 speech_to_text_/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 speech_to_text_/example/android/app/src/main/res/values/styles.xml create mode 100644 speech_to_text_/example/android/app/src/profile/AndroidManifest.xml create mode 100644 speech_to_text_/example/android/build.gradle create mode 100644 speech_to_text_/example/android/gradle.properties create mode 100644 speech_to_text_/example/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 speech_to_text_/example/android/settings.gradle create mode 100644 speech_to_text_/example/assets/sounds/speech_to_text_cancel.m4r create mode 100644 speech_to_text_/example/assets/sounds/speech_to_text_listening.m4r create mode 100644 speech_to_text_/example/assets/sounds/speech_to_text_stop.m4r create mode 100644 speech_to_text_/example/ios/Flutter/AppFrameworkInfo.plist create mode 100644 speech_to_text_/example/ios/Flutter/Debug.xcconfig create mode 100644 speech_to_text_/example/ios/Flutter/Flutter.podspec create mode 100644 speech_to_text_/example/ios/Flutter/Release.xcconfig create mode 100644 speech_to_text_/example/ios/Podfile create mode 100644 speech_to_text_/example/ios/Podfile.lock create mode 100644 speech_to_text_/example/ios/Runner.xcodeproj/project.pbxproj create mode 100644 speech_to_text_/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 speech_to_text_/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 speech_to_text_/example/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 speech_to_text_/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 speech_to_text_/example/ios/Runner/AppDelegate.swift create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 speech_to_text_/example/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 speech_to_text_/example/ios/Runner/Base.lproj/Main.storyboard create mode 100644 speech_to_text_/example/ios/Runner/Info.plist create mode 100644 speech_to_text_/example/ios/Runner/Runner-Bridging-Header.h create mode 100644 speech_to_text_/example/lib/main.dart create mode 100644 speech_to_text_/example/pubspec.yaml create mode 100644 speech_to_text_/example/test/widget_test.dart create mode 100644 speech_to_text_/ios/.gitignore create mode 100644 speech_to_text_/ios/Assets/.gitkeep create mode 100644 speech_to_text_/ios/Classes/SpeechToTextPlugin.h create mode 100644 speech_to_text_/ios/Classes/SpeechToTextPlugin.m create mode 100644 speech_to_text_/ios/Classes/SwiftSpeechToTextPlugin.swift create mode 100644 speech_to_text_/ios/speech_to_text.podspec create mode 100644 speech_to_text_/lib/speech_recognition_error.dart create mode 100644 speech_to_text_/lib/speech_recognition_error.g.dart create mode 100644 speech_to_text_/lib/speech_recognition_event.dart create mode 100644 speech_to_text_/lib/speech_recognition_result.dart create mode 100644 speech_to_text_/lib/speech_recognition_result.g.dart create mode 100644 speech_to_text_/lib/speech_to_text.dart create mode 100644 speech_to_text_/lib/speech_to_text_provider.dart create mode 100644 speech_to_text_/pubspec.yaml create mode 100644 speech_to_text_/test/speech_recognition_error_test.dart create mode 100644 speech_to_text_/test/speech_recognition_event_test.dart create mode 100644 speech_to_text_/test/speech_recognition_result_test.dart create mode 100644 speech_to_text_/test/speech_recognitions_words_test.dart create mode 100644 speech_to_text_/test/speech_to_text_provider_test.dart create mode 100644 speech_to_text_/test/speech_to_text_test.dart create mode 100644 speech_to_text_/test/test_speech_channel_handler.dart create mode 100644 speech_to_text_/test/test_speech_listener.dart diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 1238814b..63f94294 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -5,6 +5,7 @@ In most cases you can leave this as-is, but you if you want to provide additional functionality it is fine to subclass or reimplement FlutterApplication and put your custom class here. --> + @@ -29,7 +30,11 @@ - + + + + + + + + diff --git a/android/build.gradle b/android/build.gradle index ffbdc324..c0fc03b3 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -9,7 +9,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:3.5.4' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.8' } diff --git a/assets/images/1.png b/assets/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..c90aa190ba7176cfbc42e22e90f56616c307bd0e GIT binary patch literal 2497 zcmaJ@c|25m8=q{+axs*obneJfcbLV@V5TX|jB94ddeLPtnS&W-X=X&0l#q$sTp>~# zA?hY2B}GabZG=L$-Y83@#EV{XkGA{%@%En2=bYd2dA{H0`#jJ0k0W#2@~fuWDm54k zrb&0AdO#~~@l{oUzPF+c$DqYPO7oR^3PYq(Y%vJ4=Lolf0G-bc1wBAEXXo}Na3c(+ zXw3EUmHN6k6N80(OZH-nWi(#|p<%F%o1;bS;BZh1Yy(5N0y1L!$~6SQ<&Y6Rco(#b zhysRjonpkGXUrC_;F$1WTMlCLCSYSU5hCD&QZ^9Hj}SC<MoP&DNa>dn_@eK$0?F4lK@CGivqdP3C3>->Z-Fi@|38$^ z{~j%odVv4v{h!1VubmX%za3RKvsYFDI7-UO@VlSaE;#(Kp!h}+xBupp* zu#hCc+=naR2%{wHKLcD`h;)HO$`%BJbSfDEQCM=h93qW|##*7NcnpSOg~8D5Z5;{L zHaKg_V#BO)1pGHFRTvz}2L;k^Sk6CK!Vj^FUf_$M%v4a!-2rkO#X>&txn?5w$66pA zKhp9A%lWYu+z+uRNDOLmvi~*dZg7PsGh3mv{Y9~3}#7el^Q0^&PiFcln~YVQ@@ z-Sd06vuBjvf@hqP-=5_z2Y(eACccQmE1(S?xsr-u#RhprW+XTjXs^dR4K~sHE;qoyDy{u}A)=@#k}I z=L=sg5HZ`|n=mvO=w`N=*~v#N7K;pG^9<)}YHDmYlSrhWV3e6^ecIl~8IMspOST{~ z@7mE1q@^*P8H{amx%_^Af8p%R4EnPFLw|q&nq*;rJ=oUP77-DVPEPn#P~O4&_i(Fm zsYm&z8-)p!a=dmgd|gpb#{T_@6BFWE3iZpzDd>Xx^e`hLn#sl6WdOrbe6N1Jy!a%_do z26NW&0|_5YvX12CEz8JA(?`L}*FMO!9T*wmo|_mN0$VkzsrorS)aHIY`N!M09Rr&C z>SCA9&dzGDS)*BBU$1RwsGgjh?421qHM+cj6qUg&E><72H~-}qt5}wwpP`Ni-_aCj zYMPR}#M9H$Zn*wX!nwpvd!vGa`-&Ok4Y`BhWPfPjaq|_e&`1;8s|^u9089}S1M2L}hh#3cD?PVB-bvVQ4-5j8EXeGLtEHt`>E!%|{>#XCiv z4W_RyC~;ngu%C5x<*93IOX4#oK79Cab@HIr3;c5G@J0NaCCNiYMMZd7b#d{{Qz{4H zW6A3J01}zr7CCrVM{ql68E%!P4$mP_Ji6MzKz1`Os9N{LCNaakmL48yfkdL?isIqc z)|V6=5O8aCU0J#|D|Y%V_@C+VTxO+l_M5)CBk^htDeW}G%ic&Or#_(N`sQU=rfO49 zPtVN#`}Z%J?Y+F8EyEdK|3pi37d+ElwPp=i({;NnXRL!){p?uFzyJ_GsV#q7QBlEn zExU5%$fnxVgQHMC3A1KZRaHH$%bI3pYFw7F7jAi5$M7WNeI|B=Nf$2Q8aQ`4cB~^s zy&W9AcIwoIRx`U{Qf2U+j0A68WbKYO`C-lFWw;LS{+jI+FNYMu;H!?Lxw6;#iauup z@bnZVLqbKQwz^CvE4Jn|65=KXWkExs4+}8NRHb-^9=6?S)kALA=!$}aC)~`HNM?n# z+S8;)0_9LpP^E2XRsY&kUK{MAkjBP)pXwGh{H({T&X-2!7r4&M&dM+n!g_3;M&%&f zIdyIqm=QGUyYP7S!z*aD@jL+LwIQ3#WHP6_7ErK@%kr=8pKDL`PnTQIsu^cp z^0%CBa9uxNlX}>3SXzsrl=_^IuB7VCnKi(+_BGy$X#B`p{HdbTwooe^f)f7*>24p# literal 0 HcmV?d00001 diff --git a/assets/images/2.png b/assets/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..48891b3275e14c0389a373f117db22f5ad66605c GIT binary patch literal 3381 zcmaJ^c{r4N8y?w1D9Ie#7)Q2Q4TGr}jJ=G?NC+7-qnVh+%rJv&p_DpEq9e%?CEGcQ zQz{7~YqGB?T1b}UkP6>8-|2kcA79^lUGMu_uIIj=`+1)GpZDxRS4V}dKWzm701D1d zc5b58bn}&w5`CKl>NBDR$g}t45m|veK8ZsG*icvjRFE@+be!r&B~ijdTBv&g0C8Qq zyC=_+;DRBu7%cjEI0i<&i)FMlh3$5n#c8@nS^#&1*Oq^j8Qk2n+tV zC{MyckS&Wt1)0InP%_fg0%UFpL!wO)C^Q6QfQI!})wZjE{n`ILF~gOG^=l3Ead4DvE$|!*Pzn@49cL7R-E09Ggu3l=H;cL@ykKeSBl-)#~#3@#wC;Yb)_v!w5V1j7FhWibAU z=JMRA|IzzDiMj6KY%1K1%4LOe$fCgo>TafDV{AE85|71kXR(66ckv*N#ba@4EH=nQ zBnf12gwCX}_*}!k00aWYnaSmmm}IK69TqI2fYIp`j04)-6oEk4Ad$8xB+}l-(!|cx z0*|*bGe=t>&}hr=SUVOultE?kzGEr>!Qy|2-Sh&3Ey`?1<o0I*oNq@f**=KY6k8eeXf1FQcitNr2`C3j|{w)9?d(+v@ z#$7Nx>MiT;J^)-F&jtpb{=FmCq5&-K1n{C5U;q7Qnnd>rx8W1#&nyk5|D--boOzLS z$IO9{Ei6L%x=tFJUGPXJ*3kL}X@vnQjRqjQOIJvPnPR6&%i%REI9+AUK(hOXn9j-i z$wwPw^Xn_?8yjmYZVayj4G9VPgX-PW^(9(K!WH?}G|RI^YGOW573Sw6z*HjN#UzuY-TD>R3^I=wGB z@xa^mx5awmtOynM6Wds0S*hW1MFZRhnwH*@3G7bru8r)0mV_b3-C{qsnjxYN@t>b0 zMsHVa#JMIFo?Tqr;;*(M9H7cYNj8?!atN}YZ%bC0)Xl8Tu7cXL6?}$FYcM1_L%Jab z9y>Ql^tXulXi%UTo~&*;3u$V8T-q+a#jZ&F5oF(C4XuaAD%G@tEB_t{c92l+)uA;&gCs~)lPoW z?8?10+L~@3T=eZ^rD53)X}genl$_6#_v*$s-WhMT&+dQRaH)R$pIjX)^oKmYGAP-k0-rr^KSy0-HtPv&IJOW6+qgqj*gmc z3*xDAr<66+XstkNuTlMr9fkTh`6sT$!rtDiL5eEa7pABhg91xpu}`YTIQ(@JRxHIk zNjgJo{J_V2%Dc)N7n{ZHM>v4~PNt63VY5G9T0QtfXL}X|pKK4ZT*7rlKY9l(*{0m| z#sZKqX7Vx6Vj@@O#iwR}KX(Zi^eZPlr3Wh&I17)cR(XY#K%;80=PFsO>R=UyU$*|! zT=De7pMi!-e?)P&hIz8i&sT>?#l{!)8Y3UsMl9-P;$qod1#>_{e$!50Up@G#y!USM zaLnRv&$1OynPQa1z%cZM-`ph=6!VyehZGP9R8m$J^YZelq_(M6+m`QRvEZfNceh?l zPxtZ-4-c>8zH>b@FFEljU?HaY-s=Iyvx&ojJ5Tv&b#vzR$B(VE@4LCVrS_e;JDz#C0vsM2>^kxRuPXP|HscUrtMh2cWM4!v zCa#QBCC)FO?kOgdvo+q=dpP9f<%NarR8bl1Bi%Q2Y^ApxF1e%c1u^}&y?+^Ys}fW* zXlz-ZcjZ~m9_d|hzX$W-PEImcv5~5m_US=9D*;Bv#+vUj?3aK$H8tZaCxz#M2Z=;+ z&OMEZ$;rIx>M$S82Q;9JoLr#S2~WZ+k5%aHUI;WwyiGPcOrz~Ct} z(q=vQWs_ZoKU)6I-58KYRlB=Oe9jk7CbPWbov1MyDCoxk{!L?j{pPpa;Cs)<59Hz$ zj51oIrC!Y{d~3gBP;@NEx@hEL9)H}n+$k)qy5kmp@3DXYun`2pJJIR|QB~2>ViE`1 zub>VE2SbdYPCEG^-dV@uVc1ofAa!Y>>&NVs{^ z;PQaKNwe@uem;2cVWjyK50etr;~trz;&|IS!&KV+)@o>fT%N4s>bY}U6ZYVCYwJ$C zI6KRF-{%<`!C(%9c=CE3y=Qmfz>NN7-zfzdBHMoE{D%seYX+R;;nBQ?6g*y@LMbygVORO-n1Kom!+CBCRGs6uI-!?`2NY&#X}%tk5cO_^qw_bo}$EH&dNZ!?~Lm87f1S)tuVnLx1b>+55tu%n{ZZYJ)6`Am6VE_2tRQchej(%YCRQ9LT# zZXc*r*eP>MdlcBWxX4MN4pYi3iPJ!$aCpJEcS0MBh|`kxaPq!myF2N{ zgYZgHgVgdIeW>cVqCcp#jsNp|!cnnz`8N_UqlS_xV;2kQ2w#Q(y3hfoMqBxzZ=u9z zrM2<%ZMXU1dQBTDU4qEcV~k=?3?`_sS+VdFs%N*J8qszKuQO_HKjxr@W2en%R8icc z;-wU?Tt$D?Jr&2N+kOgi94HizPp40Xuj`=}1dzO;_?HDwVCKu^fHA$nzW#L{DgL=wqL#>+N$zt#?58 zu=-EVOWK2;wruI_^vQ9Q%VM^;U^`6J_O?`l_$ H_doS7{-o1U literal 0 HcmV?d00001 diff --git a/assets/images/3.png b/assets/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..721f6e6c1a2a78de5adf083d98bcf83b0bebcdcc GIT binary patch literal 3062 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 literal 0 HcmV?d00001 diff --git a/assets/images/4.png b/assets/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..6d61b45f40cee581644ba6800055f3333f349c7d GIT binary patch literal 3089 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 R#Pg{h56DcbYge*kUC|CRs% literal 0 HcmV?d00001 diff --git a/assets/images/new-design/pending.svg b/assets/images/new-design/pending.svg new file mode 100644 index 00000000..2c26afbd --- /dev/null +++ b/assets/images/new-design/pending.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/lib/config/config.dart b/lib/config/config.dart index a2640d90..ba02a90c 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -13,20 +13,16 @@ const PACKAGES_CUSTOMER = '/api/customers'; const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items'; const PACKAGES_ORDERS = '/api/orders'; -<<<<<<< HEAD -// const BASE_URL = 'https://uat.hmgwebservices.com/'; -======= //const BASE_URL = 'https://uat.hmgwebservices.com/'; ->>>>>>> bcb4f487854a894a41a6578a08e0e8f306120033 const BASE_URL = 'https://hmgwebservices.com/'; // Pharmacy UAT URLs -//const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; -//const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; +const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; +const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; // Pharmacy Production URLs -const BASE_PHARMACY_URL = 'https://mdlaboratories.com/exacartapi/api/'; -const PHARMACY_BASE_URL = 'https://mdlaboratories.com/exacartapi/api/'; +//const BASE_PHARMACY_URL = 'https://mdlaboratories.com/exacartapi/api/'; +//const PHARMACY_BASE_URL = 'https://mdlaboratories.com/exacartapi/api/'; const PING_SERVICE = 'Services/Weather.svc/REST/CheckConnectivity'; @@ -37,7 +33,8 @@ const GET_GEO_ZONES = 'Services/Patients.svc/REST/GeoF_GetAllPoints'; const LOG_GEO_ZONES = 'Services/Patients.svc/REST/GeoF_InsertPatientFileInfo'; // Delivery Driver -const DRIVER_LOCATION = 'Services/Patients.svc/REST/PatientER_GetDriverLocation'; +const DRIVER_LOCATION = + 'Services/Patients.svc/REST/PatientER_GetDriverLocation'; //weather const WEATHER_INDICATOR = 'Services/Weather.svc/REST/GetCityInfo'; @@ -45,36 +42,51 @@ const WEATHER_INDICATOR = 'Services/Weather.svc/REST/GetCityInfo'; const GET_PRIVILEGE = 'Services/Patients.svc/REST/Service_Privilege'; // Wifi Credentials -const WIFI_CREDENTIALS = "Services/Patients.svc/Hmg_SMS_Get_By_ProjectID_And_PatientID"; +const WIFI_CREDENTIALS = + "Services/Patients.svc/Hmg_SMS_Get_By_ProjectID_And_PatientID"; ///Doctor -const GET_MY_DOCTOR = 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; +const GET_MY_DOCTOR = + 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; const GET_DOCTOR_PROFILE = 'Services/Doctors.svc/REST/GetDocProfiles'; -const GET_DOCTOR_RATING_NOTES = 'Services/Doctors.svc/REST/dr_GetNotesDoctorRating'; -const GET_DOCTOR_RATING_DETAILS = 'Services/Doctors.svc/REST/dr_GetDoctorRatingDetails'; +const GET_DOCTOR_RATING_NOTES = + 'Services/Doctors.svc/REST/dr_GetNotesDoctorRating'; +const GET_DOCTOR_RATING_DETAILS = + 'Services/Doctors.svc/REST/dr_GetDoctorRatingDetails'; const GET_DOCTOR_RATING = 'Services/Doctors.svc/REST/dr_GetAvgDoctorRating'; ///Prescriptions const PRESCRIPTIONS = 'Services/Patients.svc/REST/GetPrescriptionApptList'; -const GET_PRESCRIPTIONS_ALL_ORDERS = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const GET_PRESCRIPTION_REPORT = 'Services/Patients.svc/REST/INP_GetPrescriptionReport'; -const SEND_PRESCRIPTION_EMAIL = 'Services/Notifications.svc/REST/SendPrescriptionEmail'; -const GET_PRESCRIPTION_REPORT_ENH = 'Services/Patients.svc/REST/GetPrescriptionReport_enh'; +const GET_PRESCRIPTIONS_ALL_ORDERS = + 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const GET_PRESCRIPTION_REPORT = + 'Services/Patients.svc/REST/INP_GetPrescriptionReport'; +const SEND_PRESCRIPTION_EMAIL = + 'Services/Notifications.svc/REST/SendPrescriptionEmail'; +const GET_PRESCRIPTION_REPORT_ENH = + 'Services/Patients.svc/REST/GetPrescriptionReport_enh'; ///Lab Order const GET_Patient_LAB_ORDERS = 'Services/Patients.svc/REST/GetPatientLabOrders'; -const GET_Patient_LAB_SPECIAL_RESULT = 'Services/Patients.svc/REST/GetPatientLabSpecialResults'; -const SEND_LAB_RESULT_EMAIL = 'Services/Notifications.svc/REST/SendLabReportEmail'; -const GET_Patient_LAB_RESULT = 'Services/Patients.svc/REST/GetPatientLabResults'; -const GET_Patient_LAB_ORDERS_RESULT = 'Services/Patients.svc/REST/GetPatientLabOrdersResults'; +const GET_Patient_LAB_SPECIAL_RESULT = + 'Services/Patients.svc/REST/GetPatientLabSpecialResults'; +const SEND_LAB_RESULT_EMAIL = + 'Services/Notifications.svc/REST/SendLabReportEmail'; +const GET_Patient_LAB_RESULT = + 'Services/Patients.svc/REST/GetPatientLabResults'; +const GET_Patient_LAB_ORDERS_RESULT = + 'Services/Patients.svc/REST/GetPatientLabOrdersResults'; /// const GET_PATIENT_ORDERS = 'Services/Patients.svc/REST/GetPatientRadOrders'; -const GET_PATIENT_LAB_ORDERS_BY_APPOINTMENT = 'Services/Patients.svc/REST/GetPatientLabResultsByAppointmentNo'; +const GET_PATIENT_LAB_ORDERS_BY_APPOINTMENT = + 'Services/Patients.svc/REST/GetPatientLabResultsByAppointmentNo'; -const GET_PATIENT_ORDERS_DETAILS = 'Services/Patients.svc/REST/Rad_UpdatePatientRadOrdersToRead'; +const GET_PATIENT_ORDERS_DETAILS = + 'Services/Patients.svc/REST/Rad_UpdatePatientRadOrdersToRead'; const GET_RAD_IMAGE_URL = 'Services/Patients.svc/Rest/GetRadImageURL'; -const SEND_RAD_REPORT_EMAIL = 'Services/Notifications.svc/REST/SendRadReportEmail'; +const SEND_RAD_REPORT_EMAIL = + 'Services/Notifications.svc/REST/SendRadReportEmail'; ///Feedback const SEND_FEEDBACK = 'Services/COCWS.svc/REST/InsertCOCItemInSPList'; @@ -83,23 +95,32 @@ const GET_PATIENT_AppointmentHistory = 'Services' '/Doctors.svc/REST/PateintHasAppoimentHistory'; ///VITAL SIGN -const GET_PATIENT_VITAL_SIGN = 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign'; +const GET_PATIENT_VITAL_SIGN = + 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign'; ///Er Nearest -const GET_NEAREST_HOSPITAL = 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime'; +const GET_NEAREST_HOSPITAL = + 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime'; ///ED Online -const ER_GET_VISUAL_TRIAGE_QUESTIONS = "services/Doctors.svc/REST/ER_GetVisualTriageQuestions"; -const ER_SAVE_TRIAGE_INFORMATION = "services/Doctors.svc/REST/ER_SaveTriageInformation"; +const ER_GET_VISUAL_TRIAGE_QUESTIONS = + "services/Doctors.svc/REST/ER_GetVisualTriageQuestions"; +const ER_SAVE_TRIAGE_INFORMATION = + "services/Doctors.svc/REST/ER_SaveTriageInformation"; const ER_GetPatientPaymentInformationForERClinic = "services/Doctors.svc/REST/ER_GetPatientPaymentInformationForERClinic"; ///Er Nearest -const GET_AMBULANCE_REQUEST = 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod'; -const GET_PATIENT_ALL_PRES_ORDERS = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID = 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID'; -const UPDATE_PRESS_ORDER = 'Services/Patients.svc/REST/PatientER_UpdatePresOrder'; -const INSERT_ER_INERT_PRES_ORDER = 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; +const GET_AMBULANCE_REQUEST = + 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod'; +const GET_PATIENT_ALL_PRES_ORDERS = + 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID = + 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID'; +const UPDATE_PRESS_ORDER = + 'Services/Patients.svc/REST/PatientER_UpdatePresOrder'; +const INSERT_ER_INERT_PRES_ORDER = + 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; ///FindUs const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations'; @@ -108,13 +129,15 @@ const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations'; const GET_LIVECHAT_REQUEST = 'Services/Patients.svc/REST/GetPatientICProjects'; ///babyInformation -const GET_BABYINFORMATION_REQUEST = 'Services/Community.svc/REST/GetBabyByUserID'; +const GET_BABYINFORMATION_REQUEST = + 'Services/Community.svc/REST/GetBabyByUserID'; ///Get Baby By User ID const GET_BABY_BY_USER_ID = 'Services/Community.svc/REST/GetBabyByUserID'; ///userInformation -const GET_USERINFORMATION_REQUEST = 'Services/Community.svc/REST/GetUserInformation_New'; +const GET_USERINFORMATION_REQUEST = + 'Services/Community.svc/REST/GetUserInformation_New'; ///Update email const UPDATE_PATENT_EMAIL = 'Services/Patients.svc/REST/UpdatePateintEmail'; @@ -136,21 +159,29 @@ const GET_TABLE_REQUEST = 'Services/Community.svc/REST/CreateVaccinationTable'; const GET_CITIES_REQUEST = 'Services/Lists.svc/REST/GetAllCities'; ///BloodDetails -const GET_BLOOD_REQUEST = 'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails'; +const GET_BLOOD_REQUEST = + 'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails'; -const SAVE_BLOOD_REQUEST = 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; +const SAVE_BLOOD_REQUEST = + 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; -const GET_BLOOD_AGREEMENT = 'Services/PatientVarification.svc/REST/CheckUserAgreementForBloodDonation'; -const SAVE_BLOOD_AGREEMENT = 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; +const GET_BLOOD_AGREEMENT = + 'Services/PatientVarification.svc/REST/CheckUserAgreementForBloodDonation'; +const SAVE_BLOOD_AGREEMENT = + 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; ///Reports const REPORTS = 'Services/Doctors.svc/REST/GetPatientMedicalReportStatusInfo'; -const INSERT_REQUEST_FOR_MEDICAL_REPORT = 'Services/Doctors.svc/REST/InsertRequestForMedicalReport'; -const SEND_MEDICAL_REPORT_EMAIL = 'Services/Notifications.svc/REST/SendMedicalReportEmail'; +const INSERT_REQUEST_FOR_MEDICAL_REPORT = + 'Services/Doctors.svc/REST/InsertRequestForMedicalReport'; +const SEND_MEDICAL_REPORT_EMAIL = + 'Services/Notifications.svc/REST/SendMedicalReportEmail'; ///Rate -const IS_LAST_APPOITMENT_RATED = 'Services/Doctors.svc/REST/IsLastAppoitmentRated'; -const GET_APPOINTMENT_DETAILS_BY_NO = 'Services/MobileNotifications.svc/REST/GetAppointmentDetailsByApptNo'; +const IS_LAST_APPOITMENT_RATED = + 'Services/Doctors.svc/REST/IsLastAppoitmentRated'; +const GET_APPOINTMENT_DETAILS_BY_NO = + 'Services/MobileNotifications.svc/REST/GetAppointmentDetailsByApptNo'; const GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID'; @@ -162,7 +193,8 @@ const GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID'; const GET_CLINICS_LIST_URL = "Services/lists.svc/REST/GetClinicCentralized"; //URL to get active appointment list -const GET_ACTIVE_APPOINTMENTS_LIST_URL = "Services/Doctors.svc/Rest/Dr_GetAppointmentActiveNumber"; +const GET_ACTIVE_APPOINTMENTS_LIST_URL = + "Services/Doctors.svc/Rest/Dr_GetAppointmentActiveNumber"; //URL to get projects list const GET_PROJECTS_LIST = 'Services/Lists.svc/REST/GetProject'; @@ -171,85 +203,115 @@ const GET_PROJECTS_LIST = 'Services/Lists.svc/REST/GetProject'; const GET_DOCTORS_LIST_URL = "Services/Doctors.svc/REST/SearchDoctorsByTime"; //URL to dental doctors list -const GET_DENTAL_DOCTORS_LIST_URL = "Services/Doctors.svc/REST/Dental_DoctorChiefComplaintMapping"; +const GET_DENTAL_DOCTORS_LIST_URL = + "Services/Doctors.svc/REST/Dental_DoctorChiefComplaintMapping"; //URL to get doctor free slots const GET_DOCTOR_FREE_SLOTS = "Services/Doctors.svc/REST/GetDoctorFreeSlots"; //URL to insert appointment -const INSERT_SPECIFIC_APPOINTMENT = "Services/Doctors.svc/REST/InsertSpecificAppointment"; +const INSERT_SPECIFIC_APPOINTMENT = + "Services/Doctors.svc/REST/InsertSpecificAppointment"; //URL to get patient share -const GET_PATIENT_SHARE = "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNO"; +const GET_PATIENT_SHARE = + "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNO"; //URL to get patient appointment history -const GET_PATIENT_APPOINTMENT_HISTORY = "Services/Doctors.svc/REST/PateintHasAppoimentHistory"; +const GET_PATIENT_APPOINTMENT_HISTORY = + "Services/Doctors.svc/REST/PateintHasAppoimentHistory"; -const SEND_REPORT_EYE_EMAIL = "Services/Notifications.svc/REST/SendGlassesPrescriptionEmail"; +const SEND_REPORT_EYE_EMAIL = + "Services/Notifications.svc/REST/SendGlassesPrescriptionEmail"; -const SEND_CONTACT_LENS_PRESCRIPTION_EMAIL = "Services/Notifications.svc/REST/SendContactLensPrescriptionEmail"; +const SEND_CONTACT_LENS_PRESCRIPTION_EMAIL = + "Services/Notifications.svc/REST/SendContactLensPrescriptionEmail"; //URL to get patient appointment curfew history -const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = "Services/Doctors.svc/REST/AppoimentHistoryForCurfew"; +const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = + "Services/Doctors.svc/REST/AppoimentHistoryForCurfew"; //URL to confirm appointment -const CONFIRM_APPOINTMENT = "Services/MobileNotifications.svc/REST/ConfirmAppointment"; +const CONFIRM_APPOINTMENT = + "Services/MobileNotifications.svc/REST/ConfirmAppointment"; -const INSERT_VIDA_REQUEST = "Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart"; +const INSERT_VIDA_REQUEST = + "Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart"; //URL to cancel appointment const CANCEL_APPOINTMENT = "Services/Doctors.svc/REST/CancelAppointment"; //URL get appointment QR -const GENERATE_QR_APPOINTMENT = "Services/Doctors.svc/REST/GenerateQRAppointmentNo"; +const GENERATE_QR_APPOINTMENT = + "Services/Doctors.svc/REST/GenerateQRAppointmentNo"; //URL send email appointment QR -const EMAIL_QR_APPOINTMENT = "Services/Notifications.svc/REST/sendEmailForOnLineCheckin"; +const EMAIL_QR_APPOINTMENT = + "Services/Notifications.svc/REST/sendEmailForOnLineCheckin"; //URL check payment status -const CHECK_PAYMENT_STATUS = "Services/PayFort_Serv.svc/REST/GetRequestStatusByRequestID"; +const CHECK_PAYMENT_STATUS = + "Services/PayFort_Serv.svc/REST/GetRequestStatusByRequestID"; //URL create advance payment const CREATE_ADVANCE_PAYMENT = "Services/Doctors.svc/REST/CreateAdvancePayment"; -const HIS_CREATE_ADVANCE_PAYMENT = "Services/Patients.svc/REST/HIS_CreateAdvancePayment"; +const HIS_CREATE_ADVANCE_PAYMENT = + "Services/Patients.svc/REST/HIS_CreateAdvancePayment"; -const ADD_ADVANCE_NUMBER_REQUEST = 'Services/PayFort_Serv.svc/REST/AddAdvancedNumberRequest'; +const ADD_ADVANCE_NUMBER_REQUEST = + 'Services/PayFort_Serv.svc/REST/AddAdvancedNumberRequest'; -const IS_ALLOW_ASK_DOCTOR = 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; -const GET_CALL_REQUEST_TYPE = 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; -const ADD_VIDA_REQUEST = 'Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart'; +const IS_ALLOW_ASK_DOCTOR = + 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; +const GET_CALL_REQUEST_TYPE = + 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; +const ADD_VIDA_REQUEST = + 'Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart'; const SEND_CALL_REQUEST = 'Services/Doctors.svc/REST/InsertCallInfo'; -const GET_LIVECARE_CLINICS = 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinics'; +const GET_LIVECARE_CLINICS = + 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinics'; -const GET_LIVECARE_SCHEDULE_CLINICS = 'Services/Doctors.svc/REST/PatientER_GetClinicsHaveSchedule'; +const GET_LIVECARE_SCHEDULE_CLINICS = + 'Services/Doctors.svc/REST/PatientER_GetClinicsHaveSchedule'; -const GET_LIVECARE_SCHEDULE_CLINIC_DOCTOR_LIST = 'Services/Doctors.svc/REST/PatientER_GetDoctorByClinicID'; +const GET_LIVECARE_SCHEDULE_CLINIC_DOCTOR_LIST = + 'Services/Doctors.svc/REST/PatientER_GetDoctorByClinicID'; -const GET_LIVECARE_SCHEDULE_DOCTOR_TIME_SLOTS = 'Services/Doctors.svc/REST/PatientER_GetDoctorFreeSlots'; +const GET_LIVECARE_SCHEDULE_DOCTOR_TIME_SLOTS = + 'Services/Doctors.svc/REST/PatientER_GetDoctorFreeSlots'; -const INSERT_LIVECARE_SCHEDULE_APPOINTMENT = 'Services/Doctors.svc/REST/InsertSpecificAppoitmentForSchedule'; +const INSERT_LIVECARE_SCHEDULE_APPOINTMENT = + 'Services/Doctors.svc/REST/InsertSpecificAppoitmentForSchedule'; const GET_PATIENT_SHARE_LIVECARE = "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNOForLiveCare"; -const GET_LIVECARE_CLINIC_TIMING = 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinicsServiceTimingsSchedule'; +const GET_LIVECARE_CLINIC_TIMING = + 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinicsServiceTimingsSchedule'; -const GET_ER_APPOINTMENT_FEES = 'Services/DoctorApplication.svc/REST/GetERAppointmentFees'; +const GET_ER_APPOINTMENT_FEES = + 'Services/DoctorApplication.svc/REST/GetERAppointmentFees'; const GET_ER_APPOINTMENT_TIME = 'Services/ER_VirtualCall.svc/REST/GetRestTime'; -const ADD_NEW_CALL_FOR_PATIENT_ER = 'Services/DoctorApplication.svc/REST/NewCallForPatientER'; +const ADD_NEW_CALL_FOR_PATIENT_ER = + 'Services/DoctorApplication.svc/REST/NewCallForPatientER'; -const GET_LIVECARE_HISTORY = 'Services/ER_VirtualCall.svc/REST/GetPatientErVirtualHistory'; -const CANCEL_LIVECARE_REQUEST = 'Services/ER_VirtualCall.svc/REST/DeleteErRequest'; -const SEND_LIVECARE_INVOICE_EMAIL = 'Services/Notifications.svc/REST/SendInvoiceForLiveCare'; +const GET_LIVECARE_HISTORY = + 'Services/ER_VirtualCall.svc/REST/GetPatientErVirtualHistory'; +const CANCEL_LIVECARE_REQUEST = + 'Services/ER_VirtualCall.svc/REST/DeleteErRequest'; +const SEND_LIVECARE_INVOICE_EMAIL = + 'Services/Notifications.svc/REST/SendInvoiceForLiveCare'; const GET_USER_TERMS = 'Services/Patients.svc/REST/GetUserTermsAndConditions'; -const UPDATE_HEALTH_TERMS = 'services/Patients.svc/REST/UpdatePateintHealthSummaryReport'; +const UPDATE_HEALTH_TERMS = + 'services/Patients.svc/REST/UpdatePateintHealthSummaryReport'; -const GET_PATIENT_HEALTH_STATS = 'Services/Patients.svc/REST/Med_GetTransactionsSts'; +const GET_PATIENT_HEALTH_STATS = + 'Services/Patients.svc/REST/Med_GetTransactionsSts'; //URL to get medicine and pharmacies list const CHANNEL = 3; @@ -270,16 +332,21 @@ var DeviceTypeID = Platform.isIOS ? 1 : 2; const LANGUAGE_ID = 2; const GET_PHARMCY_ITEMS = "Services/Lists.svc/REST/GetPharmcyItems_Region"; const GET_PHARMACY_LIST = "Services/Patients.svc/REST/GetPharmcyList"; -const GET_PAtIENTS_INSURANCE = "Services/Patients.svc/REST/Get_PatientInsuranceDetails"; -const GET_PAtIENTS_INSURANCE_UPDATED = "Services/Patients.svc/REST/PatientER_GetPatientInsuranceCardUpdateHistory"; +const GET_PAtIENTS_INSURANCE = + "Services/Patients.svc/REST/Get_PatientInsuranceDetails"; +const GET_PAtIENTS_INSURANCE_UPDATED = + "Services/Patients.svc/REST/PatientER_GetPatientInsuranceCardUpdateHistory"; const INSURANCE_DETAILS = "Services/Patients.svc/REST/Get_InsuranceCheckList"; -const GET_PATIENT_INSURANCE_DETAILS = "Services/Patients.svc/REST/PatientER_GetPatientInsuranceDetails"; -const UPLOAD_INSURANCE_CARD = 'Services/Patients.svc/REST/PatientER_PatientInfoForInsuranceCardUpdate'; +const GET_PATIENT_INSURANCE_DETAILS = + "Services/Patients.svc/REST/PatientER_GetPatientInsuranceDetails"; +const UPLOAD_INSURANCE_CARD = + 'Services/Patients.svc/REST/PatientER_PatientInfoForInsuranceCardUpdate'; const GET_VACCINES = "Services/Patients.svc/REST/GetDoneVaccinesByPatientID"; const GET_VACCINES_EMAIL = "Services/Notifications.svc/REST/SendVaccinesEmail"; -const GET_PAtIENTS_INSURANCE_APPROVALS = "Services/Patients.svc/REST/GetApprovalStatus"; +const GET_PAtIENTS_INSURANCE_APPROVALS = + "Services/Patients.svc/REST/GetApprovalStatus"; const SEARCH_BOT = 'HabibiChatBotApi/BotInterface/GetVoiceCommandResponse'; const GET_VACCINATIONS_ITEMS = "/Services/ERP.svc/REST/GET_VACCINATIONS_ITEMS"; @@ -289,54 +356,81 @@ const GET_PATIENT_SICK_LEAVE = 'Services/Patients.svc/REST/GetPatientSickLeave'; const SendSickLeaveEmail = 'Services/Notifications.svc/REST/SendSickLeaveEmail'; -const GET_PATIENT_AdVANCE_BALANCE_AMOUNT = 'Services/Patients.svc/REST/GetPatientAdvanceBalanceAmount'; -const GET_PATIENT_INFO_BY_ID = 'Services/Doctors.svc/REST/GetPatientInfoByPatientID'; +const GET_PATIENT_AdVANCE_BALANCE_AMOUNT = + 'Services/Patients.svc/REST/GetPatientAdvanceBalanceAmount'; +const GET_PATIENT_INFO_BY_ID = + 'Services/Doctors.svc/REST/GetPatientInfoByPatientID'; const GET_PATIENT_INFO_BY_ID_AND_MOBILE_NUMBER = 'Services/Patients.svc/REST/AP_GetPatientInfoByPatientIDandMobileNumber'; -const SEND_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/REST/SendActivationCodeForAdvancePayment'; +const SEND_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = + 'Services/Authentication.svc/REST/SendActivationCodeForAdvancePayment'; const CHECK_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/REST/CheckActivationCodeForAdvancePayment'; -const GET_COVID_DRIVETHRU_PROJECT_LIST = 'Services/Doctors.svc/REST/COVID19_ProjectDriveThroughTestingCenter'; +const GET_COVID_DRIVETHRU_PROJECT_LIST = + 'Services/Doctors.svc/REST/COVID19_ProjectDriveThroughTestingCenter'; -const GET_COVID_DRIVETHRU_PAYMENT_INFO = 'Services/Doctors.svc/REST/COVID19_GetPatientPaymentInormation'; +const GET_COVID_DRIVETHRU_PAYMENT_INFO = + 'Services/Doctors.svc/REST/COVID19_GetPatientPaymentInormation'; -const GET_COVID_DRIVETHRU_FREE_SLOTS = 'Services/Doctors.svc/REST/COVID19_GetFreeSlots'; +const GET_COVID_DRIVETHRU_FREE_SLOTS = + 'Services/Doctors.svc/REST/COVID19_GetFreeSlots'; ///Smartwatch Integration Services -const GET_PATIENT_LAST_RECORD = 'Services/Patients.svc/REST/Med_GetPatientLastRecord'; +const GET_PATIENT_LAST_RECORD = + 'Services/Patients.svc/REST/Med_GetPatientLastRecord'; ///My Trackers -const GET_DIABETIC_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage'; -const GET_DIABTEC_RESULT = 'Services/Patients.svc/REST/Patient_GetDiabtecResults'; -const ADD_DIABTEC_RESULT = 'Services/Patients.svc/REST/Patient_AddDiabtecResult'; - -const GET_BLOOD_PRESSURE_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage'; -const GET_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_GetBloodPressureResult'; -const ADD_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_AddBloodPressureResult'; - -const GET_WEIGHT_PRESSURE_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage'; -const GET_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResult'; -const ADD_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_AddWeightMeasurementResult'; +const GET_DIABETIC_RESULT_AVERAGE = + 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage'; +const GET_DIABTEC_RESULT = + 'Services/Patients.svc/REST/Patient_GetDiabtecResults'; +const ADD_DIABTEC_RESULT = + 'Services/Patients.svc/REST/Patient_AddDiabtecResult'; + +const GET_BLOOD_PRESSURE_RESULT_AVERAGE = + 'Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage'; +const GET_BLOOD_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_GetBloodPressureResult'; +const ADD_BLOOD_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_AddBloodPressureResult'; + +const GET_WEIGHT_PRESSURE_RESULT_AVERAGE = + 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage'; +const GET_WEIGHT_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResult'; +const ADD_WEIGHT_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_AddWeightMeasurementResult'; const ADD_ACTIVE_PRESCRIPTIONS_REPORT_BY_PATIENT_ID = 'Services/Patients.svc/Rest/GetActivePrescriptionReportByPatientID'; -const GET_CALL_INFO_HOURS_RESULT = 'Services/Doctors.svc/REST/GetCallInfoHoursResult'; -const GET_CALL_REQUEST_TYPE_LOV = 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; - -const UPDATE_DIABETIC_RESULT = 'Services/Patients.svc/REST/Patient_UpdateDiabeticResult'; - -const SEND_AVERAGE_BLOOD_SUGAR_REPORT = 'Services/Notifications.svc/REST/SendAverageBloodSugarReport'; -const DEACTIVATE_DIABETIC_STATUS = 'services/Patients.svc/REST/Patient_DeactivateDiabeticStatus'; -const DEACTIVATE_BLOOD_PRESSURES_STATUS = 'services/Patients.svc/REST/Patient_DeactivateBloodPressureStatus'; - -const UPDATE_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_UpdateBloodPressureResult'; -const SEND_AVERAGE_BLOOD_WEIGHT_REPORT = 'Services/Notifications.svc/REST/SendAverageBodyWeightReport'; -const SEND_AVERAGE_BLOOD_PRESSURE_REPORT = 'Services/Notifications.svc/REST/SendAverageBloodPressureReport'; - -const UPDATE_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_UpdateWeightMeasurementResult'; -const DEACTIVATE_WEIGHT_PRESSURE_RESULT = 'services/Patients.svc/REST/Patient_DeactivateWeightMeasurementStatus'; +const GET_CALL_INFO_HOURS_RESULT = + 'Services/Doctors.svc/REST/GetCallInfoHoursResult'; +const GET_CALL_REQUEST_TYPE_LOV = + 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; + +const UPDATE_DIABETIC_RESULT = + 'Services/Patients.svc/REST/Patient_UpdateDiabeticResult'; + +const SEND_AVERAGE_BLOOD_SUGAR_REPORT = + 'Services/Notifications.svc/REST/SendAverageBloodSugarReport'; +const DEACTIVATE_DIABETIC_STATUS = + 'services/Patients.svc/REST/Patient_DeactivateDiabeticStatus'; +const DEACTIVATE_BLOOD_PRESSURES_STATUS = + 'services/Patients.svc/REST/Patient_DeactivateBloodPressureStatus'; + +const UPDATE_BLOOD_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_UpdateBloodPressureResult'; +const SEND_AVERAGE_BLOOD_WEIGHT_REPORT = + 'Services/Notifications.svc/REST/SendAverageBodyWeightReport'; +const SEND_AVERAGE_BLOOD_PRESSURE_REPORT = + 'Services/Notifications.svc/REST/SendAverageBloodPressureReport'; + +const UPDATE_WEIGHT_PRESSURE_RESULT = + 'Services/Patients.svc/REST/Patient_UpdateWeightMeasurementResult'; +const DEACTIVATE_WEIGHT_PRESSURE_RESULT = + 'services/Patients.svc/REST/Patient_DeactivateWeightMeasurementStatus'; const GET_DOCTOR_RESPONSE = 'Services/Patients.svc/REST/GetDoctorResponse'; const UPDATE_READ_STATUS = 'Services/Patients.svc/REST/UpdateReadStatus'; const INSERT_CALL_INFO = 'Services/Doctors.svc/REST/InsertCallInfo'; @@ -344,25 +438,35 @@ const INSERT_CALL_INFO = 'Services/Doctors.svc/REST/InsertCallInfo'; const GET_PATIENT_ALLERGIES = 'Services/Patients.svc/REST/GetPatientAllergies'; // H2O -const H2O_GET_USER_PROGRESS = "Services/H2ORemainder.svc/REST/H2O_GetUserProgress"; -const H2O_INSERT_USER_ACTIVITY = "Services/H2ORemainder.svc/REST/H2O_InsertUserActivity"; -const H2O_GET_USER_DETAIL = "Services/H2ORemainder.svc/REST/H2O_GetUserDetails_New"; -const H2O_UPDATE_USER_DETAIL = "Services/H2ORemainder.svc/REST/H2O_UpdateUserDetails_New"; -const H2O_UNDO_USER_ACTIVITY = "Services/H2ORemainder.svc/REST/H2o_UndoUserActivity"; +const H2O_GET_USER_PROGRESS = + "Services/H2ORemainder.svc/REST/H2O_GetUserProgress"; +const H2O_INSERT_USER_ACTIVITY = + "Services/H2ORemainder.svc/REST/H2O_InsertUserActivity"; +const H2O_GET_USER_DETAIL = + "Services/H2ORemainder.svc/REST/H2O_GetUserDetails_New"; +const H2O_UPDATE_USER_DETAIL = + "Services/H2ORemainder.svc/REST/H2O_UpdateUserDetails_New"; +const H2O_UNDO_USER_ACTIVITY = + "Services/H2ORemainder.svc/REST/H2o_UndoUserActivity"; //E_Referral Services -const GET_ALL_RELATIONSHIP_TYPES = "Services/Patients.svc/REST/GetAllRelationshipTypes"; -const SEND_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/SendActivationCodeForEReferral'; -const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral'; +const GET_ALL_RELATIONSHIP_TYPES = + "Services/Patients.svc/REST/GetAllRelationshipTypes"; +const SEND_ACTIVATION_CODE_FOR_E_REFERRAL = + 'Services/Authentication.svc/REST/SendActivationCodeForEReferral'; +const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL = + 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral'; const GET_ALL_CITIES = 'services/Lists.svc/rest/GetAllCities'; const CREATE_E_REFERRAL = "Services/Patients.svc/REST/CreateEReferral"; const GET_E_REFERRALS = "Services/Patients.svc/REST/GetEReferrals"; // Encillary Orders -const GET_ANCILLARY_ORDERS = 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderList'; +const GET_ANCILLARY_ORDERS = + 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderList'; -const GET_ANCILLARY_ORDERS_DETAILS = 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderProcList'; +const GET_ANCILLARY_ORDERS_DETAILS = + 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderProcList'; //Pharmacy wishlist // const GET_WISHLIST = "http://swd-pharapp-01:7200/api/shopping_cart_items/"; @@ -392,34 +496,50 @@ const GET_SHIPPING_OPTIONS = "get_shipping_option/"; const DELETE_SHOPPING_CART = "delete_shopping_cart_items/"; const DELETE_SHOPPING_CART_ALL = "delete_shopping_cart_item_by_customer/"; const ORDER_SHOPPING_CART = "orders"; -const GET_LACUM_ACCOUNT_INFORMATION = "Services/Patients.svc/REST/GetLakumAccountInformation"; -const GET_LACUM_GROUP_INFORMATION = "Services/Patients.svc/REST/GetlakumInQueryInfoGrouping"; -const LACUM_ACCOUNT_ACTIVATE = "Services/Patients.svc/REST/LakumAccountActivation"; -const LACUM_ACCOUNT_DEACTIVATE = "Services/Patients.svc/REST/LakumAccountDeactivation"; -const CREATE_LAKUM_ACCOUNT = "Services/Patients.svc/REST/PHR_CreateLakumAccount"; -const TRANSFER_YAHALA_LOYALITY_POINTS = "Services/Patients.svc/REST/TransferYaHalaLoyaltyPoints"; -const LAKUM_GET_USER_TERMS_AND_CONDITIONS = "Services/ERP.svc/REST/GetUserTermsAndConditionsForEPharmcy"; +const GET_LACUM_ACCOUNT_INFORMATION = + "Services/Patients.svc/REST/GetLakumAccountInformation"; +const GET_LACUM_GROUP_INFORMATION = + "Services/Patients.svc/REST/GetlakumInQueryInfoGrouping"; +const LACUM_ACCOUNT_ACTIVATE = + "Services/Patients.svc/REST/LakumAccountActivation"; +const LACUM_ACCOUNT_DEACTIVATE = + "Services/Patients.svc/REST/LakumAccountDeactivation"; +const CREATE_LAKUM_ACCOUNT = + "Services/Patients.svc/REST/PHR_CreateLakumAccount"; +const TRANSFER_YAHALA_LOYALITY_POINTS = + "Services/Patients.svc/REST/TransferYaHalaLoyaltyPoints"; +const LAKUM_GET_USER_TERMS_AND_CONDITIONS = + "Services/ERP.svc/REST/GetUserTermsAndConditionsForEPharmcy"; const PRESCRIPTION = 'Services/Patients.svc/REST/GetPrescriptionApptList'; const GET_RECOMMENDED_PRODUCT = 'alsoProduct/'; const GET_MOST_VIEWED_PRODUCTS = "mostview?"; const GET_NEW_PRODUCTS = "newproducts?"; // Home Health Care -const HHC_GET_ALL_SERVICES = "Services/Patients.svc/REST/PatientER_HHC_GetAllServices"; -const HHC_GET_ALL_CMC_SERVICES = "Services/Patients.svc/REST/PatientER_CMC_GetAllServices"; -const PATIENT_ER_UPDATE_PRES_ORDER = "Services/Patients.svc/REST/PatientER_UpdatePresOrder"; -const GET_ORDER_DETAIL_BY_ID = "Services/Patients.svc/REST/PatientER_HHC_GetTransactionsForOrder"; -const GET_CMC_ORDER_DETAIL_BY_ID = "Services/Patients.svc/REST/PatientER_CMC_GetTransactionsForOrder"; +const HHC_GET_ALL_SERVICES = + "Services/Patients.svc/REST/PatientER_HHC_GetAllServices"; +const HHC_GET_ALL_CMC_SERVICES = + "Services/Patients.svc/REST/PatientER_CMC_GetAllServices"; +const PATIENT_ER_UPDATE_PRES_ORDER = + "Services/Patients.svc/REST/PatientER_UpdatePresOrder"; +const GET_ORDER_DETAIL_BY_ID = + "Services/Patients.svc/REST/PatientER_HHC_GetTransactionsForOrder"; +const GET_CMC_ORDER_DETAIL_BY_ID = + "Services/Patients.svc/REST/PatientER_CMC_GetTransactionsForOrder"; const GET_CHECK_UP_ITEMS = "Services/Patients.svc/REST/GetCheckUpItems"; const PUSH_NOTIFICATION_GET_ALL_NOTIFICATIONS = 'Services/MobileNotifications.svc/REST/PushNotification_GetAllNotifications'; const PUSH_NOTIFICATION_SET_MESSAGES_FROM_POOL_AS_READ = 'Services/MobileNotifications.svc/REST/PushNotification_SetMessagesFromPoolAsRead'; -const GET_PATIENT_ALL_PRES_ORD = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const PATIENT_ER_INSERT_PRES_ORDER = 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; +const GET_PATIENT_ALL_PRES_ORD = + 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const PATIENT_ER_INSERT_PRES_ORDER = + 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; const PHARMACY_MAKE_REVIEW = 'epharmacy/api/insertreviews'; -const BLOOD_DONATION_REGISTER_BLOOD_TYPE = 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; -const ADD_USER_AGREEMENT_FOR_BLOOD_DONATION = 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; +const BLOOD_DONATION_REGISTER_BLOOD_TYPE = + 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; +const ADD_USER_AGREEMENT_FOR_BLOOD_DONATION = + 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; //Pharmacy wishlist const GET_WISHLIST = "shopping_cart_items/"; @@ -452,7 +572,8 @@ const GET_SUB_PRODUCTS = 'products?categoryid='; const GET_FINAL_PRODUCTS = 'products?fields=id,reviews,discount_ids,name,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage&CategoryId='; const GET_CLINIC_CATEGORY = 'Services/Doctors.svc/REST/DP_GetClinicCategory'; -const GET_DISEASE_BY_CLINIC_ID = 'Services/Doctors.svc/REST/DP_GetDiseasesByClinicID'; +const GET_DISEASE_BY_CLINIC_ID = + 'Services/Doctors.svc/REST/DP_GetDiseasesByClinicID'; const SEARCH_DOCTOR_BY_TIME = 'Services/Doctors.svc/REST/SearchDoctorsByTime'; const TIMER_MIN = 10; @@ -468,7 +589,8 @@ const SCAN_QR_CODE = 'productbysku/'; const FILTERED_PRODUCTS = 'products?categoryids='; -const GET_DOCTOR_LIST_CALCULATION = "Services/Doctors.svc/REST/GetCallculationDoctors"; +const GET_DOCTOR_LIST_CALCULATION = + "Services/Doctors.svc/REST/GetCallculationDoctors"; const GET_DOCTOR_LIST_BY_TIME = "Services/Doctors.svc/REST/SearchDoctorsByTime"; diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index b7670c0e..eaa99a9e 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -2017,5 +2017,33 @@ const Map localizedValues = { "ar": "علاقة الطالب" }, "newReferral": {"en": "New Referral", "ar": "إحالة جديدة"}, - "searchForReferrals": {"en": "Search For Referrals", "ar": "ابحث عن الإحالات"} + "searchForReferrals": { + "en": "Search For Referrals", + "ar": "ابحث عن الإحالات" + }, + + "online-consultation": {"en": "Online Consultation", "ar": "استشارة مباشرة"}, + "expected-weiting": { + "en": "Waiting time to start LiveCare consultation ", + "ar": "وقت الانتظار المتوقع لبدء استشارة لايف كير" + }, + "er-consult-fee": {"en": "Consultation Fee", "ar": "رسوم الاستشارة"}, + "insured-patient": { + "en": + "If you're Insurance patient, you have only have to pay the co-payment", + "ar": "إذا كنت مريضًا في مجال التأمين ، فليس عليك سوى دفع المبلغ المشترك" + }, + "i-accept-terms": { + "en": "I Accept the Terms And Conditions", + "ar": "أوافق على الشروط والأحكام" + }, + "upcoming-pay-options": { + "en": "You can pay by the following Options:", + "ar": "يمكنك الدفع عن طريق الخيارات التالية:" + }, + + "please-accept-terms": { + "en": "Please accept terms & conditions to continue", + "ar": "يرجى قبول الشروط والأحكام للمتابعة" + }, }; diff --git a/lib/core/model/active_medications/ActivePrescriptionReport.dart b/lib/core/model/active_medications/ActivePrescriptionReport.dart index 866cb728..1917a6c8 100644 --- a/lib/core/model/active_medications/ActivePrescriptionReport.dart +++ b/lib/core/model/active_medications/ActivePrescriptionReport.dart @@ -23,7 +23,7 @@ class ActivePrescriptionReport { dynamic patientName; dynamic phoneOffice1; dynamic prescriptionQR; - int prescriptionTimes; + double prescriptionTimes; dynamic productImage; String productImageBase64; String productImageString; diff --git a/lib/core/model/prescriptions/prescription_report.dart b/lib/core/model/prescriptions/prescription_report.dart index 8c18df62..5545b25b 100644 --- a/lib/core/model/prescriptions/prescription_report.dart +++ b/lib/core/model/prescriptions/prescription_report.dart @@ -134,7 +134,7 @@ class PrescriptionReport { frequencyID = json['frequencyID']; routeID = json['routeID']; name = json['name']; - itemDescriptionN = json['itemDescriptionN']; + itemDescriptionN = json['ItemDescriptionN']; routeN = json['routeN']; frequencyN = json['frequencyN']; } diff --git a/lib/core/model/prescriptions/prescription_report_enh.dart b/lib/core/model/prescriptions/prescription_report_enh.dart index 203eaaff..01a34c47 100644 --- a/lib/core/model/prescriptions/prescription_report_enh.dart +++ b/lib/core/model/prescriptions/prescription_report_enh.dart @@ -15,6 +15,7 @@ class PrescriptionReportEnh { String imageThumbUrl; String isCovered; String itemDescription; + String itemDescriptionN; int itemID; String orderDate; int patientID; @@ -35,38 +36,39 @@ class PrescriptionReportEnh { PrescriptionReportEnh( {this.address, - this.appointmentNo, - this.clinic, - this.companyName, - this.days, - this.doctorName, - this.doseDailyQuantity, - this.frequency, - this.frequencyNumber, - this.image, - this.imageExtension, - this.imageSRCUrl, - this.imageString, - this.imageThumbUrl, - this.isCovered, - this.itemDescription, - this.itemID, - this.orderDate, - this.patientID, - this.patientName, - this.phoneOffice1, - this.prescriptionQR, - this.prescriptionTimes, - this.productImage, - this.productImageBase64, - this.productImageString, - this.projectID, - this.projectName, - this.remarks, - this.route, - this.sKU, - this.scaleOffset, - this.startDate}); + this.appointmentNo, + this.clinic, + this.companyName, + this.days, + this.doctorName, + this.doseDailyQuantity, + this.frequency, + this.frequencyNumber, + this.image, + this.imageExtension, + this.imageSRCUrl, + this.imageString, + this.imageThumbUrl, + this.isCovered, + this.itemDescription, + this.itemDescriptionN, + this.itemID, + this.orderDate, + this.patientID, + this.patientName, + this.phoneOffice1, + this.prescriptionQR, + this.prescriptionTimes, + this.productImage, + this.productImageBase64, + this.productImageString, + this.projectID, + this.projectName, + this.remarks, + this.route, + this.sKU, + this.scaleOffset, + this.startDate}); PrescriptionReportEnh.fromJson(Map json) { address = json['Address']; @@ -85,6 +87,7 @@ class PrescriptionReportEnh { imageThumbUrl = json['ImageThumbUrl']; isCovered = json['IsCovered']; itemDescription = json['ItemDescription']; + itemDescriptionN = json['ItemDescriptionN']; itemID = json['ItemID']; orderDate = json['OrderDate']; patientID = json['PatientID']; @@ -122,6 +125,7 @@ class PrescriptionReportEnh { data['ImageThumbUrl'] = this.imageThumbUrl; data['IsCovered'] = this.isCovered; data['ItemDescription'] = this.itemDescription; + data['ItemDescriptionN'] = this.itemDescriptionN; data['ItemID'] = this.itemID; data['OrderDate'] = this.orderDate; data['PatientID'] = this.patientID; diff --git a/lib/core/model/prescriptions/prescription_report_inp.dart b/lib/core/model/prescriptions/prescription_report_inp.dart new file mode 100644 index 00000000..b802337b --- /dev/null +++ b/lib/core/model/prescriptions/prescription_report_inp.dart @@ -0,0 +1,124 @@ +class PrescriptionReportINP { + int patientID; + String patientName; + String patientAge; + String patientGender; + String address; + String phoneOffice; + String itemDescription; + int doseTimingID; + int frequencyID; + int routeID; + String clinic; + String doctorName; + String route; + String frequency; + String remarks; + String name; + int days; + String startDate; + String orderDate; + int doseDailyQuantity; + int itemID; + Null productImage; + String sKU; + String itemDescriptionN; + String routeN; + String frequencyN; + String imageSRCUrl; + String imageThumbUrl; + + PrescriptionReportINP( + {this.patientID, + this.patientName, + this.patientAge, + this.patientGender, + this.address, + this.phoneOffice, + this.itemDescription, + this.doseTimingID, + this.frequencyID, + this.routeID, + this.clinic, + this.doctorName, + this.route, + this.frequency, + this.remarks, + this.name, + this.days, + this.startDate, + this.orderDate, + this.doseDailyQuantity, + this.itemID, + this.productImage, + this.sKU, + this.itemDescriptionN, + this.routeN, + this.frequencyN, + this.imageSRCUrl, + this.imageThumbUrl}); + + PrescriptionReportINP.fromJson(Map json) { + patientID = json['PatientID']; + patientName = json['PatientName']; + patientAge = json['PatientAge']; + patientGender = json['PatientGender']; + address = json['Address']; + phoneOffice = json['PhoneOffice']; + itemDescription = json['ItemDescription']; + doseTimingID = json['DoseTimingID']; + frequencyID = json['FrequencyID']; + routeID = json['RouteID']; + clinic = json['Clinic']; + doctorName = json['DoctorName']; + route = json['Route']; + frequency = json['Frequency']; + remarks = json['Remarks']; + name = json['Name']; + days = json['Days']; + startDate = json['StartDate']; + orderDate = json['OrderDate']; + doseDailyQuantity = json['DoseDailyQuantity']; + itemID = json['ItemID']; + productImage = json['ProductImage']; + sKU = json['SKU']; + itemDescriptionN = json['ItemDescriptionN']; + routeN = json['RouteN']; + frequencyN = json['FrequencyN']; + imageSRCUrl = json['ImageSRCUrl']; + imageThumbUrl = json['ImageThumbUrl']; + } + + Map toJson() { + final Map data = new Map(); + data['PatientID'] = this.patientID; + data['PatientName'] = this.patientName; + data['PatientAge'] = this.patientAge; + data['PatientGender'] = this.patientGender; + data['Address'] = this.address; + data['PhoneOffice'] = this.phoneOffice; + data['ItemDescription'] = this.itemDescription; + data['DoseTimingID'] = this.doseTimingID; + data['FrequencyID'] = this.frequencyID; + data['RouteID'] = this.routeID; + data['Clinic'] = this.clinic; + data['DoctorName'] = this.doctorName; + data['Route'] = this.route; + data['Frequency'] = this.frequency; + data['Remarks'] = this.remarks; + data['Name'] = this.name; + data['Days'] = this.days; + data['StartDate'] = this.startDate; + data['OrderDate'] = this.orderDate; + data['DoseDailyQuantity'] = this.doseDailyQuantity; + data['ItemID'] = this.itemID; + data['ProductImage'] = this.productImage; + data['SKU'] = this.sKU; + data['ItemDescriptionN'] = this.itemDescriptionN; + data['RouteN'] = this.routeN; + data['FrequencyN'] = this.frequencyN; + data['ImageSRCUrl'] = this.imageSRCUrl; + data['ImageThumbUrl'] = this.imageThumbUrl; + return data; + } +} diff --git a/lib/core/model/prescriptions/request_send_prescription_email.dart b/lib/core/model/prescriptions/request_send_prescription_email.dart index 2d1f3aa3..ecd0f36d 100644 --- a/lib/core/model/prescriptions/request_send_prescription_email.dart +++ b/lib/core/model/prescriptions/request_send_prescription_email.dart @@ -23,6 +23,7 @@ class RequestSendPrescriptionEmail { String setupID; String clinicName; String doctorName; + int doctorID; int projectID; List listPrescriptions; @@ -49,7 +50,8 @@ class RequestSendPrescriptionEmail { this.setupID, this.clinicName, this.doctorName, - this.projectID}); + this.projectID, + this.doctorID}); RequestSendPrescriptionEmail.fromJson(Map json) { appointmentDate = json['AppointmentDate']; @@ -75,6 +77,7 @@ class RequestSendPrescriptionEmail { clinicName = json['ClinicName']; doctorName = json['DoctorName']; projectID = json['ProjectID']; + doctorID = json['DoctorID']; } Map toJson() { @@ -106,7 +109,7 @@ class RequestSendPrescriptionEmail { data['ClinicName'] = this.clinicName; data['DoctorName'] = this.doctorName; data['ProjectID'] = this.projectID; - + data['DoctorID'] = this.doctorID; return data; } } diff --git a/lib/core/service/medical/prescriptions_service.dart b/lib/core/service/medical/prescriptions_service.dart index e9741a7f..af34f2ba 100644 --- a/lib/core/service/medical/prescriptions_service.dart +++ b/lib/core/service/medical/prescriptions_service.dart @@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/Prescriptions.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/perscription_pharmacy.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart'; +import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report_inp.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report_enh.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/prescriptions_order.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/request_get_list_pharmacy_for_prescriptions.dart'; @@ -15,7 +16,7 @@ import 'package:flutter/cupertino.dart'; class PrescriptionsService extends BaseService { List prescriptionsList = List(); - + List prescriptionReportListINP = List(); List prescriptionsOrderList = List(); Future getPrescriptions() async { @@ -56,32 +57,40 @@ class PrescriptionsService extends BaseService { appointmentNo: 0, isDentalAllowedBackend: false); List prescriptionReportList = List(); - Future getPrescriptionReport( - {Prescriptions prescriptions}) async { + Future getPrescriptionReport({Prescriptions prescriptions}) async { hasError = false; - _requestPrescriptionReport.dischargeNo = prescriptions.dischargeNo; + if (prescriptions.isInOutPatient == false) { + _requestPrescriptionReport.dischargeNo = prescriptions.dischargeNo; + } else { + _requestPrescriptionReport.dischargeNo = 0; + } _requestPrescriptionReport.projectID = prescriptions.projectID; _requestPrescriptionReport.clinicID = prescriptions.clinicID; _requestPrescriptionReport.setupID = prescriptions.setupID; _requestPrescriptionReport.episodeID = prescriptions.episodeID; _requestPrescriptionReport.appointmentNo = prescriptions.appointmentNo; - await baseAppClient.post(prescriptions.isInOutPatient? GET_PRESCRIPTION_REPORT_ENH : GET_PRESCRIPTION_REPORT, + await baseAppClient.post( + prescriptions.isInOutPatient + ? GET_PRESCRIPTION_REPORT_ENH + : GET_PRESCRIPTION_REPORT, onSuccess: (dynamic response, int statusCode) { prescriptionReportList.clear(); prescriptionReportEnhList.clear(); - if(prescriptions.isInOutPatient){ + if (prescriptions.isInOutPatient) { response['ListPRM'].forEach((prescriptions) { - prescriptionReportList.add(PrescriptionReport.fromJson(prescriptions)); - prescriptionReportEnhList.add(PrescriptionReportEnh.fromJson(prescriptions)); + prescriptionReportList + .add(PrescriptionReport.fromJson(prescriptions)); + prescriptionReportEnhList + .add(PrescriptionReportEnh.fromJson(prescriptions)); }); - }else{ + } else { + prescriptionReportListINP.clear(); response['INP_GetPrescriptionReport_List'].forEach((prescriptions) { - prescriptionReportList.add(PrescriptionReport.fromJson(prescriptions)); + prescriptionReportListINP + .add(PrescriptionReportINP.fromJson(prescriptions)); }); } - - }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; @@ -90,35 +99,42 @@ class PrescriptionsService extends BaseService { RequestSendPrescriptionEmail _requestSendPrescriptionEmail = RequestSendPrescriptionEmail( - isDentalAllowedBackend: false,); + isDentalAllowedBackend: false, + ); Future sendPrescriptionEmail(String appointmentDate, int patientID, - String clinicName, String doctorName, int projectID) async { + String clinicName, String doctorName, int doctorID, int projectID) async { _requestSendPrescriptionEmail.listPrescriptions = prescriptionReportList; _requestSendPrescriptionEmail.appointmentDate = appointmentDate; _requestSendPrescriptionEmail.patientID = patientID; _requestSendPrescriptionEmail.clinicName = clinicName; _requestSendPrescriptionEmail.doctorName = doctorName; _requestSendPrescriptionEmail.projectID = projectID; - _requestSendPrescriptionEmail.to = user.emailAddress; - _requestSendPrescriptionEmail.dateofBirth = user.dateofBirth; - _requestSendPrescriptionEmail.patientIditificationNum = user.patientIdentificationNo; - _requestSendPrescriptionEmail.patientMobileNumber = user.mobileNumber; - _requestSendPrescriptionEmail.patientName = user.firstName +" "+ user.lastName; - _requestSendPrescriptionEmail.setupID = user.setupID; + _requestSendPrescriptionEmail.to = user.emailAddress; + _requestSendPrescriptionEmail.dateofBirth = user.dateofBirth; + _requestSendPrescriptionEmail.patientIditificationNum = + user.patientIdentificationNo; + _requestSendPrescriptionEmail.patientMobileNumber = user.mobileNumber; + _requestSendPrescriptionEmail.doctorID = doctorID; + _requestSendPrescriptionEmail.patientName = + user.firstName + " " + user.lastName; + _requestSendPrescriptionEmail.setupID = user.setupID; + _requestSendPrescriptionEmail.to = user.emailAddress; hasError = false; - await baseAppClient.post(SEND_PRESCRIPTION_EMAIL, onSuccess: (response, statusCode) {}, + await baseAppClient + .post(SEND_PRESCRIPTION_EMAIL, onSuccess: (response, statusCode) {}, onFailure: (String error, int statusCode) { hasError = true; super.error = error; }, body: _requestSendPrescriptionEmail.toJson()); } - RequestGetListPharmacyForPrescriptions requestGetListPharmacyForPrescriptions = RequestGetListPharmacyForPrescriptions( + RequestGetListPharmacyForPrescriptions + requestGetListPharmacyForPrescriptions = + RequestGetListPharmacyForPrescriptions( latitude: 0, longitude: 0, isDentalAllowedBackend: false, - ); List pharmacyPrescriptionsList = List(); @@ -139,18 +155,19 @@ class PrescriptionsService extends BaseService { } RequestPrescriptionReportEnh _requestPrescriptionReportEnh = - RequestPrescriptionReportEnh(isDentalAllowedBackend: false,); + RequestPrescriptionReportEnh( + isDentalAllowedBackend: false, + ); List prescriptionReportEnhList = List(); - Future getPrescriptionReportEnh({PrescriptionsOrder prescriptionsOrder}) async { - + Future getPrescriptionReportEnh( + {PrescriptionsOrder prescriptionsOrder}) async { ///This logic copy from the old app from class [order-history.component.ts] in line 45 bool isInPatient = false; prescriptionsList.forEach((element) { if (prescriptionsOrder.appointmentNo == "0") { if (element.dischargeNo == int.parse(prescriptionsOrder.dischargeID)) { - _requestPrescriptionReportEnh.appointmentNo = element.appointmentNo; _requestPrescriptionReportEnh.clinicID = element.clinicID; _requestPrescriptionReportEnh.projectID = element.projectID; @@ -160,46 +177,45 @@ class PrescriptionsService extends BaseService { isInPatient = element.isInOutPatient; } } else { - if (int.parse(prescriptionsOrder.appointmentNo) == element.appointmentNo) { + if (int.parse(prescriptionsOrder.appointmentNo) == + element.appointmentNo) { _requestPrescriptionReportEnh.appointmentNo = element.appointmentNo; _requestPrescriptionReportEnh.clinicID = element.clinicID; _requestPrescriptionReportEnh.projectID = element.projectID; _requestPrescriptionReportEnh.episodeID = element.episodeID; _requestPrescriptionReportEnh.setupID = element.setupID; _requestPrescriptionReportEnh.dischargeNo = element.dischargeNo; - isInPatient = element.isInOutPatient;///call inpGetPrescriptionReport + isInPatient = element.isInOutPatient; + + ///call inpGetPrescriptionReport } } }); hasError = false; - await baseAppClient.post(isInPatient? GET_PRESCRIPTION_REPORT_ENH : GET_PRESCRIPTION_REPORT, + await baseAppClient.post( + isInPatient ? GET_PRESCRIPTION_REPORT_ENH : GET_PRESCRIPTION_REPORT, onSuccess: (dynamic response, int statusCode) { prescriptionReportEnhList.clear(); - if(isInPatient){ + if (isInPatient) { response['ListPRM'].forEach((prescriptions) { - prescriptionReportEnhList.add(PrescriptionReportEnh.fromJson(prescriptions)); + prescriptionReportEnhList + .add(PrescriptionReportEnh.fromJson(prescriptions)); }); - }else{ + } else { response['INP_GetPrescriptionReport_List'].forEach((prescriptions) { - - PrescriptionReportEnh reportEnh = PrescriptionReportEnh.fromJson(prescriptions); - reportEnh.itemDescription = prescriptions['ItemDescriptionN']; + PrescriptionReportEnh reportEnh = + PrescriptionReportEnh.fromJson(prescriptions); + reportEnh.itemDescription = prescriptions['ItemDescriptionN']; prescriptionReportEnhList.add(reportEnh); - }); - } - - }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; }, body: _requestPrescriptionReportEnh.toJson()); - - } Future updatePressOrder({@required int presOrderID}) async { @@ -211,12 +227,10 @@ class PrescriptionsService extends BaseService { body['PresOrderStatus'] = 4; body['isDentalAllowedBackend'] = false; await baseAppClient.post(UPDATE_PRESS_ORDER, - onSuccess: (dynamic response, int statusCode) { - - }, onFailure: (String error, int statusCode) { - hasError = true; - super.error = error; - }, body: body); + onSuccess: (dynamic response, int statusCode) {}, + onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, body: body); } - } diff --git a/lib/core/viewModels/medical/prescriptions_view_model.dart b/lib/core/viewModels/medical/prescriptions_view_model.dart index 2c32a081..3ad9df99 100644 --- a/lib/core/viewModels/medical/prescriptions_view_model.dart +++ b/lib/core/viewModels/medical/prescriptions_view_model.dart @@ -4,7 +4,7 @@ import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_repor import 'package:diplomaticquarterapp/core/model/prescriptions/prescriptions_order.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:flutter/cupertino.dart'; - +import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report_inp.dart'; import '../../../core/enum/filter_type.dart'; import '../../../core/enum/viewstate.dart'; import '../../../core/model/prescriptions/Prescriptions.dart'; @@ -19,17 +19,20 @@ class PrescriptionsViewModel extends BaseViewModel { List _prescriptionsOrderListClinic = List(); List _prescriptionsOrderListHospital = List(); - List get prescriptionReportList => _prescriptionsService.prescriptionReportList; + List get prescriptionReportListINP => + _prescriptionsService.prescriptionReportListINP; + List get prescriptionsList => _prescriptionsService.prescriptionsList; - List get prescriptionsHistory => _prescriptionsService.prescriptionsOrderList; - - List get pharmacyPrescriptionsList => _prescriptionsService.pharmacyPrescriptionsList ; + List get prescriptionsHistory => + _prescriptionsService.prescriptionsOrderList; + List get pharmacyPrescriptionsList => + _prescriptionsService.pharmacyPrescriptionsList; List get prescriptionsOrderList => filterType == FilterType.Clinic @@ -105,7 +108,8 @@ class PrescriptionsViewModel extends BaseViewModel { getPrescriptionReport({Prescriptions prescriptions}) async { setState(ViewState.Busy); - await _prescriptionsService.getPrescriptionReport(prescriptions: prescriptions); + await _prescriptionsService.getPrescriptionReport( + prescriptions: prescriptions); if (_prescriptionsService.hasError) { error = _prescriptionsService.error; setState(ViewState.ErrorLocal); @@ -119,11 +123,12 @@ class PrescriptionsViewModel extends BaseViewModel { int patientID, String clinicName, String doctorName, - String mes, + int doctorID, + String mes, int projectID}) async { setState(ViewState.BusyLocal); - await _prescriptionsService.sendPrescriptionEmail( - appointmentDate, patientID, clinicName, doctorName, projectID); + await _prescriptionsService.sendPrescriptionEmail(appointmentDate, + patientID, clinicName, doctorName, doctorID, projectID); if (_prescriptionsService.hasError) { error = _prescriptionsService.error; setState(ViewState.ErrorLocal); @@ -145,12 +150,13 @@ class PrescriptionsViewModel extends BaseViewModel { } } - - List get prescriptionReportEnhList => _prescriptionsService.prescriptionReportEnhList; + List get prescriptionReportEnhList => + _prescriptionsService.prescriptionReportEnhList; getPrescriptionReportEnh({PrescriptionsOrder prescriptionsOrder}) async { setState(ViewState.Busy); - await _prescriptionsService.getPrescriptionReportEnh(prescriptionsOrder: prescriptionsOrder); + await _prescriptionsService.getPrescriptionReportEnh( + prescriptionsOrder: prescriptionsOrder); if (_prescriptionsService.hasError) { error = _prescriptionsService.error; setState(ViewState.Error); @@ -159,16 +165,14 @@ class PrescriptionsViewModel extends BaseViewModel { } } - - Future updatePressOrder({@required int presOrderID}) async { + Future updatePressOrder({@required int presOrderID}) async { setState(ViewState.Busy); await _prescriptionsService.updatePressOrder(presOrderID: presOrderID); if (_prescriptionsService.hasError) { error = _prescriptionsService.error; setState(ViewState.Error); } else { - await getPrescriptions(); + await getPrescriptions(); } } - } diff --git a/lib/models/Authentication/authenticated_user.dart b/lib/models/Authentication/authenticated_user.dart index 4c7974a3..eacba6a5 100644 --- a/lib/models/Authentication/authenticated_user.dart +++ b/lib/models/Authentication/authenticated_user.dart @@ -61,71 +61,72 @@ class AuthenticatedUser { dynamic tempAddress; dynamic zipCode; dynamic isFamily; + dynamic cRSVerificationStatus; // dynamic patientPayType; // dynamic patientType; // dynamic status; - AuthenticatedUser({ - this.setupID, - this.patientType, - this.patientID, - this.firstName, - this.middleName, - this.lastName, - this.firstNameN, - this.middleNameN, - this.lastNameN, - this.relationshipID, - this.gender, - this.dateofBirth, - this.dateofBirthN, - this.nationalityID, - this.phoneResi, - this.phoneOffice, - this.mobileNumber, - this.faxNumber, - this.emailAddress, - this.bloodGroup, - this.rHFactor, - this.isEmailAlertRequired, - this.isSMSAlertRequired, - this.preferredLanguage, - this.isPrivilegedMember, - this.memberID, - this.expiryDate, - this.isHmgEmployee, - this.employeeID, - this.emergencyContactName, - this.emergencyContactNo, - this.patientPayType, - this.dHCCPatientRefID, - this.isPatientDummy, - this.status, - this.isStatusCleared, - this.patientIdentificationType, - this.patientIdentificationNo, - this.projectID, - this.infoSourceID, - this.address, - this.age, - this.ageDesc, - this.areaID, - this.createdBy, - this.genderDescription, - this.iR, - this.iSOCityID, - this.iSOCountryID, - this.listPrivilege, - this.marital, - this.outSA, - this.pOBox, - this.receiveHealthSummaryReport, - this.sourceType, - this.strDateofBirth, - this.tempAddress, - this.zipCode, - this.isFamily - }); + AuthenticatedUser( + {this.setupID, + this.patientType, + this.patientID, + this.firstName, + this.middleName, + this.lastName, + this.firstNameN, + this.middleNameN, + this.lastNameN, + this.relationshipID, + this.gender, + this.dateofBirth, + this.dateofBirthN, + this.nationalityID, + this.phoneResi, + this.phoneOffice, + this.mobileNumber, + this.faxNumber, + this.emailAddress, + this.bloodGroup, + this.rHFactor, + this.isEmailAlertRequired, + this.isSMSAlertRequired, + this.preferredLanguage, + this.isPrivilegedMember, + this.memberID, + this.expiryDate, + this.isHmgEmployee, + this.employeeID, + this.emergencyContactName, + this.emergencyContactNo, + this.patientPayType, + this.dHCCPatientRefID, + this.isPatientDummy, + this.status, + this.isStatusCleared, + this.patientIdentificationType, + this.patientIdentificationNo, + this.projectID, + this.infoSourceID, + this.address, + this.age, + this.ageDesc, + this.areaID, + this.createdBy, + this.genderDescription, + this.iR, + this.iSOCityID, + this.iSOCountryID, + this.listPrivilege, + this.marital, + this.outSA, + this.pOBox, + this.receiveHealthSummaryReport, + this.sourceType, + this.strDateofBirth, + this.tempAddress, + this.zipCode, + this.isFamily, + this.cRSVerificationStatus}); AuthenticatedUser.fromJson(Map json) { setupID = json['SetupID']; @@ -193,6 +194,7 @@ class AuthenticatedUser { tempAddress = json['TempAddress']; zipCode = json['ZipCode']; isFamily = json['IsFamily']; + cRSVerificationStatus = json['CRSVerificationStatus']; } Map toJson() { @@ -259,6 +261,7 @@ class AuthenticatedUser { data['TempAddress'] = this.tempAddress; data['ZipCode'] = this.zipCode; data['IsFamily'] = this.isFamily; + data['CRSVerificationStatus'] = this.cRSVerificationStatus; return data; } } diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index fca9624c..a8e553be 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -19,6 +19,7 @@ import 'package:diplomaticquarterapp/widgets/others/floating_button_search.dart' import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:permission_handler/permission_handler.dart'; import 'package:speech_to_text/speech_recognition_error.dart'; import 'dart:convert'; import 'dart:io'; @@ -326,9 +327,9 @@ class _SendFeedbackPageState extends State { fontSize: 13.5, hintColor: Colors.black, fontWeight: FontWeight.w600, - onChanged: (v){setState(() { - - });}, + onChanged: (v) { + setState(() {}); + }, validator: (value) { if (value.isEmpty) return TranslationBase.of(context).emptySubject; @@ -349,11 +350,13 @@ class _SendFeedbackPageState extends State { controller: messageController, suffixIcon: Icons.mic, onSuffixTap: () { + requestPermissions(); + openSpeechReco(); }, - onChanged: (v){setState(() { - - });}, + onChanged: (v) { + setState(() {}); + }, validator: (value) { if (value.isEmpty) return TranslationBase.of(context).emptyMessage; @@ -437,7 +440,7 @@ class _SendFeedbackPageState extends State { ), ), bottomSheet: Container( - height: MediaQuery.of(context).size.height * 0.12, + height: 80, width: double.infinity, padding: EdgeInsets.all(15.0), child: Center( @@ -447,39 +450,37 @@ class _SendFeedbackPageState extends State { label: TranslationBase.of(context).send, textColor: Colors.white, disabled: (titleController.text.toString().isEmpty || - messageController.text.toString().isEmpty ), + messageController.text.toString().isEmpty), onTap: () { final form = formKey.currentState; if (form.validate()) { - - GifLoaderDialogUtils.showMyDialog(context); - model - .sendCOCItem( - title: titleController.text, - attachment: images.length > 0 ? images[0] : "", - details: messageController.text, - cOCTypeName: getCOCName(), - appointHistory: messageType == - MessageType.ComplaintOnAnAppointment - ? appointHistory - : null) - .then((value) { - if (value) { - setState(() { - titleController.text = ""; - messageController.text = ""; - images = []; - }); - setMessageType(MessageType.NON); - GifLoaderDialogUtils.hideDialog(context); - AppToast.showSuccessToast( - message: TranslationBase.of(context).yourFeedback); - } else { - AppToast.showErrorToast(message: model.error); - GifLoaderDialogUtils.hideDialog(context); - } - }); - + GifLoaderDialogUtils.showMyDialog(context); + model + .sendCOCItem( + title: titleController.text, + attachment: images.length > 0 ? images[0] : "", + details: messageController.text, + cOCTypeName: getCOCName(), + appointHistory: messageType == + MessageType.ComplaintOnAnAppointment + ? appointHistory + : null) + .then((value) { + if (value) { + setState(() { + titleController.text = ""; + messageController.text = ""; + images = []; + }); + setMessageType(MessageType.NON); + GifLoaderDialogUtils.hideDialog(context); + AppToast.showSuccessToast( + message: TranslationBase.of(context).yourFeedback); + } else { + AppToast.showErrorToast(message: model.error); + GifLoaderDialogUtils.hideDialog(context); + } + }); } }, ), @@ -544,7 +545,7 @@ class _SendFeedbackPageState extends State { if (available) { speech.listen( onResult: resultListener, - // listenMode: ListenMode.confirmation, + listenMode: stt.ListenMode.confirmation, localeId: _currentLocaleId == 'en' ? 'en-US' : 'ar-SA', ); } else { @@ -552,12 +553,23 @@ class _SendFeedbackPageState extends State { } } - void errorListener(SpeechRecognitionError error) {} + void errorListener(SpeechRecognitionError error) { + event.setValue({"searchText": 'null'}); + //SpeechToText.closeAlertDialog(context); + print(error); + } void statusListener(String status) { reconizedWord = status == 'listening' ? 'Lisening...' : 'Sorry....'; } + void requestPermissions() async { + Map statuses = await [ + Permission.microphone, + ].request(); + print(statuses); + } + void resultListener(result) { reconizedWord = result.recognizedWords; event.setValue({"searchText": reconizedWord}); @@ -565,10 +577,18 @@ class _SendFeedbackPageState extends State { if (result.finalResult == true) { setState(() { RoboSearch.closeAlertDialog(context); - messageController.text = reconizedWord; + speech.stop(); + messageController.text = reconizedWord + '\n'; }); } } + + Future initSpeechState() async { + bool hasSpeech = await speech.initialize( + onError: errorListener, onStatus: statusListener); + print(hasSpeech); + if (!mounted) return; + } } class FeedbackTypeDialog extends StatefulWidget { @@ -588,7 +608,6 @@ class FeedbackTypeDialogState extends State { setMessageDialogType(MessageType messageType) { setState(() { - messageTypeDialog = messageType; }); } diff --git a/lib/pages/feedback/status_feedback_page.dart b/lib/pages/feedback/status_feedback_page.dart index e37f3138..5b297e89 100644 --- a/lib/pages/feedback/status_feedback_page.dart +++ b/lib/pages/feedback/status_feedback_page.dart @@ -93,16 +93,24 @@ class _StatusFeedbackPageState extends State { child: Center( child: Column( children: [ - SizedBox(height: MediaQuery.of(context).size.height*0.4,), - Image.asset('assets/images/comments.png',width: 80,height: 80,), - SizedBox(height: 15,), + SizedBox( + height: MediaQuery.of(context).size.height * 0.4, + ), + Image.asset( + 'assets/images/comments.png', + width: 80, + height: 80, + ), + SizedBox( + height: 15, + ), Texts(TranslationBase.of(context).noSearchResult), ], ), ), ), bottomSheet: Container( - height: MediaQuery.of(context).size.height * 0.12, + height: 80, width: double.infinity, padding: EdgeInsets.all(15.0), child: Center( @@ -112,8 +120,7 @@ class _StatusFeedbackPageState extends State { label: TranslationBase.of(context).search, textColor: Colors.white, disabled: true, - onTap: () { - }, + onTap: () {}, ), ), ), diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index 62a7350c..88600929 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -44,7 +44,9 @@ class _HomePageState extends State { Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return BaseView( - onModelReady: (model) => model.getPatientRadOrders(), + onModelReady: (model) => () { + model.getPatientRadOrders(); + }, builder: (_, model, wi) => AppScaffold( isShowDecPage: false, isHelp: true, @@ -159,14 +161,14 @@ class _HomePageState extends State { child: Center( child: Center( child: Center( - child: Center( - child: Texts( - TranslationBase.of( - context) + child: + Center( + child: + Texts( + TranslationBase.of(context) .bookNow, fontWeight: - FontWeight - .w700, + FontWeight.w700, color: Colors .white, ), @@ -335,28 +337,76 @@ class _HomePageState extends State { SizedBox( height: 8, ), - Row( - children: [ - Texts( - model.user.firstName + - " " + - model.user.lastName, - color: Colors.grey[100], - bold: true, - fontSize: 15, - ), - Container( - margin: - EdgeInsets.fromLTRB( - 8.0, - 0.0, - 8.0, - 0.0), - child: SvgPicture.asset( - "assets/images/new-design/verification_check.svg"), - ), - ], - ), + model.user.cRSVerificationStatus == + 2 + ? Row( + children: [ + Texts( + model.user + .firstName + + " " + + model.user + .lastName, + color: Colors + .grey[100], + bold: true, + fontSize: 15, + ), + Container( + margin: EdgeInsets + .fromLTRB( + 8.0, + 0.0, + 8.0, + 0.0), + child: SvgPicture.asset( + "assets/images/new-design/verification_check.svg"), + ), + ], + ) + : model.user.cRSVerificationStatus == + 3 + ? Row( + children: [ + Texts( + model.user + .firstName + + " " + + model.user + .lastName, + color: Colors + .grey[100], + bold: true, + fontSize: 15, + ), + Container( + margin: EdgeInsets + .fromLTRB( + 8.0, + 0.0, + 8.0, + 0.0), + child: SvgPicture + .asset( + "assets/images/new-design/pending.svg"), + ), + ], + ) + : Row( + children: [ + Texts( + model.user + .firstName + + " " + + model.user + .lastName, + color: Colors + .grey[100], + bold: true, + fontSize: 15, + ), + ], + ), Texts( '${model.user.patientID}', color: Colors.white, @@ -434,7 +484,8 @@ class _HomePageState extends State { width: 25, height: 40, ), - Texts('${model.weightKg} ${TranslationBase.of(context).kg}', + Texts( + '${model.weightKg} ${TranslationBase.of(context).kg}', color: Colors.white, fontSize: 17) ], @@ -451,11 +502,9 @@ class _HomePageState extends State { width: 35, height: 40, ), - Texts( - '${model.booldType}', - color: Colors.white, - fontSize: 17 - ) + Texts('${model.booldType}', + color: Colors.white, + fontSize: 17) ], ), ), diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index c55b685b..35a248ae 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -66,6 +66,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { final FirebaseMessaging _firebaseMessaging = FirebaseMessaging(); final authService = new AuthProvider(); + var event = RobotProvider(); var familyFileProvider = family.FamilyFilesProvider(); @@ -401,6 +402,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { authService .selectDeviceImei(DEVICE_TOKEN) .then((SelectDeviceIMEIRES value) { + this.getNotificationCount(DEVICE_TOKEN); GifLoaderDialogUtils.hideDialog(context); if (value != null) { setUserValues(value); diff --git a/lib/pages/livecare/widgets/LiveCarePaymentDialog.dart b/lib/pages/livecare/widgets/LiveCarePaymentDialog.dart index e2dab5b0..c06c9464 100644 --- a/lib/pages/livecare/widgets/LiveCarePaymentDialog.dart +++ b/lib/pages/livecare/widgets/LiveCarePaymentDialog.dart @@ -9,7 +9,9 @@ class LiveCarePaymentDialog extends StatefulWidget { String clinicName; LiveCarePaymentDialog( - {@required this.getERAppointmentFeesList, @required this.waitingTime, @required this.clinicName}); + {@required this.getERAppointmentFeesList, + @required this.waitingTime, + @required this.clinicName}); @override _LiveCarePaymentDialogState createState() => _LiveCarePaymentDialogState(); @@ -32,14 +34,15 @@ class _LiveCarePaymentDialogState extends State { height: MediaQuery.of(context).size.height * 0.691, margin: EdgeInsets.all(20.0), width: 450.0, - child: Column( + child: SingleChildScrollView( + child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.max, children: [ Container( alignment: Alignment.center, margin: EdgeInsets.only(bottom: 10.0), - child: Text("Online Consultation", + child: Text(TranslationBase.of(context).onlineConsultation, textAlign: TextAlign.center, style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold)), @@ -52,7 +55,7 @@ class _LiveCarePaymentDialogState extends State { direction: Axis.horizontal, children: [ Expanded( - child: Text("Waiting time to start LiveCare consultation", + child: Text(TranslationBase.of(context).expectedWaiting, textAlign: TextAlign.end, style: TextStyle(fontSize: 13.0)), ), @@ -92,7 +95,7 @@ class _LiveCarePaymentDialogState extends State { alignment: Alignment.center, margin: EdgeInsets.only(top: 5.0), padding: EdgeInsets.all(5.0), - child: Text("Consultation fee", + child: Text(TranslationBase.of(context).erConsultFee, textAlign: TextAlign.center, style: TextStyle( fontSize: 14.0, @@ -155,8 +158,7 @@ class _LiveCarePaymentDialogState extends State { Container( margin: EdgeInsets.only(left: 10.0), width: MediaQuery.of(context).size.width * 0.55, - child: Text( - "If you're Insurance patient, you have only have to pay the co-payment", + child: Text(TranslationBase.of(context).insuredPatient, style: TextStyle(fontSize: 13.0)), ), ], @@ -175,7 +177,7 @@ class _LiveCarePaymentDialogState extends State { ), Container( child: new Text( - 'I Accept the Terms And Conditions', + TranslationBase.of(context).iAcceptTerms, style: new TextStyle(fontSize: 14.0), ), ), @@ -198,7 +200,7 @@ class _LiveCarePaymentDialogState extends State { alignment: Alignment.center, margin: EdgeInsets.only(top: 10.0), child: new Text( - 'You can pay by the following Options:', + TranslationBase.of(context).upComingPayOption, textAlign: TextAlign.center, style: new TextStyle(fontSize: 14.0), ), @@ -236,8 +238,10 @@ class _LiveCarePaymentDialogState extends State { Expanded( child: InkWell( onTap: () { - if(_selected == 0) { - AppToast.showErrorToast(message: "Please accept terms & conditions to continue"); + if (_selected == 0) { + AppToast.showErrorToast( + message: TranslationBase.of(context) + .pleaseAcceptTerms); } else { Navigator.pop(context, true); } @@ -255,7 +259,7 @@ class _LiveCarePaymentDialogState extends State { ), ), ], - ), + )), ), ), ); diff --git a/lib/pages/livecare/widgets/clinic_list.dart b/lib/pages/livecare/widgets/clinic_list.dart index 103066d5..ae7f1dca 100644 --- a/lib/pages/livecare/widgets/clinic_list.dart +++ b/lib/pages/livecare/widgets/clinic_list.dart @@ -535,7 +535,8 @@ class _clinic_listState extends State { isDataLoaded ? Container( height: MediaQuery.of(context).size.height * 0.7, - child: Column( + child: SingleChildScrollView( + child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( @@ -575,7 +576,7 @@ class _clinic_listState extends State { height: 10.0, ), ], - ), + )), ) : Container(), isDataLoaded @@ -584,7 +585,7 @@ class _clinic_listState extends State { child: Container( width: MediaQuery.of(context).size.width, height: 50.0, - margin: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0), + margin: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 20.0), child: ButtonTheme( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index 2ef8d0a2..561089ff 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -543,6 +543,7 @@ class _ConfirmLogin extends State { // sharedPref.setString( // BLOOD_TYPE, result['PatientBloodType']), authenticatedUserObject.user = result.list, + sharedPref.setObject(MAIN_USER, result.list), sharedPref.setObject(USER_PROFILE, result.list), loginTokenID = result.logInTokenID, diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index 927e98de..7f2877ee 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -266,6 +266,8 @@ class _Login extends State { appointmentRateViewModel.isLogin = true; projectViewModel.isLogin = true; authenticatedUserObject.user = result.list; + // authenticatedUserObject.user.cRSVerificationStatus = + // result['CRSVerificationStatus']; projectViewModel.user = authenticatedUserObject.user; await pharmacyModuleViewModel.generatePharmacyToken().then((value) async { diff --git a/lib/pages/login/register-info.dart b/lib/pages/login/register-info.dart index 548405f0..d28fea86 100644 --- a/lib/pages/login/register-info.dart +++ b/lib/pages/login/register-info.dart @@ -359,7 +359,8 @@ class _RegisterInfo extends State { "DateofBirth": DateUtil.convertISODateToJsonDate( registerInfo.dateOfBirth.replaceAll('/', '-')), "Gender": registerInfo.gender == 'M' ? 1 : 2, - "NationalityID": registerInfo.nationality, + "NationalityID": registerInfo.nationalityCode, + "eHealthIDField": registerInfo.healthId, "DateofBirthN": date, "EmailAddress": email, "SourceType": location, diff --git a/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart b/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart index 96227fba..8224e61d 100644 --- a/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart +++ b/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart @@ -10,92 +10,94 @@ import 'package:maps_launcher/maps_launcher.dart'; import 'package:url_launcher/url_launcher.dart'; class PharmacyForPrescriptionsPage extends StatelessWidget { - final PrescriptionReport prescriptionReport; + final itemID; - PharmacyForPrescriptionsPage({Key key, this.prescriptionReport}); + PharmacyForPrescriptionsPage({Key key, this.itemID}); @override Widget build(BuildContext context) { - return BaseView( - onModelReady: (model) => model.getListPharmacyForPrescriptions(itemId: prescriptionReport.itemID), - builder: (_, model, widget) => AppScaffold( - isShowAppBar: true, - appBarTitle: TranslationBase.of(context).availability, - baseViewModel: model, - body: ListView.builder( - itemBuilder: (context, index) => Container( - width: double.infinity, - margin: EdgeInsets.only(top: 10, left: 10, right: 10), - padding: EdgeInsets.all(8.0), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all( - Radius.circular(10.0), - ), - border: Border.all(color: Colors.grey[200], width: 0.5), + return BaseView( + onModelReady: (model) => + model.getListPharmacyForPrescriptions(itemId: itemID), + builder: (_, model, widget) => AppScaffold( + isShowAppBar: true, + appBarTitle: TranslationBase.of(context).availability, + baseViewModel: model, + body: ListView.builder( + itemBuilder: (context, index) => Container( + width: double.infinity, + margin: EdgeInsets.only(top: 10, left: 10, right: 10), + padding: EdgeInsets.all(8.0), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all( + Radius.circular(10.0), ), - child: Row( - children: [ - ClipRRect( - borderRadius: BorderRadius.all(Radius.circular(5)), - child: Image.network( - model.pharmacyPrescriptionsList[index].projectImageURL, - fit: BoxFit.cover, - width: 60, - height: 70, - ), + border: Border.all(color: Colors.grey[200], width: 0.5), + ), + child: Row( + children: [ + ClipRRect( + borderRadius: BorderRadius.all(Radius.circular(5)), + child: Image.network( + model.pharmacyPrescriptionsList[index].projectImageURL, + fit: BoxFit.cover, + width: 60, + height: 70, ), - Expanded( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Texts(model.pharmacyPrescriptionsList[index] - .locationDescription), - SizedBox( - height: 5, - ), - Texts(model.pharmacyPrescriptionsList[index].cityName), - ], - ), + ), + Expanded( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Texts(model.pharmacyPrescriptionsList[index] + .locationDescription), + SizedBox( + height: 5, + ), + Texts(model.pharmacyPrescriptionsList[index].cityName), + ], ), ), - InkWell( - onTap: () { - MapsLauncher.launchCoordinates( - double.parse( - model.pharmacyPrescriptionsList[index].latitude), - double.parse( - model.pharmacyPrescriptionsList[index].longitude)); - }, + ), + InkWell( + onTap: () { + MapsLauncher.launchCoordinates( + double.parse( + model.pharmacyPrescriptionsList[index].latitude), + double.parse( + model.pharmacyPrescriptionsList[index].longitude)); + }, + child: Icon( + Icons.pin_drop, + size: 18, + color: Colors.red[900], + ), + ), + SizedBox( + width: 15, + ), + InkWell( + onTap: Feedback.wrapForTap(() { + launch( + "tel://${model.pharmacyPrescriptionsList[index].phoneNumber}"); + }, context), + child: Container( child: Icon( - Icons.pin_drop, + Icons.call, size: 18, color: Colors.red[900], ), ), - SizedBox( - width: 15, - ), - InkWell( - onTap: Feedback.wrapForTap((){ - launch("tel://${model.pharmacyPrescriptionsList[index].phoneNumber}"); - },context), - child: Container( - child: Icon( - Icons.call, - size: 18, - color: Colors.red[900], - ), - ), - ) - ], - ), + ) + ], ), - itemCount: model.pharmacyPrescriptionsList.length, ), + itemCount: model.pharmacyPrescriptionsList.length, ), - ); + ), + ); } } diff --git a/lib/pages/medical/prescriptions/prescription_details_inp.dart b/lib/pages/medical/prescriptions/prescription_details_inp.dart new file mode 100644 index 00000000..91f4a4c6 --- /dev/null +++ b/lib/pages/medical/prescriptions/prescription_details_inp.dart @@ -0,0 +1,310 @@ +import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart'; +import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report_inp.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; +import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/reminder_dialog.dart'; +import 'package:diplomaticquarterapp/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; +import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class PrescriptionDetailsPageINP extends StatelessWidget { + final PrescriptionReportINP prescriptionReport; + + PrescriptionDetailsPageINP({Key key, this.prescriptionReport}); + + @override + Widget build(BuildContext context) { + return AppScaffold( + isShowAppBar: true, + appBarTitle: TranslationBase.of(context).prescriptions, + body: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: double.infinity, + margin: EdgeInsets.only(top: 10, left: 10, right: 10), + padding: EdgeInsets.all(8.0), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all( + Radius.circular(10.0), + ), + border: Border.all(color: Colors.grey[200], width: 0.5), + ), + child: Row( + children: [ + ClipRRect( + borderRadius: BorderRadius.all(Radius.circular(5)), + child: Image.network( + prescriptionReport.imageSRCUrl, + fit: BoxFit.cover, + width: 60, + height: 70, + ), + ), + Expanded( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Center( + child: Texts( + prescriptionReport.itemDescription.isNotEmpty + ? prescriptionReport.itemDescription + : prescriptionReport.itemDescriptionN ?? ''), + ), + ), + ) + ], + ), + ), + Container( + margin: EdgeInsets.all(8), + child: Row( + children: [ + Expanded( + child: InkWell( + onTap: () => Navigator.push( + context, + FadePage( + page: PharmacyForPrescriptionsPage( + itemID: prescriptionReport.itemID), + ), + ), + child: Center( + child: Column( + children: [ + Container( + width: 50, + decoration: BoxDecoration( + color: Colors.white, + shape: BoxShape.rectangle), + child: Column( + children: [ + Icon( + Icons.pin_drop, + color: Colors.red[800], + size: 55, + ), + ], + ), + ), + SizedBox( + height: 5, + ), + Texts(TranslationBase.of(context).availability) + ], + ), + )), + ), + _addReminderButton(context) + ], + ), + ), + Container( + color: Colors.white, + margin: EdgeInsets.only(top: 10, left: 10, right: 10), + child: Table( + border: TableBorder.symmetric( + inside: BorderSide(width: 0.5), + outside: BorderSide(width: 0.5)), + children: [ + TableRow( + children: [ + Container( + color: Colors.white, + height: 40, + width: double.infinity, + child: Center( + child: Texts( + TranslationBase.of(context).route, + fontSize: 14, + ))), + Container( + color: Colors.white, + height: 40, + width: double.infinity, + child: Center( + child: Texts( + TranslationBase.of(context).frequency, + fontSize: 14, + ))), + Container( + color: Colors.white, + height: 40, + width: double.infinity, + padding: EdgeInsets.symmetric(horizontal: 4), + child: Center( + child: Texts( + "${TranslationBase.of(context).dailyDoses}", + fontSize: 14, + ))), + Container( + color: Colors.white, + height: 40, + width: double.infinity, + child: Center( + child: Texts( + TranslationBase.of(context).duration, + fontSize: 14, + ))), + ], + ), + TableRow( + children: [ + Container( + color: Colors.white, + height: 50, + width: double.infinity, + child: Center( + child: Text(prescriptionReport.routeN ?? ''))), + Container( + color: Colors.white, + height: 50, + width: double.infinity, + child: Center( + child: + Text(prescriptionReport.frequencyN ?? ''))), + Container( + color: Colors.white, + height: 50, + width: double.infinity, + child: Center( + child: Text( + '${prescriptionReport.doseDailyQuantity}'))), + Container( + color: Colors.white, + height: 50, + width: double.infinity, + child: + Center(child: Text('${prescriptionReport.days}'))) + ], + ), + ], + ), + ), + Container( + margin: EdgeInsets.only(top: 10, left: 10, right: 10), + width: double.infinity, + color: Colors.white, + padding: EdgeInsets.all(5), + child: Center( + child: Column( + children: [ + Texts(TranslationBase.of(context).notes), + SizedBox( + height: 5, + ), + Divider( + height: 0.5, + color: Colors.grey[300], + ), + SizedBox( + height: 5, + ), + Texts(prescriptionReport.remarks ?? ''), + ], + ), + ), + ) + ], + ), + ), + ); + } + + Widget _addReminderButton(BuildContext context) { + ProjectViewModel projectViewModel = Provider.of(context); + + return GestureDetector( + onTap: () { + DateTime startDate = DateTime.now(); + DateTime endDate = DateTime(startDate.year, startDate.month, + startDate.day + prescriptionReport.days); + + print(prescriptionReport); + showGeneralDialog( + barrierColor: Colors.black.withOpacity(0.5), + transitionBuilder: (context, a1, a2, widget) { + final curvedValue = + Curves.easeInOutBack.transform(a1.value) - 1.0; + return Transform( + transform: + Matrix4.translationValues(0.0, curvedValue * 200, 0.0), + child: Opacity( + opacity: a1.value, + child: ReminderDialog( + eventId: prescriptionReport.itemID.toString(), + title: "Prescription Reminder", + description: + "${prescriptionReport.itemDescriptionN} ${prescriptionReport.frequencyN} ${prescriptionReport.routeN} ", + startDate: + "/Date(${startDate.millisecondsSinceEpoch}+0300)/", + endDate: "/Date(${endDate.millisecondsSinceEpoch}+0300)/", + location: prescriptionReport.remarks, + ), + ), + ); + }, + transitionDuration: Duration(milliseconds: 500), + barrierDismissible: true, + barrierLabel: '', + context: context, + pageBuilder: (context, animation1, animation2) {}); + }, + child: Column( + mainAxisSize: MainAxisSize.max, + children: [ + Container( + // height: 100.0, + margin: EdgeInsets.all(7.0), + padding: EdgeInsets.only(bottom: 4.0), + decoration: BoxDecoration(boxShadow: [ + BoxShadow( + color: Colors.grey[400], blurRadius: 2.0, spreadRadius: 0.0) + ], borderRadius: BorderRadius.circular(10), color: Colors.white), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.max, + children: [ + Container( + margin: EdgeInsets.fromLTRB(5.0, 5.0, 5.0, 0.0), + child: Text("add", + overflow: TextOverflow.clip, + style: TextStyle( + color: new Color(0xffB8382C), + letterSpacing: 1.0, + fontSize: 18.0)), + ), + Container( + margin: EdgeInsets.fromLTRB(5.0, 0.0, 5.0, 0.0), + child: Text("reminder", + overflow: TextOverflow.clip, + style: TextStyle( + color: Colors.black, + letterSpacing: 1.0, + fontSize: 15.0)), + ), + Container( + alignment: projectViewModel.isArabic + ? Alignment.bottomLeft + : Alignment.bottomRight, + margin: projectViewModel.isArabic + ? EdgeInsets.fromLTRB(10.0, 7.0, 0.0, 8.0) + : EdgeInsets.fromLTRB(0.0, 7.0, 10.0, 8.0), + child: Image.asset( + "assets/images/new-design/reminder_icon.png", + width: 45.0, + height: 45.0), + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/pages/medical/prescriptions/prescription_details_page.dart b/lib/pages/medical/prescriptions/prescription_details_page.dart index 72e830cf..218d7ac6 100644 --- a/lib/pages/medical/prescriptions/prescription_details_page.dart +++ b/lib/pages/medical/prescriptions/prescription_details_page.dart @@ -53,7 +53,7 @@ class PrescriptionDetailsPage extends StatelessWidget { child: Texts( prescriptionReport.itemDescription.isNotEmpty ? prescriptionReport.itemDescription - : prescriptionReport.itemDescriptionN), + : prescriptionReport.itemDescriptionN ?? ''), ), ), ) @@ -70,7 +70,7 @@ class PrescriptionDetailsPage extends StatelessWidget { context, FadePage( page: PharmacyForPrescriptionsPage( - prescriptionReport: prescriptionReport), + itemID: prescriptionReport.itemID), ), ), child: Center( @@ -118,14 +118,19 @@ class PrescriptionDetailsPage extends StatelessWidget { height: 40, width: double.infinity, child: Center( - child: Texts(TranslationBase.of(context).route, fontSize: 14,))), + child: Texts( + TranslationBase.of(context).route, + fontSize: 14, + ))), Container( color: Colors.white, height: 40, width: double.infinity, child: Center( - child: - Texts(TranslationBase.of(context).frequency, fontSize: 14,))), + child: Texts( + TranslationBase.of(context).frequency, + fontSize: 14, + ))), Container( color: Colors.white, height: 40, @@ -133,14 +138,18 @@ class PrescriptionDetailsPage extends StatelessWidget { padding: EdgeInsets.symmetric(horizontal: 4), child: Center( child: Texts( - "${TranslationBase.of(context).dailyDoses}", fontSize: 14,))), + "${TranslationBase.of(context).dailyDoses}", + fontSize: 14, + ))), Container( color: Colors.white, height: 40, width: double.infinity, child: Center( - child: - Texts(TranslationBase.of(context).duration, fontSize: 14,))), + child: Texts( + TranslationBase.of(context).duration, + fontSize: 14, + ))), ], ), TableRow( @@ -149,8 +158,8 @@ class PrescriptionDetailsPage extends StatelessWidget { color: Colors.white, height: 50, width: double.infinity, - child: - Center(child: Text(prescriptionReport.routeN))), + child: Center( + child: Text(prescriptionReport.routeN ?? ''))), Container( color: Colors.white, height: 50, diff --git a/lib/pages/medical/prescriptions/prescription_items_page.dart b/lib/pages/medical/prescriptions/prescription_items_page.dart index c6581493..e47b8ea7 100644 --- a/lib/pages/medical/prescriptions/prescription_items_page.dart +++ b/lib/pages/medical/prescriptions/prescription_items_page.dart @@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_repor import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescription_details_inp.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescription_details_page.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; @@ -24,7 +25,7 @@ class PrescriptionItemsPage extends StatelessWidget { //TODO @override Widget build(BuildContext context) { - ProjectViewModel projectViewModel = Provider.of(context); + ProjectViewModel projectViewModel = Provider.of(context); return BaseView( onModelReady: (model) => model.getPrescriptionReport(prescriptions: prescriptions), @@ -38,14 +39,14 @@ class PrescriptionItemsPage extends StatelessWidget { children: [ if (!prescriptions.isInOutPatient) ...List.generate( - model.prescriptionReportList.length, + model.prescriptionReportListINP.length, (index) => InkWell( onTap: () => Navigator.push( context, FadePage( - page: PrescriptionDetailsPage( + page: PrescriptionDetailsPageINP( prescriptionReport: - model.prescriptionReportList[index], + model.prescriptionReportListINP[index], ), ), ), @@ -68,7 +69,7 @@ class PrescriptionItemsPage extends StatelessWidget { borderRadius: BorderRadius.all(Radius.circular(5)), child: Image.network( - model.prescriptionReportList[index] + model.prescriptionReportListINP[index] .imageSRCUrl, fit: BoxFit.cover, width: 60, @@ -83,13 +84,17 @@ class PrescriptionItemsPage extends StatelessWidget { padding: const EdgeInsets.all(8.0), child: Center( child: Texts(model - .prescriptionReportList[index] + .prescriptionReportListINP[index] .itemDescription .isNotEmpty - ? model.prescriptionReportList[index] + ? model + .prescriptionReportListINP[index] .itemDescription - : model.prescriptionReportList[index] - .itemDescriptionN)), + : model + .prescriptionReportListINP[ + index] + .itemDescriptionN ?? + '')), )), Icon( Icons.arrow_forward_ios, @@ -163,7 +168,12 @@ class PrescriptionItemsPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Texts(model.prescriptionReportEnhList[index] - .itemDescription), + .itemDescription.isNotEmpty + ? model.prescriptionReportEnhList[index] + .itemDescription + : model.prescriptionReportEnhList[index] + .itemDescriptionN ?? + ''), ], ), ), @@ -188,36 +198,37 @@ class PrescriptionItemsPage extends StatelessWidget { child: Column( children: [ Divider(), - if(projectViewModel.havePrivilege(13)) - Container( - width: MediaQuery.of(context).size.width * 0.8, - child: Button( - label: TranslationBase.of(context).sendCopy, - onTap: () { - showConfirmMessage(context,model); - }, - loading: model.state == ViewState.BusyLocal, - ), - ), + if (projectViewModel.havePrivilege(13)) Container( - width: MediaQuery.of(context).size.width * 0.8, - child: Button( - label: TranslationBase.of(context).resendOrder, - backgroundColor: Colors.green[800], - onTap: (){ - - Navigator.push( - context, - FadePage( - page: PrescriptionDeliveryAddressPage( - prescriptions: prescriptions, - prescriptionReportList: model.prescriptionReportList, - prescriptionReportEnhList: model.prescriptionReportEnhList, - ), + width: MediaQuery.of(context).size.width * 0.8, + child: Button( + label: TranslationBase.of(context).sendCopy, + onTap: () { + showConfirmMessage(context, model); + }, + loading: model.state == ViewState.BusyLocal, + ), + ), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: Button( + label: TranslationBase.of(context).resendOrder, + backgroundColor: Colors.green[800], + onTap: () { + Navigator.push( + context, + FadePage( + page: PrescriptionDeliveryAddressPage( + prescriptions: prescriptions, + prescriptionReportList: + model.prescriptionReportList, + prescriptionReportEnhList: + model.prescriptionReportEnhList, ), - ); - }, - )) + ), + ); + }, + )) ], ), ), @@ -236,6 +247,7 @@ class PrescriptionItemsPage extends StatelessWidget { patientID: prescriptions.patientID, clinicName: prescriptions.companyName, doctorName: prescriptions.doctorName, + doctorID: prescriptions.doctorID, mes: TranslationBase.of(context).sendSuc, projectID: prescriptions.projectID); }, diff --git a/lib/pages/rateAppointment/rate_appointment_clinic.dart b/lib/pages/rateAppointment/rate_appointment_clinic.dart index bf0f4b4e..7fe38f1b 100644 --- a/lib/pages/rateAppointment/rate_appointment_clinic.dart +++ b/lib/pages/rateAppointment/rate_appointment_clinic.dart @@ -94,6 +94,11 @@ class _RateAppointmentClinicState extends State { height: 8, ), LargeAvatar( + url: + 'https://hmgwebservices.com/Images/Hospitals/' + + model.appointmentDetails.projectID + .toString() + + '.jpg', name: model.appointmentDetails.clinicName, width: 110, height: 110, @@ -146,19 +151,17 @@ class _RateAppointmentClinicState extends State { child: Container( key: ValueKey(rating), child: IconButton( - iconSize: 45.0, + //iconSize: 45.0, onPressed: () { setState(() { rating = index + 1; }); }, - color: rating >= (index + 1) - ? Color.fromRGBO(255, 186, 0, 1.0) - : Colors.grey[400], + iconSize: rating == (index + 1) ? 60 : 40, // Theme.of(context).hintColor, - icon: Icon(rating >= (index + 1) - ? EvaIcons.star - : EvaIcons.star)), + icon: Image.asset('assets/images/' + + (index + 1).toString() + + '.png')), ), ), ) @@ -208,8 +211,8 @@ class _RateAppointmentClinicState extends State { } }, label: TranslationBase.of(context).submit, - disabled: (model.state == ViewState.Busy || rating==0), - // loading: model.state == ViewState.BusyLocal, + disabled: (model.state == ViewState.Busy || rating == 0), + // loading: model.state == ViewState.BusyLocal, textColor: Theme.of(context).backgroundColor), ), SizedBox( @@ -225,7 +228,7 @@ class _RateAppointmentClinicState extends State { ); }, child: Texts( - TranslationBase.of(context).later, + TranslationBase.of(context).later, decoration: TextDecoration.underline, color: HexColor('#151DFE'), fontSize: 18, diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index c86012f2..b0840b01 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -1628,6 +1628,20 @@ class TranslationBase { String get newReferral => localizedValues["newReferral"][locale.languageCode]; String get searchForReferrals => localizedValues["searchForReferrals"][locale.languageCode]; + String get onlineConsultation => + localizedValues["online-consultation"][locale.languageCode]; + String get expectedWaiting => + localizedValues["expected-weiting"][locale.languageCode]; + String get erConsultFee => + localizedValues["er-consult-fee"][locale.languageCode]; + String get insuredPatient => + localizedValues["insured-patient"][locale.languageCode]; + String get iAcceptTerms => + localizedValues["i-accept-terms"][locale.languageCode]; + String get upComingPayOption => + localizedValues["upcoming-pay-options"][locale.languageCode]; + String get pleaseAcceptTerms => + localizedValues["please-accept-terms"][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate { diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 283c559f..73453bf8 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -564,6 +564,7 @@ class _AppDrawerState extends State { if (mainUser["PatientID"] != result.list.patientID) { result.list.isFamily = true; } + // result.list.cRSVerificationStatus = result['CRSVerificationStatus']; this.sharedPref.setString(APP_LANGUAGE, currentLang); this.sharedPref.setObject(MAIN_USER, mainUser); diff --git a/lib/widgets/others/app_scaffold_widget.dart b/lib/widgets/others/app_scaffold_widget.dart index 64dd8c27..6a20ef3f 100644 --- a/lib/widgets/others/app_scaffold_widget.dart +++ b/lib/widgets/others/app_scaffold_widget.dart @@ -58,7 +58,8 @@ class AppScaffold extends StatelessWidget { final List appBarIcons; final List imagesInfo; final bool isHelp; - AuthenticatedUserObject authenticatedUserObject = locator(); + AuthenticatedUserObject authenticatedUserObject = + locator(); AppBarWidget appBar; AppScaffold( @@ -292,6 +293,15 @@ class _RobotIcon extends State { }); } } + if (p['isRobotVisible'] == 'false') { + if (this.mounted) { + setState(() { + if (IS_VOICE_COMMAND_CLOSED == true) { + this.isAnimation = false; + } + }); + } + } }); super.initState(); diff --git a/lib/widgets/others/floating_button_search.dart b/lib/widgets/others/floating_button_search.dart index 4310996b..9539a7df 100644 --- a/lib/widgets/others/floating_button_search.dart +++ b/lib/widgets/others/floating_button_search.dart @@ -210,6 +210,7 @@ class _FloatingSearchButton extends State if (this.mounted) { controller.reverse(); IS_VOICE_COMMAND_CLOSED = true; + event.setValue({'isRobotVisible': 'false'}); } }); }, diff --git a/lib/widgets/typewriter/typewiter.dart b/lib/widgets/typewriter/typewiter.dart index a86cc9f0..5354df38 100644 --- a/lib/widgets/typewriter/typewiter.dart +++ b/lib/widgets/typewriter/typewiter.dart @@ -1,3 +1,5 @@ +import 'package:diplomaticquarterapp/config/config.dart'; +import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:flutter/material.dart'; @@ -14,6 +16,7 @@ class _TyperState extends State Animation _characterCount; AnimationController _controller; int _stringIndex; + var event = RobotProvider(); @override void initState() { _controller = new AnimationController( diff --git a/speech_to_text/android/build.gradle b/speech_to_text/android/build.gradle index 6b23b300..cc06ea57 100644 --- a/speech_to_text/android/build.gradle +++ b/speech_to_text/android/build.gradle @@ -31,7 +31,7 @@ android { main.java.srcDirs += 'src/main/kotlin' } defaultConfig { - minSdkVersion 21 + minSdkVersion 18 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { diff --git a/speech_to_text/android/gradle/local.properties b/speech_to_text/android/gradle/local.properties index 71a0a2e4..b85628e7 100644 --- a/speech_to_text/android/gradle/local.properties +++ b/speech_to_text/android/gradle/local.properties @@ -1,3 +1,2 @@ sdk.dir=/Users/stephen.owens/Library/Android/sdk -flutter.sdk=/Users/stephen.owens/Documents/dev/flutter/sdk/flutter -org.gradle.jvmargs=-Xmx1536m -Duser.country=US -Duser.language=en \ No newline at end of file +flutter.sdk=/Users/stephen.owens/Documents/dev/flutter/sdk/flutter \ No newline at end of file diff --git a/speech_to_text/example/android/app/build.gradle b/speech_to_text/example/android/app/build.gradle index 8b616f29..104069d3 100644 --- a/speech_to_text/example/android/app/build.gradle +++ b/speech_to_text/example/android/app/build.gradle @@ -39,7 +39,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.csdcorp.speech_to_text_example" - minSdkVersion 21 + minSdkVersion 18 targetSdkVersion 28 versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/speech_to_text_/.github/workflows/master.yml b/speech_to_text_/.github/workflows/master.yml new file mode 100644 index 00000000..4d4cff1c --- /dev/null +++ b/speech_to_text_/.github/workflows/master.yml @@ -0,0 +1,19 @@ +name: build + +on: + push: + branches: + - master + +jobs: + test: + name: Test on Ubuntu + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: subosito/flutter-action@v1.3.2 + with: + flutter-version: '1.17.1' + channel: 'stable' + - run: flutter pub get + - run: flutter test diff --git a/speech_to_text_/.gitignore b/speech_to_text_/.gitignore new file mode 100644 index 00000000..8969cbcd --- /dev/null +++ b/speech_to_text_/.gitignore @@ -0,0 +1,11 @@ +.DS_Store +.dart_tool/ + +.packages +.pub/ + +build/ +coverage/ +example/.flutter-plugins-dependencies +**/ios/Flutter/flutter_export_environment.sh +android/.idea/ diff --git a/speech_to_text_/.metadata b/speech_to_text_/.metadata new file mode 100644 index 00000000..1940d996 --- /dev/null +++ b/speech_to_text_/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 2d2a1ffec95cc70a3218872a2cd3f8de4933c42f + channel: stable + +project_type: plugin diff --git a/speech_to_text_/CHANGELOG.md b/speech_to_text_/CHANGELOG.md new file mode 100644 index 00000000..477e110c --- /dev/null +++ b/speech_to_text_/CHANGELOG.md @@ -0,0 +1,166 @@ +# Changelog + +## 2.3.0 + +### New + * new parameter `onDevice` on the `listen` method enforces on device recognition for sensitive content + * onSoundLevelChange now supported on iOS + * added compile troubleshooting help to README.md + * `SpeechToTextProvider` is an alternate and simpler way to interact with the `SpeechToText` plugin. + * new `provider_example.dart` example for usage of `SpeechToTextProvider`. +### Fix + * on iOS handles some conflicts with other applications better to keep speech working after calls for example + + +## 2.2.0 + +### New + * improved error handling and logging in the iOS implementation + * added general guides for iOS to the README + * moved stress testing out of the main example + * iOS now defaults to using the speaker rather than the receiver for start /stop sounds when no headphones +### Fix + * iOS now properly deactivates the audio session when no longer listening + * start and stop sounds on iOS should be more reliable when available + +## 2.1.0 +### Breaking + * `listenFor` now calls `stop` rather than `cancel` as this seems like more useful behaviour + +### Fix + * Android no longer stops or cancels the speech recognizer if it has already been shutdown by a + timeout or other platform behaviour. + * Android no longer tries to restart the listener when it is already active + * Now properly notifies errors that happen after listening stops due to platform callback rather than + client request. See https://github.com/csdcorp/speech_to_text/issues/51 + +## 2.0.1 +### Fix + * Resolves an issue with the Android implementation not handling permission requests properly on apps + that didn't use the 1.12.x plugin APIs for registration. The permission dialog would not appear and + permission was denied. + + +## 2.0.0 + +### Breaking + + * Upgraded to New Swift 1.12 plugin structure, may work with older Flutter version but not guaranteed + +### New + + * the plugin now requests both speech and microphone permission on initialize on iOS + * added `debugLogging` parameter to the `initialize` method to control native logging + +### Fix + + * The Android implementation now blocks duplicate results notifications. It appears that at least on some + Android versions the final results notification onResults is notified twice when Android automatically + terminates the session due to a pause time. The de-duplication looks for successive notifications + with < 100 ms between them and blocks the second. If you miss any onResult notifications please post + an issue. + +## 1.1.0 + +### New + + * error_timeout has been separated into error_network_timeout and error_speech_timeout + +## 1.0.0 + +### New + * hasPermission to check for the current permission without bringing up the system dialog + * `listen` has a new optional `cancelOnError` parameter to support automatically canceling + a listening session on a permanent error. + * `listen` has a new optional `partialResults` parameter that controls whether the callback + receives partial or only final results. + +## 0.8.0 + +### New + + * speech recognizer now exposes multiple possible transcriptions for each recognized speech + * alternates list on SpeechRecognitionResult exposes alternate transcriptions of voice + * confidence on SpeechRecognitionResult gives an estimate of confidence in the transcription + * isConfident on SpeechRecognitionResult supports testing confidence + * hasConfidenceRating on SpeechRecognitionResult indicates if confidence was provided from the device + * new SpeechRecognitionWords class gives details on per transcription words and confidence + +### Fix + + * speechRecognizer availabilityDidChange was crashing if invoked due to an invalid parameter type + * Added iOS platform 10 to example Podfile to resolve compilation warnings + +## 0.7.2 + +### Breaking + + * Upgrade Swift to version 5 to match Flutter. Projects using this plugin must now switch to 5. + +## 0.7.1 + +### Fix + + * Upgrade Kotlin to 1.3.5 to match the Flutter 1.12 version + * Upgrade Gradle build to 3.5.0 to match the Flutter 1.12 version + * Android version of the plugin was repeating the system default locale in the `locales` list + +## 0.7.0 + +### New + + * locales method returns the list of available languages for speech + * new optional localeId parameter on listen method supports choosing the comprehension language separately from the current system locale. + +### Breaking + + * `cancel` and `stop` are now async + +## 0.6.3 + +### Fix + + * request permission fix on Android to ensure it doesn't conflict with other requests + +## 0.6.2 + +### Fix + + * channel invoke wasn't being done on the main thread in iOS + +## 0.6.1 + +### Fix + + * listening sound was failing due to timing, now uses play and record mode on iOS. + + ## 0.6.0 +### Breaking + + * The filenames for the optional sounds for iOS have changed. + +### New + + * Added an optional listenFor parameter to set a max duration to listen for speech and then automatically cancel. + +### Fix + + * Was failing to play sounds because of record mode. Now plays sounds before going into record mode and after coming out. + * Status listener was being ignored, now properly notifies on status changes. + +## 0.5.1 + * Fixes a problem where the recognizer left the AVAudioSession in record mode which meant that subsequent sounds couldn't be played. + +## 0.5.0 +Initial draft with limited functionality, supports: + * initializing speech recognition + * asking the user for permission if required + * listening for recognized speech + * canceling the current recognition session + * stopping the current recognition session +* Android and iOS 10+ support + +Missing: + * some error handling + * testing across multiple OS versions + * and more, to be discovered... diff --git a/speech_to_text_/LICENSE b/speech_to_text_/LICENSE new file mode 100644 index 00000000..7c3991c8 --- /dev/null +++ b/speech_to_text_/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2019, Corner Software Development Corp. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/speech_to_text_/README.md b/speech_to_text_/README.md new file mode 100644 index 00000000..af726f0e --- /dev/null +++ b/speech_to_text_/README.md @@ -0,0 +1,150 @@ +# speech_to_text + +[![pub package](https://img.shields.io/badge/pub-v2.3.0-blue)](https://pub.dartlang.org/packages/speech_to_text) [![build status](https://github.com/csdcorp/speech_to_text/workflows/build/badge.svg)](https://github.com/csdcorp/speech_to_text/actions?query=workflow%3Abuild) + +A library that exposes device specific speech recognition capability. + +This plugin contains a set of classes that make it easy to use the speech recognition +capabilities of the mobile device in Flutter. It supports both Android and iOS. The +target use cases for this library are commands and short phrases, not continuous spoken +conversion or always on listening. + +## Recent Updates + +The 2.3.0 version adds `SpeechToTextProvider` as a simpler way to interact with the plugin. Checkout +the new `provider_example.dart` for intended usage. + +The 2.2.0 version improves audio session handling and start / stop sound playback on iOS. + +*Note*: Feedback from any test devices is welcome. + +## Using + +To recognize text from the microphone import the package and call the plugin, like so: + +```dart +import 'package:speech_to_text/speech_to_text.dart' as stt; + + stt.SpeechToText speech = stt.SpeechToText(); + bool available = await speech.initialize( onStatus: statusListener, onError: errorListener ); + if ( available ) { + speech.listen( onResult: resultListener ); + } + else { + print("The user has denied the use of speech recognition."); + } + // some time later... + speech.stop() +``` + +### Initialize once +The `initialize` method only needs to be called once per application session. After that `listen`, +`start`, `stop`, and `cancel` can be used to interact with the plugin. Subsequent calls to `initialize` +are ignored which is safe but does mean that the `onStatus` and `onError` callbacks cannot be reset after +the first call to `initialize`. For that reason there should be only one instance of the plugin per +application. The `SpeechToTextProvider` is one way to create a single instance and easily reuse it in +multiple widgets. + +## Permissions + +Applications using this plugin require user permissions. +### iOS + +Add the following keys to your _Info.plist_ file, located in `/ios/Runner/Info.plist`: + +* `NSSpeechRecognitionUsageDescription` - describe why your app uses speech recognition. This is called _Privacy - Speech Recognition Usage Description_ in the visual editor. +* `NSMicrophoneUsageDescription` - describe why your app needs access to the microphone. This is called _Privacy - Microphone Usage Description_ in the visual editor. + +### Android + +Add the record audio permission to your _AndroidManifest.xml_ file, located in `/android/app/src/main/AndroidManifest.xml`. + +* `android.permission.RECORD_AUDIO` - this permission is required for microphone access. +* `android.permission.INTERNET` - this permission is required because speech recognition may use remote services. + +## Adding Sounds for iOS (optional) + +Android automatically plays system sounds when speech listening starts or stops but iOS does not. This plugin supports playing sounds to indicate listening status on iOS if sound files are available as assets in the application. To enable sounds in an application using this plugin add the sound files to the project and reference them in the assets section of the application `pubspec.yaml`. The location and filenames of the sound files must exactly match what +is shown below or they will not be found. The example application for the plugin shows the usage. *Note* These files should be very short as they delay +the start / end of the speech recognizer until the sound playback is complete. +```yaml + assets: + - assets/sounds/speech_to_text_listening.m4r + - assets/sounds/speech_to_text_cancel.m4r + - assets/sounds/speech_to_text_stop.m4r +``` +* `speech_to_text_listening.m4r` - played when the listen method is called. +* `speech_to_text_cancel.m4r` - played when the cancel method is called. +* `speech_to_text_stop.m4r` - played when the stop method is called. + +## Troubleshooting + +### SDK version error trying to compile for Android +``` +Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared in library [:speech_to_text] +``` +The speech_to_text plugin requires at least Android SDK 21 because some of the speech functions in Android +were only introduced in that version. To fix this error you need to change the `build.gradle` entry to reflect +this version. Here's what the relevant part of that file looked like as of this writing: +``` + defaultConfig { + applicationId "com.example.app" + minSdkVersion 21 + targetSdkVersion 28 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } +``` + +### Incorrect Swift version trying to compile for iOS +``` +/Users/markvandergon/flutter/.pub-cache/hosted/pub.dartlang.org/speech_to_text-1.1.0/ios/Classes/SwiftSpeechToTextPlugin.swift:224:44: error: value of type 'SwiftSpeechToTextPlugin' has no member 'AVAudioSession' + rememberedAudioCategory = self.AVAudioSession.Category + ~~~~ ^~~~~~~~~~~~~~ + /Users/markvandergon/flutter/.pub-cache/hosted/pub.dartlang.org/speech_to_text-1.1.0/ios/Classes/SwiftSpeechToTextPlugin.swift:227:63: error: type 'Int' has no member 'notifyOthersOnDeactivation' + try self.audioSession.setActive(true, withFlags: .notifyOthersOnDeactivation) +``` +This happens when the Swift language version is not set correctly. See this thread for help https://github.com/csdcorp/speech_to_text/issues/45. + +### Swift not supported trying to compile for iOS +``` +`speech_to_text` does not specify a Swift version and none of the targets (`Runner`) integrating it have the `SWIFT_VERSION` attribute set. +``` +This usually happens for older projects that only support Objective-C. See this thread for help https://github.com/csdcorp/speech_to_text/issues/88. + +### Not working on a particular Android device +The symptom for this issue is that the `initialize` method will always fail. If you turn on debug logging +using the `debugLogging: true` flag on the `initialize` method you'll see `'Speech recognition unavailable'` +in the Android log. There's a lengthy issue discussion here https://github.com/csdcorp/speech_to_text/issues/36 +about this. The issue seems to be that the recognizer is not always automatically enabled on the device. Two +key things helped resolve the issue in this case at least. + +#### First +1. Go to Google Play +2. Search for 'Google' +3. You should find this app: https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox +If 'Disabled' enable it + +This is the SO post that helped: https://stackoverflow.com/questions/28769320/how-to-check-wether-speech-recognition-is-available-or-not + +#### Second +Ensure the app has the required permissions. The symptom for this that you get a permanent error notification + 'error_audio_error` when starting a listen session. Here's a Stack Overflow post that addresses that + https://stackoverflow.com/questions/46376193/android-speechrecognizer-audio-recording-error + Here's the important excerpt: + >You should go to system setting, Apps, Google app, then enable its permission of microphone. + +### iOS recognition guidelines +Apple has quite a good guide on the user experience for using speech, the original is here +https://developer.apple.com/documentation/speech/sfspeechrecognizer This is the section that I think is particularly relevant: + +>#### Create a Great User Experience for Speech Recognition +>Here are some tips to consider when adding speech recognition support to your app. + +>**Be prepared to handle failures caused by speech recognition limits.** Because speech recognition is a network-based service, limits are enforced so that the service can remain freely available to all apps. Individual devices may be limited in the number of recognitions that can be performed per day, and each app may be throttled globally based on the number of requests it makes per day. If a recognition request fails quickly (within a second or two of starting), check to see if the recognition service became unavailable. If it is, you may want to ask users to try again later. + +>**Plan for a one-minute limit on audio duration.** Speech recognition places a relatively high burden on battery life and network usage. To minimize this burden, the framework stops speech recognition tasks that last longer than one minute. This limit is similar to the one for keyboard-related dictation. +Remind the user when your app is recording. For example, display a visual indicator and play sounds at the beginning and end of speech recognition to help users understand that they're being actively recorded. You can also display speech as it is being recognized so that users understand what your app is doing and see any mistakes made during the recognition process. + +>**Do not perform speech recognition on private or sensitive information.** Some speech is not appropriate for recognition. Don't send passwords, health or financial data, and other sensitive speech for recognition. diff --git a/speech_to_text_/android/.classpath b/speech_to_text_/android/.classpath new file mode 100644 index 00000000..eb19361b --- /dev/null +++ b/speech_to_text_/android/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/speech_to_text_/android/.gitignore b/speech_to_text_/android/.gitignore new file mode 100644 index 00000000..c6cbe562 --- /dev/null +++ b/speech_to_text_/android/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures diff --git a/speech_to_text_/android/.project b/speech_to_text_/android/.project new file mode 100644 index 00000000..3050653c --- /dev/null +++ b/speech_to_text_/android/.project @@ -0,0 +1,23 @@ + + + speech_to_text + Project android_____ created by Buildship. + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/speech_to_text_/android/.settings/org.eclipse.buildship.core.prefs b/speech_to_text_/android/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 00000000..7a23d112 --- /dev/null +++ b/speech_to_text_/android/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(5.6.1)) +connection.project.dir= +eclipse.preferences.version=1 +gradle.user.home= +java.home= +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/speech_to_text_/android/build.gradle b/speech_to_text_/android/build.gradle new file mode 100644 index 00000000..6b23b300 --- /dev/null +++ b/speech_to_text_/android/build.gradle @@ -0,0 +1,44 @@ +group 'com.csdcorp.speech_to_text' +version '1.0-SNAPSHOT' + +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.5.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +rootProject.allprojects { + repositories { + google() + jcenter() + } +} + +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 28 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + defaultConfig { + minSdkVersion 21 + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + lintOptions { + disable 'InvalidPackage' + } +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/speech_to_text_/android/gradle/gradle.properties b/speech_to_text_/android/gradle/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/speech_to_text_/android/gradle/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/speech_to_text_/android/gradle/local.properties b/speech_to_text_/android/gradle/local.properties new file mode 100644 index 00000000..71a0a2e4 --- /dev/null +++ b/speech_to_text_/android/gradle/local.properties @@ -0,0 +1,3 @@ +sdk.dir=/Users/stephen.owens/Library/Android/sdk +flutter.sdk=/Users/stephen.owens/Documents/dev/flutter/sdk/flutter +org.gradle.jvmargs=-Xmx1536m -Duser.country=US -Duser.language=en \ No newline at end of file diff --git a/speech_to_text_/android/gradle/settings.gradle b/speech_to_text_/android/gradle/settings.gradle new file mode 100644 index 00000000..cdfc1c4b --- /dev/null +++ b/speech_to_text_/android/gradle/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'speech_to_text' diff --git a/speech_to_text_/android/gradle/wrapper/gradle-wrapper.properties b/speech_to_text_/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..674bdda0 --- /dev/null +++ b/speech_to_text_/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip diff --git a/speech_to_text_/android/src/main/AndroidManifest.xml b/speech_to_text_/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..61a73f32 --- /dev/null +++ b/speech_to_text_/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/speech_to_text_/android/src/main/kotlin/com/csdcorp/speech_to_text/SpeechToTextPlugin.kt b/speech_to_text_/android/src/main/kotlin/com/csdcorp/speech_to_text/SpeechToTextPlugin.kt new file mode 100644 index 00000000..7954add3 --- /dev/null +++ b/speech_to_text_/android/src/main/kotlin/com/csdcorp/speech_to_text/SpeechToTextPlugin.kt @@ -0,0 +1,595 @@ +package com.csdcorp.speech_to_text + +import androidx.annotation.NonNull; +import io.flutter.embedding.engine.plugins.FlutterPlugin +import android.Manifest +import android.annotation.TargetApi +import android.app.Activity +import android.content.Intent +import android.content.pm.PackageManager +import android.os.Build +import android.os.Bundle +import android.speech.RecognitionListener +import android.speech.SpeechRecognizer.createSpeechRecognizer +import android.speech.RecognizerIntent +import android.speech.SpeechRecognizer +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat +import io.flutter.plugin.common.MethodCall +import io.flutter.plugin.common.MethodChannel +import io.flutter.plugin.common.MethodChannel.MethodCallHandler +import io.flutter.plugin.common.MethodChannel.Result +import io.flutter.plugin.common.PluginRegistry +import io.flutter.plugin.common.PluginRegistry.Registrar +import org.json.JSONObject +import android.content.Context +import android.content.BroadcastReceiver +import android.os.Handler +import android.os.Looper +import android.util.Log +import io.flutter.embedding.engine.plugins.activity.ActivityAware +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding +import io.flutter.plugin.common.BinaryMessenger +import org.json.JSONArray +import java.util.* + + +enum class SpeechToTextErrors { + multipleRequests, + unimplemented, + noLanguageIntent, + recognizerNotAvailable, + missingOrInvalidArg, + unknown +} + +enum class SpeechToTextCallbackMethods { + textRecognition, + notifyStatus, + notifyError, + soundLevelChange, +} + +enum class SpeechToTextStatus { + listening, + notListening, + unavailable, + available, +} + +enum class ListenMode { + deviceDefault, + dictation, + search, + confirmation, +} + +const val pluginChannelName = "plugin.csdcorp.com/speech_to_text" + +@TargetApi(8) +/** SpeechToTextPlugin */ +public class SpeechToTextPlugin : + MethodCallHandler, RecognitionListener, + PluginRegistry.RequestPermissionsResultListener, FlutterPlugin, + ActivityAware { + private var pluginContext: Context? = null + private var channel: MethodChannel? = null + private val minSdkForSpeechSupport = 21 + private val speechToTextPermissionCode = 28521 + private val missingConfidence: Double = -1.0 + private val logTag = "SpeechToTextPlugin" + private var currentActivity: Activity? = null + private var activeResult: Result? = null + private var initializedSuccessfully: Boolean = false + private var permissionToRecordAudio: Boolean = false + private var listening = false + private var debugLogging: Boolean = false + private var speechRecognizer: SpeechRecognizer? = null + private var recognizerIntent: Intent? = null + private var previousRecognizerLang: String? = null + private var previousPartialResults: Boolean = true + private var previousListenMode: ListenMode = ListenMode.deviceDefault + private var lastFinalTime: Long = 0 + private val handler: Handler = Handler(Looper.getMainLooper()) + private val defaultLanguageTag: String = Locale.getDefault().toLanguageTag() + + override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { + + onAttachedToEngine(flutterPluginBinding.getApplicationContext(), flutterPluginBinding.getBinaryMessenger()); + } + + // This static function is optional and equivalent to onAttachedToEngine. It supports the old + // pre-Flutter-1.12 Android projects. You are encouraged to continue supporting + // plugin registration via this function while apps migrate to use the new Android APIs + // post-flutter-1.12 via https://flutter.dev/go/android-project-migration. + // + // It is encouraged to share logic between onAttachedToEngine and registerWith to keep + // them functionally equivalent. Only one of onAttachedToEngine or registerWith will be called + // depending on the user's project. onAttachedToEngine or registerWith must both be defined + // in the same class. + companion object { + @JvmStatic + fun registerWith(registrar: Registrar) { + val speechPlugin = SpeechToTextPlugin() + speechPlugin.currentActivity = registrar.activity() + registrar.addRequestPermissionsResultListener(speechPlugin) + speechPlugin.onAttachedToEngine(registrar.context(), registrar.messenger()) + } + } + + private fun onAttachedToEngine(applicationContext: Context, messenger: BinaryMessenger) { + this.pluginContext = applicationContext; + channel = MethodChannel(messenger, pluginChannelName) + channel?.setMethodCallHandler(this) + } + + override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) { + this.pluginContext = null; + channel?.setMethodCallHandler(null) + channel = null + } + + override fun onDetachedFromActivity() { + currentActivity = null + } + + override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) { + currentActivity = binding.activity + binding.addRequestPermissionsResultListener(this) + } + + override fun onAttachedToActivity(binding: ActivityPluginBinding) { + currentActivity = binding.activity + binding.addRequestPermissionsResultListener(this) + } + + override fun onDetachedFromActivityForConfigChanges() { + currentActivity = null + } + + override fun onMethodCall(@NonNull call: MethodCall, @NonNull rawrResult: Result) { + val result = ChannelResultWrapper(rawrResult) + try { + when (call.method) { + "has_permission" -> hasPermission(result) + "initialize" -> { + var dlog = call.argument("debugLogging") + if (null != dlog) { + debugLogging = dlog + } + initialize(result) + } + "listen" -> { + var localeId = call.argument("localeId") + if (null == localeId) { + localeId = defaultLanguageTag + } + var partialResults = call.argument("partialResults") + if (null == partialResults) { + partialResults = true + } + val listenModeIndex = call.argument("listenMode") + if ( null == listenModeIndex ) { + result.error(SpeechToTextErrors.missingOrInvalidArg.name, + "listenMode is required", null) + return + } + startListening(result, localeId, partialResults, listenModeIndex ) + } + "stop" -> stopListening(result) + "cancel" -> cancelListening(result) + "locales" -> locales(result) + else -> result.notImplemented() + } + } catch (exc: Exception) { + Log.e(logTag, "Unexpected exception", exc) + result.error(SpeechToTextErrors.unknown.name, + "Unexpected exception", exc.localizedMessage) + } + } + + private fun hasPermission(result: Result) { + if (sdkVersionTooLow(result)) { + return + } + debugLog("Start has_permission") + val localContext = pluginContext + if (localContext != null) { + val hasPerm = ContextCompat.checkSelfPermission(localContext, + Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED + result.success(hasPerm) + } + } + + private fun initialize(result: Result) { + if (sdkVersionTooLow(result)) { + return + } + debugLog("Start initialize") + if (null != activeResult) { + result.error(SpeechToTextErrors.multipleRequests.name, + "Only one initialize at a time", null) + return + } + activeResult = result + val localContext = pluginContext + initializeIfPermitted(pluginContext) + } + + private fun sdkVersionTooLow(result: Result): Boolean { + if (Build.VERSION.SDK_INT < minSdkForSpeechSupport) { + result.success(false) + return true; + } + return false; + } + + private fun isNotInitialized(result: Result): Boolean { + if (!initializedSuccessfully || null == pluginContext) { + result.success(false) + } + return !initializedSuccessfully + } + + private fun isListening(): Boolean { + return listening + } + + private fun isNotListening(): Boolean { + return !listening + } + + private fun startListening(result: Result, languageTag: String, partialResults: Boolean, + listenModeIndex: Int) { + if (sdkVersionTooLow(result) || isNotInitialized(result) || isListening()) { + return + } + debugLog("Start listening") + var listenMode = ListenMode.deviceDefault + if ( listenModeIndex == ListenMode.dictation.ordinal) { + listenMode = ListenMode.dictation + } + setupRecognizerIntent(languageTag, partialResults, listenMode) + handler.post { + run { + speechRecognizer?.startListening(recognizerIntent) + } + } + notifyListening(isRecording = true) + result.success(true) + debugLog("Start listening done") + } + + private fun stopListening(result: Result) { + if (sdkVersionTooLow(result) || isNotInitialized(result) || isNotListening()) { + return + } + debugLog("Stop listening") + handler.post { + run { + speechRecognizer?.stopListening() + } + } + notifyListening(isRecording = false) + result.success(true) + debugLog("Stop listening done") + } + + private fun cancelListening(result: Result) { + if (sdkVersionTooLow(result) || isNotInitialized(result) || isNotListening()) { + return + } + debugLog("Cancel listening") + handler.post { + run { + speechRecognizer?.cancel() + } + } + notifyListening(isRecording = false) + result.success(true) + debugLog("Cancel listening done") + } + + private fun locales(result: Result) { + if (sdkVersionTooLow(result) || isNotInitialized(result)) { + return + } + var detailsIntent = RecognizerIntent.getVoiceDetailsIntent(pluginContext) + if (null == detailsIntent) { + detailsIntent = Intent(RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS) + } + if (null == detailsIntent) { + result.error(SpeechToTextErrors.noLanguageIntent.name, + "Could not get voice details", null) + return + } + pluginContext?.sendOrderedBroadcast( + detailsIntent, null, LanguageDetailsChecker(result), + null, Activity.RESULT_OK, null, null) + } + + private fun notifyListening(isRecording: Boolean) { + debugLog("Notify listening") + listening = isRecording + val status = when (isRecording) { + true -> SpeechToTextStatus.listening.name + false -> SpeechToTextStatus.notListening.name + } + channel?.invokeMethod(SpeechToTextCallbackMethods.notifyStatus.name, status) + debugLog("Notify listening done") + } + + private fun updateResults(speechBundle: Bundle?, isFinal: Boolean) { + if (isDuplicateFinal( isFinal )) { + debugLog("Discarding duplicate final") + return + } + val userSaid = speechBundle?.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION) + if (null != userSaid && userSaid.isNotEmpty()) { + val speechResult = JSONObject() + speechResult.put("finalResult", isFinal) + val confidence = speechBundle?.getFloatArray(SpeechRecognizer.CONFIDENCE_SCORES) + val alternates = JSONArray() + for (resultIndex in 0..userSaid.size - 1) { + val speechWords = JSONObject() + speechWords.put("recognizedWords", userSaid[resultIndex]) + if (null != confidence && confidence.size >= userSaid.size) { + speechWords.put("confidence", confidence[resultIndex]) + } else { + speechWords.put("confidence", missingConfidence) + } + alternates.put(speechWords) + } + speechResult.put("alternates", alternates) + val jsonResult = speechResult.toString() + debugLog("Calling results callback") + channel?.invokeMethod(SpeechToTextCallbackMethods.textRecognition.name, + jsonResult) + } + } + + private fun isDuplicateFinal( isFinal: Boolean ) : Boolean { + if ( !isFinal ) { + return false + } + val delta = System.currentTimeMillis() - lastFinalTime + lastFinalTime = System.currentTimeMillis() + return delta >= 0 && delta < 100 + } + + private fun initializeIfPermitted(context: Context?) { + val localContext = context + if (null == localContext) { + completeInitialize() + return + } + permissionToRecordAudio = ContextCompat.checkSelfPermission(localContext, + Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED + debugLog("Checked permission") + if (!permissionToRecordAudio) { + val localActivity = currentActivity + if (null != localActivity) { + debugLog("Requesting permission") + ActivityCompat.requestPermissions(localActivity, + arrayOf(Manifest.permission.RECORD_AUDIO), speechToTextPermissionCode) + } else { + debugLog("no permission, no activity, completing") + completeInitialize() + } + } else { + debugLog("has permission, completing") + completeInitialize() + } + debugLog("leaving initializeIfPermitted") + } + + private fun completeInitialize() { + + debugLog("completeInitialize") + if (permissionToRecordAudio) { + debugLog("Testing recognition availability") + if (!SpeechRecognizer.isRecognitionAvailable(pluginContext)) { + Log.e(logTag, "Speech recognition not available on this device") + activeResult?.error(SpeechToTextErrors.recognizerNotAvailable.name, + "Speech recognition not available on this device", "") + activeResult = null + return + } + + debugLog("Creating recognizer") + speechRecognizer = createSpeechRecognizer(pluginContext).apply { + debugLog("Setting listener") + setRecognitionListener(this@SpeechToTextPlugin) + } + if (null == speechRecognizer) { + Log.e(logTag, "Speech recognizer null") + activeResult?.error( + SpeechToTextErrors.recognizerNotAvailable.name, + "Speech recognizer null", "") + activeResult = null + } + + debugLog("before setup intent") + setupRecognizerIntent(defaultLanguageTag, true, ListenMode.deviceDefault) + debugLog("after setup intent") + } + + initializedSuccessfully = permissionToRecordAudio + debugLog("sending result") + activeResult?.success(permissionToRecordAudio) + debugLog("leaving complete") + activeResult = null + } + + private fun setupRecognizerIntent(languageTag: String, partialResults: Boolean, listenMode: ListenMode) { + debugLog("setupRecognizerIntent") + if (previousRecognizerLang == null || + previousRecognizerLang != languageTag || + partialResults != previousPartialResults || previousListenMode != listenMode ) { + previousRecognizerLang = languageTag; + previousPartialResults = partialResults + previousListenMode = listenMode + handler.post { + run { + recognizerIntent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply { + debugLog("In RecognizerIntent apply") + putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM) + debugLog("put model") + val localContext = pluginContext + if (null != localContext) { + putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, + localContext.applicationInfo.packageName) + } + debugLog("put package") + putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, partialResults) + debugLog("put partial") + if (languageTag != Locale.getDefault().toLanguageTag()) { + putExtra(RecognizerIntent.EXTRA_LANGUAGE, languageTag); + debugLog("put languageTag") + } + } + } + } + } + } + + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array?, + grantResults: IntArray?): Boolean { + when (requestCode) { + speechToTextPermissionCode -> { + if (null != grantResults) { + permissionToRecordAudio = grantResults.isNotEmpty() && + grantResults.get(0) == PackageManager.PERMISSION_GRANTED + } + completeInitialize() + return true + } + } + return false + } + + + override fun onPartialResults(results: Bundle?) = updateResults(results, false) + override fun onResults(results: Bundle?) = updateResults(results, true) + override fun onEndOfSpeech() = notifyListening(isRecording = false) + + override fun onError(errorCode: Int) { + val errorMsg = when (errorCode) { + SpeechRecognizer.ERROR_AUDIO -> "error_audio_error" + SpeechRecognizer.ERROR_CLIENT -> "error_client" + SpeechRecognizer.ERROR_INSUFFICIENT_PERMISSIONS -> "error_permission" + SpeechRecognizer.ERROR_NETWORK -> "error_network" + SpeechRecognizer.ERROR_NETWORK_TIMEOUT -> "error_network_timeout" + SpeechRecognizer.ERROR_NO_MATCH -> "error_no_match" + SpeechRecognizer.ERROR_RECOGNIZER_BUSY -> "error_busy" + SpeechRecognizer.ERROR_SERVER -> "error_server" + SpeechRecognizer.ERROR_SPEECH_TIMEOUT -> "error_speech_timeout" + else -> "error_unknown" + } + sendError(errorMsg) + } + + private fun debugLog( msg: String ) { + if ( debugLogging ) { + Log.d( logTag, msg ) + } + } + + private fun sendError(errorMsg: String) { + val speechError = JSONObject() + speechError.put("errorMsg", errorMsg) + speechError.put("permanent", true) + handler.post { + run { + channel?.invokeMethod(SpeechToTextCallbackMethods.notifyError.name, speechError.toString()) + } + } + } + + override fun onRmsChanged(rmsdB: Float) { + handler.post { + run { + channel?.invokeMethod(SpeechToTextCallbackMethods.soundLevelChange.name, rmsdB) + } + } + } + + override fun onReadyForSpeech(p0: Bundle?) {} + override fun onBufferReceived(p0: ByteArray?) {} + override fun onEvent(p0: Int, p1: Bundle?) {} + override fun onBeginningOfSpeech() {} +} + +// See https://stackoverflow.com/questions/10538791/how-to-set-the-language-in-speech-recognition-on-android/10548680#10548680 +class LanguageDetailsChecker(flutterResult: Result) : BroadcastReceiver() { + private val result: Result = flutterResult + private var supportedLanguages: List? = null + + private var languagePreference: String? = null + + override fun onReceive(context: Context, intent: Intent) { + val results = getResultExtras(true) + if (results.containsKey(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE)) { + languagePreference = results.getString(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE) + } + if (results.containsKey(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES)) { + supportedLanguages = results.getStringArrayList( + RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES) + createResponse(supportedLanguages) + } + } + + private fun createResponse(supportedLanguages: List?) { + val currentLocale = Locale.getDefault() + val localeNames = ArrayList() + localeNames.add(buildIdNameForLocale(currentLocale)) + if (null != supportedLanguages) { + for (lang in supportedLanguages) { + if (currentLocale.toLanguageTag() == lang) { + continue + } + val locale = Locale.forLanguageTag(lang) + localeNames.add(buildIdNameForLocale(locale)) + } + } + result.success(localeNames) + + } + + private fun buildIdNameForLocale(locale: Locale): String { + val name = locale.displayName.replace(':', ' ') + return "${locale.language}_${locale.country}:$name" + } +} + +private class ChannelResultWrapper(result: Result) : Result { + // Caller handler + val handler: Handler = Handler(Looper.getMainLooper()) + val result: Result = result + + // make sure to respond in the caller thread + override fun success(results: Any?) { + + handler.post { + run { + result.success(results); + } + } + } + + override fun error(errorCode: String?, errorMessage: String?, data: Any?) { + handler.post { + run { + result.error(errorCode, errorMessage, data); + } + } + } + + override fun notImplemented() { + handler.post { + run { + result.notImplemented(); + } + } + } +} diff --git a/speech_to_text_/example/.gitignore b/speech_to_text_/example/.gitignore new file mode 100644 index 00000000..2ddde2a5 --- /dev/null +++ b/speech_to_text_/example/.gitignore @@ -0,0 +1,73 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.packages +.pub-cache/ +.pub/ +/build/ + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages diff --git a/speech_to_text_/example/.metadata b/speech_to_text_/example/.metadata new file mode 100644 index 00000000..aeb01ee2 --- /dev/null +++ b/speech_to_text_/example/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 2d2a1ffec95cc70a3218872a2cd3f8de4933c42f + channel: stable + +project_type: app diff --git a/speech_to_text_/example/README.md b/speech_to_text_/example/README.md new file mode 100644 index 00000000..92252821 --- /dev/null +++ b/speech_to_text_/example/README.md @@ -0,0 +1,155 @@ +# speech_to_text_example + +Demonstrates how to use the speech_to_text plugin. This example requires +that the plugin has been installed. It initializes speech recognition, +listens for words and prints them. + + +## Source + +```dart +import 'package:flutter/material.dart'; +import 'dart:async'; + +import 'package:speech_to_text/speech_to_text.dart'; +import 'package:speech_to_text/speech_recognition_result.dart'; +import 'package:speech_to_text/speech_recognition_error.dart'; + +void main() => runApp(MyApp()); + +class MyApp extends StatefulWidget { + @override + _MyAppState createState() => _MyAppState(); +} + +class _MyAppState extends State { + bool _hasSpeech = false; + String lastWords = ""; + String lastError = ""; + String lastStatus = ""; + final SpeechToText speech = SpeechToText(); + + @override + void initState() { + super.initState(); + initSpeechState(); + } + + Future initSpeechState() async { + bool hasSpeech = await speech.initialize(onError: errorListener, onStatus: statusListener ); + + if (!mounted) return; + setState(() { + _hasSpeech = hasSpeech; + }); + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + appBar: AppBar( + title: const Text('Speech to Text Example'), + ), + body: _hasSpeech + ? Column(children: [ + Expanded( + child: Center( + child: Text('Speech recognition available'), + ), + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + FlatButton( + child: Text('Start'), + onPressed: startListening, + ), + FlatButton( + child: Text('Stop'), + onPressed: stopListening, + ), + FlatButton( + child: Text('Cancel'), + onPressed:cancelListening, + ), + ], + ), + ), + Expanded( + child: Column( + children: [ + Center( + child: Text('Recognized Words'), + ), + Center( + child: Text(lastWords), + ), + ], + ), + ), + Expanded( + child: Column( + children: [ + Center( + child: Text('Error'), + ), + Center( + child: Text(lastError), + ), + ], + ), + ), + Expanded( + child: Center( + child: speech.isListening ? Text("I'm listening...") : Text( 'Not listening' ), + ), + ), + ]) + : Center( child: Text('Speech recognition unavailable', style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold))), + ), + ); + } + + void startListening() { + lastWords = ""; + lastError = ""; + speech.listen(onResult: resultListener ); + setState(() { + + }); + } + + void stopListening() { + speech.stop( ); + setState(() { + + }); + } + + void cancelListening() { + speech.cancel( ); + setState(() { + + }); + } + + void resultListener(SpeechRecognitionResult result) { + setState(() { + lastWords = "${result.recognizedWords} - ${result.finalResult}"; + }); + } + + void errorListener(SpeechRecognitionError error ) { + setState(() { + lastError = "${error.errorMsg} - ${error.permanent}"; + }); + } + void statusListener(String status ) { + setState(() { + lastStatus = "$status"; + }); + } +} +``` \ No newline at end of file diff --git a/speech_to_text_/example/android/.project b/speech_to_text_/example/android/.project new file mode 100644 index 00000000..d7d48141 --- /dev/null +++ b/speech_to_text_/example/android/.project @@ -0,0 +1,17 @@ + + + android___ + Project android___ created by Buildship. + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/speech_to_text_/example/android/.settings/org.eclipse.buildship.core.prefs b/speech_to_text_/example/android/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 00000000..e8895216 --- /dev/null +++ b/speech_to_text_/example/android/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,2 @@ +connection.project.dir= +eclipse.preferences.version=1 diff --git a/speech_to_text_/example/android/app/build.gradle b/speech_to_text_/example/android/app/build.gradle new file mode 100644 index 00000000..8b616f29 --- /dev/null +++ b/speech_to_text_/example/android/app/build.gradle @@ -0,0 +1,67 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 28 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + lintOptions { + disable 'InvalidPackage' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.csdcorp.speech_to_text_example" + minSdkVersion 21 + targetSdkVersion 28 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test:runner:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' +} diff --git a/speech_to_text_/example/android/app/src/debug/AndroidManifest.xml b/speech_to_text_/example/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..36edf838 --- /dev/null +++ b/speech_to_text_/example/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/speech_to_text_/example/android/app/src/main/AndroidManifest.xml b/speech_to_text_/example/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..b0912061 --- /dev/null +++ b/speech_to_text_/example/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + diff --git a/speech_to_text_/example/android/app/src/main/kotlin/com/csdcorp/speech_to_text_example/MainActivity.kt b/speech_to_text_/example/android/app/src/main/kotlin/com/csdcorp/speech_to_text_example/MainActivity.kt new file mode 100644 index 00000000..f44e470e --- /dev/null +++ b/speech_to_text_/example/android/app/src/main/kotlin/com/csdcorp/speech_to_text_example/MainActivity.kt @@ -0,0 +1,12 @@ +package com.csdcorp.speech_to_text_example + +import androidx.annotation.NonNull; +import io.flutter.embedding.android.FlutterActivity +import io.flutter.embedding.engine.FlutterEngine +import io.flutter.plugins.GeneratedPluginRegistrant + +class MainActivity: FlutterActivity() { + override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { + GeneratedPluginRegistrant.registerWith(flutterEngine); + } +} diff --git a/speech_to_text_/example/android/app/src/main/res/drawable/launch_background.xml b/speech_to_text_/example/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/speech_to_text_/example/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/speech_to_text_/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/speech_to_text_/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/speech_to_text_/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/speech_to_text_/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/speech_to_text_/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/android/app/src/main/res/values/styles.xml b/speech_to_text_/example/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..00fa4417 --- /dev/null +++ b/speech_to_text_/example/android/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + diff --git a/speech_to_text_/example/android/app/src/profile/AndroidManifest.xml b/speech_to_text_/example/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 00000000..36edf838 --- /dev/null +++ b/speech_to_text_/example/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/speech_to_text_/example/android/build.gradle b/speech_to_text_/example/android/build.gradle new file mode 100644 index 00000000..13546311 --- /dev/null +++ b/speech_to_text_/example/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.6.1' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/speech_to_text_/example/android/gradle.properties b/speech_to_text_/example/android/gradle.properties new file mode 100644 index 00000000..a6738207 --- /dev/null +++ b/speech_to_text_/example/android/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true +android.enableR8=true diff --git a/speech_to_text_/example/android/gradle/wrapper/gradle-wrapper.properties b/speech_to_text_/example/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..052e7951 --- /dev/null +++ b/speech_to_text_/example/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Mar 16 08:57:32 EDT 2020 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip diff --git a/speech_to_text_/example/android/settings.gradle b/speech_to_text_/example/android/settings.gradle new file mode 100644 index 00000000..5a2f14fb --- /dev/null +++ b/speech_to_text_/example/android/settings.gradle @@ -0,0 +1,15 @@ +include ':app' + +def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() + +def plugins = new Properties() +def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') +if (pluginsFile.exists()) { + pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } +} + +plugins.each { name, path -> + def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() + include ":$name" + project(":$name").projectDir = pluginDirectory +} diff --git a/speech_to_text_/example/assets/sounds/speech_to_text_cancel.m4r b/speech_to_text_/example/assets/sounds/speech_to_text_cancel.m4r new file mode 100644 index 0000000000000000000000000000000000000000..ccb3afe392f563a0c8205265f8953c5cb801794a GIT binary patch literal 14006 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 F{x65=vylJ* literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Flutter/AppFrameworkInfo.plist b/speech_to_text_/example/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 00000000..6b4c0f78 --- /dev/null +++ b/speech_to_text_/example/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 8.0 + + diff --git a/speech_to_text_/example/ios/Flutter/Debug.xcconfig b/speech_to_text_/example/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..e8efba11 --- /dev/null +++ b/speech_to_text_/example/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/speech_to_text_/example/ios/Flutter/Flutter.podspec b/speech_to_text_/example/ios/Flutter/Flutter.podspec new file mode 100644 index 00000000..5ca30416 --- /dev/null +++ b/speech_to_text_/example/ios/Flutter/Flutter.podspec @@ -0,0 +1,18 @@ +# +# NOTE: This podspec is NOT to be published. It is only used as a local source! +# + +Pod::Spec.new do |s| + s.name = 'Flutter' + s.version = '1.0.0' + s.summary = 'High-performance, high-fidelity mobile apps.' + s.description = <<-DESC +Flutter provides an easy and productive way to build and deploy high-performance mobile apps for Android and iOS. + DESC + s.homepage = 'https://flutter.io' + s.license = { :type => 'MIT' } + s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } + s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s } + s.ios.deployment_target = '8.0' + s.vendored_frameworks = 'Flutter.framework' +end diff --git a/speech_to_text_/example/ios/Flutter/Release.xcconfig b/speech_to_text_/example/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..399e9340 --- /dev/null +++ b/speech_to_text_/example/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/speech_to_text_/example/ios/Podfile b/speech_to_text_/example/ios/Podfile new file mode 100644 index 00000000..ab7d5b46 --- /dev/null +++ b/speech_to_text_/example/ios/Podfile @@ -0,0 +1,90 @@ +# Uncomment this line to define a global platform for your project +platform :ios, '10.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def parse_KV_file(file, separator='=') + file_abs_path = File.expand_path(file) + if !File.exists? file_abs_path + return []; + end + generated_key_values = {} + skip_line_start_symbols = ["#", "/"] + File.foreach(file_abs_path) do |line| + next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } + plugin = line.split(pattern=separator) + if plugin.length == 2 + podname = plugin[0].strip() + path = plugin[1].strip() + podpath = File.expand_path("#{path}", file_abs_path) + generated_key_values[podname] = podpath + else + puts "Invalid plugin specification: #{line}" + end + end + generated_key_values +end + +target 'Runner' do + use_frameworks! + use_modular_headers! + + # Flutter Pod + + copied_flutter_dir = File.join(__dir__, 'Flutter') + copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework') + copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec') + unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path) + # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet. + # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration. + # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist. + + generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig') + unless File.exist?(generated_xcode_build_settings_path) + raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path) + cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR']; + + unless File.exist?(copied_framework_path) + FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir) + end + unless File.exist?(copied_podspec_path) + FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir) + end + end + + # Keep pod path relative so it can be checked into Podfile.lock. + pod 'Flutter', :path => 'Flutter' + + # Plugin Pods + + # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock + # referring to absolute paths on developers' machines. + system('rm -rf .symlinks') + system('mkdir -p .symlinks/plugins') + plugin_pods = parse_KV_file('../.flutter-plugins') + plugin_pods.each do |name, path| + symlink = File.join('.symlinks', 'plugins', name) + File.symlink(path, symlink) + pod name, :path => File.join(symlink, 'ios') + end +end + +# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system. +install! 'cocoapods', :disable_input_output_paths => true + +post_install do |installer| + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings['ENABLE_BITCODE'] = 'NO' + end + end +end diff --git a/speech_to_text_/example/ios/Podfile.lock b/speech_to_text_/example/ios/Podfile.lock new file mode 100644 index 00000000..60c8b57d --- /dev/null +++ b/speech_to_text_/example/ios/Podfile.lock @@ -0,0 +1,29 @@ +PODS: + - Flutter (1.0.0) + - speech_to_text (0.0.1): + - Flutter + - Try + - Try (2.1.1) + +DEPENDENCIES: + - Flutter (from `Flutter`) + - speech_to_text (from `.symlinks/plugins/speech_to_text/ios`) + +SPEC REPOS: + trunk: + - Try + +EXTERNAL SOURCES: + Flutter: + :path: Flutter + speech_to_text: + :path: ".symlinks/plugins/speech_to_text/ios" + +SPEC CHECKSUMS: + Flutter: 0e3d915762c693b495b44d77113d4970485de6ec + speech_to_text: b43a7d99aef037bd758ed8e45d79bbac035d2dfe + Try: 5ef669ae832617b3cee58cb2c6f99fb767a4ff96 + +PODFILE CHECKSUM: 0ba44ad07df4ab62269dc769727cf0f12b1e453d + +COCOAPODS: 1.9.3 diff --git a/speech_to_text_/example/ios/Runner.xcodeproj/project.pbxproj b/speech_to_text_/example/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..c40af650 --- /dev/null +++ b/speech_to_text_/example/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,578 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + C446300A034BF27D9F1ACEF9 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E76E9615C6B4FABD88067D55 /* Pods_Runner.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 59AFE6BB0B596A0E0811BDFF /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 6280E2A777726D2043BF80B7 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C3909A4B7EC98A20255210E3 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + E76E9615C6B4FABD88067D55 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C446300A034BF27D9F1ACEF9 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 7937AF765430D66F28F7FEEF /* Frameworks */ = { + isa = PBXGroup; + children = ( + E76E9615C6B4FABD88067D55 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + A68CCF1640763A551D35BD31 /* Pods */, + 7937AF765430D66F28F7FEEF /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 97C146F11CF9000F007C117D /* Supporting Files */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + 97C146F11CF9000F007C117D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + ); + name = "Supporting Files"; + sourceTree = ""; + }; + A68CCF1640763A551D35BD31 /* Pods */ = { + isa = PBXGroup; + children = ( + 59AFE6BB0B596A0E0811BDFF /* Pods-Runner.debug.xcconfig */, + 6280E2A777726D2043BF80B7 /* Pods-Runner.release.xcconfig */, + C3909A4B7EC98A20255210E3 /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 949FCB95217187F2C022D6A9 /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 8B0988F04B6AE44AA0304FEF /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = "The Chromium Authors"; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = 3X949YE9K2; + LastSwiftMigration = 0910; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 8B0988F04B6AE44AA0304FEF /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 949FCB95217187F2C022D6A9 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 3X949YE9K2; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.csdcorp.speechToTextExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 3X949YE9K2; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.csdcorp.speechToTextExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 3X949YE9K2; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.csdcorp.speechToTextExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/speech_to_text_/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/speech_to_text_/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..1d526a16 --- /dev/null +++ b/speech_to_text_/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/speech_to_text_/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/speech_to_text_/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..a28140cf --- /dev/null +++ b/speech_to_text_/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/speech_to_text_/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/speech_to_text_/example/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..21a3cc14 --- /dev/null +++ b/speech_to_text_/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/speech_to_text_/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/speech_to_text_/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/speech_to_text_/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/speech_to_text_/example/ios/Runner/AppDelegate.swift b/speech_to_text_/example/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..70693e4a --- /dev/null +++ b/speech_to_text_/example/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d36b1fab --- /dev/null +++ b/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/speech_to_text_/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/speech_to_text_/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/speech_to_text_/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/speech_to_text_/example/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/speech_to_text_/example/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/speech_to_text_/example/ios/Runner/Base.lproj/Main.storyboard b/speech_to_text_/example/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..f3c28516 --- /dev/null +++ b/speech_to_text_/example/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/speech_to_text_/example/ios/Runner/Info.plist b/speech_to_text_/example/ios/Runner/Info.plist new file mode 100644 index 00000000..a69c0fce --- /dev/null +++ b/speech_to_text_/example/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + NSMicrophoneUsageDescription + This example listens for speech on the device microphone on your request. + NSSpeechRecognitionUsageDescription + This example recognizes words as you speak them and displays them. + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + speech_to_text_example + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/speech_to_text_/example/ios/Runner/Runner-Bridging-Header.h b/speech_to_text_/example/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..7335fdf9 --- /dev/null +++ b/speech_to_text_/example/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" \ No newline at end of file diff --git a/speech_to_text_/example/lib/main.dart b/speech_to_text_/example/lib/main.dart new file mode 100644 index 00000000..0115b828 --- /dev/null +++ b/speech_to_text_/example/lib/main.dart @@ -0,0 +1,275 @@ +import 'dart:async'; +import 'dart:math'; + +import 'package:flutter/material.dart'; +import 'package:permission_handler/permission_handler.dart'; +import 'package:speech_to_text/speech_recognition_error.dart'; +import 'package:speech_to_text/speech_recognition_result.dart'; +import 'package:speech_to_text/speech_to_text.dart'; + +void main() => runApp(MyApp()); + +class MyApp extends StatefulWidget { + @override + _MyAppState createState() => _MyAppState(); +} + +class _MyAppState extends State { + bool _hasSpeech = false; + double level = 0.0; + double minSoundLevel = 50000; + double maxSoundLevel = -50000; + String lastWords = ""; + String lastError = ""; + String lastStatus = ""; + String _currentLocaleId = ""; + List _localeNames = []; + final SpeechToText speech = SpeechToText(); + + @override + void initState() { + requestPermissions(); + super.initState(); + } + + Future initSpeechState() async { + bool hasSpeech = await speech.initialize( + onError: errorListener, onStatus: statusListener); + if (hasSpeech) { + _localeNames = await speech.locales(); + + var systemLocale = await speech.systemLocale(); + _currentLocaleId = systemLocale.localeId; + } + + if (!mounted) return; + + setState(() { + _hasSpeech = hasSpeech; + }); + } + + void requestPermissions() async{ + Map statuses = await [ + Permission.microphone, + ].request(); + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + appBar: AppBar( + title: const Text('Speech to Text CloudSolution'), + ), + body: Column(children: [ + Center( + child: Text( + 'Speech recognition available', + style: TextStyle(fontSize: 22.0), + ), + ), + Container( + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + FlatButton( + child: Text('Initialize'), + onPressed: _hasSpeech ? null : initSpeechState, + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + FlatButton( + child: Text('Start'), + onPressed: !_hasSpeech || speech.isListening + ? null + : startListening, + ), + FlatButton( + child: Text('Stop'), + onPressed: speech.isListening ? stopListening : null, + ), + FlatButton( + child: Text('Cancel'), + onPressed: speech.isListening ? cancelListening : null, + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + DropdownButton( + onChanged: (selectedVal) => _switchLang(selectedVal), + value: _currentLocaleId, + items: _localeNames + .map( + (localeName) => DropdownMenuItem( + value: localeName.localeId, + child: Text(localeName.name), + ), + ) + .toList(), + ), + ], + ) + ], + ), + ), + Expanded( + flex: 4, + child: Column( + children: [ + Center( + child: Text( + 'Recognized Words', + style: TextStyle(fontSize: 22.0), + ), + ), + Expanded( + child: Stack( + children: [ + Container( + color: Theme.of(context).selectedRowColor, + child: Center( + child: Text( + lastWords, + textAlign: TextAlign.center, + ), + ), + ), + Positioned.fill( + bottom: 10, + child: Align( + alignment: Alignment.bottomCenter, + child: Container( + width: 40, + height: 40, + alignment: Alignment.center, + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + blurRadius: .26, + spreadRadius: level * 1.5, + color: Colors.black.withOpacity(.05)) + ], + color: Colors.white, + borderRadius: + BorderRadius.all(Radius.circular(50)), + ), + child: IconButton(icon: Icon(Icons.mic)), + ), + ), + ), + ], + ), + ), + ], + ), + ), + Expanded( + flex: 1, + child: Column( + children: [ + Center( + child: Text( + 'Error Status', + style: TextStyle(fontSize: 22.0), + ), + ), + Center( + child: Text(lastError), + ), + ], + ), + ), + Container( + padding: EdgeInsets.symmetric(vertical: 20), + color: Theme.of(context).backgroundColor, + child: Center( + child: speech.isListening + ? Text( + "I'm listening...", + style: TextStyle(fontWeight: FontWeight.bold), + ) + : Text( + 'Not listening', + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + ), + ]), + ), + ); + } + + void startListening() { + lastWords = ""; + lastError = ""; + speech.listen( + onResult: resultListener, + listenFor: Duration(seconds: 10), + localeId: _currentLocaleId, + onSoundLevelChange: soundLevelListener, + cancelOnError: true, + partialResults: true, + onDevice: true, + listenMode: ListenMode.confirmation); + setState(() {}); + } + + void stopListening() { + speech.stop(); + setState(() { + level = 0.0; + }); + } + + void cancelListening() { + speech.cancel(); + setState(() { + level = 0.0; + }); + } + + void resultListener(SpeechRecognitionResult result) { + setState(() { + lastWords = "${result.recognizedWords} - ${result.finalResult}"; + }); + } + + void soundLevelListener(double level) { + minSoundLevel = min(minSoundLevel, level); + maxSoundLevel = max(maxSoundLevel, level); + // print("sound level $level: $minSoundLevel - $maxSoundLevel "); + setState(() { + this.level = level; + }); + } + + void errorListener(SpeechRecognitionError error) { + // print("Received error status: $error, listening: ${speech.isListening}"); + setState(() { + lastError = "${error.errorMsg} - ${error.permanent}"; + }); + } + + void statusListener(String status) { + // print( + // "Received listener status: $status, listening: ${speech.isListening}"); + setState(() { + lastStatus = "$status"; + }); + } + + _switchLang(selectedVal) { + setState(() { + _currentLocaleId = selectedVal; + }); + print(selectedVal); + } +} diff --git a/speech_to_text_/example/pubspec.yaml b/speech_to_text_/example/pubspec.yaml new file mode 100644 index 00000000..d2bfcff7 --- /dev/null +++ b/speech_to_text_/example/pubspec.yaml @@ -0,0 +1,33 @@ +name: speech_to_text_example +description: Demonstrates how to use the speech_to_text plugin. +version: 1.1.0 +publish_to: 'none' + +environment: + sdk: ">=2.1.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + + cupertino_icons: ^0.1.2 + permission_handler: ^5.0.1+1 + + provider: + +dev_dependencies: + flutter_test: + sdk: flutter + + speech_to_text: + path: ../ + +# The following section is specific to Flutter. +flutter: + + uses-material-design: true + + assets: + - assets/sounds/speech_to_text_listening.m4r + - assets/sounds/speech_to_text_cancel.m4r + - assets/sounds/speech_to_text_stop.m4r diff --git a/speech_to_text_/example/test/widget_test.dart b/speech_to_text_/example/test/widget_test.dart new file mode 100644 index 00000000..639a52fb --- /dev/null +++ b/speech_to_text_/example/test/widget_test.dart @@ -0,0 +1,27 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import '../lib/main.dart'; + +void main() { + testWidgets('Verify Platform version', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(MyApp()); + + // Verify that platform version is retrieved. + expect( + find.byWidgetPredicate( + (Widget widget) => + widget is Text && widget.data.startsWith('Running on:'), + ), + findsOneWidget, + ); + }); +} diff --git a/speech_to_text_/ios/.gitignore b/speech_to_text_/ios/.gitignore new file mode 100644 index 00000000..aa479fd3 --- /dev/null +++ b/speech_to_text_/ios/.gitignore @@ -0,0 +1,37 @@ +.idea/ +.vagrant/ +.sconsign.dblite +.svn/ + +.DS_Store +*.swp +profile + +DerivedData/ +build/ +GeneratedPluginRegistrant.h +GeneratedPluginRegistrant.m + +.generated/ + +*.pbxuser +*.mode1v3 +*.mode2v3 +*.perspectivev3 + +!default.pbxuser +!default.mode1v3 +!default.mode2v3 +!default.perspectivev3 + +xcuserdata + +*.moved-aside + +*.pyc +*sync/ +Icon? +.tags* + +/Flutter/Generated.xcconfig +/Flutter/flutter_export_environment.sh \ No newline at end of file diff --git a/speech_to_text_/ios/Assets/.gitkeep b/speech_to_text_/ios/Assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/speech_to_text_/ios/Classes/SpeechToTextPlugin.h b/speech_to_text_/ios/Classes/SpeechToTextPlugin.h new file mode 100644 index 00000000..1785eb8f --- /dev/null +++ b/speech_to_text_/ios/Classes/SpeechToTextPlugin.h @@ -0,0 +1,4 @@ +#import + +@interface SpeechToTextPlugin : NSObject +@end diff --git a/speech_to_text_/ios/Classes/SpeechToTextPlugin.m b/speech_to_text_/ios/Classes/SpeechToTextPlugin.m new file mode 100644 index 00000000..20d0327d --- /dev/null +++ b/speech_to_text_/ios/Classes/SpeechToTextPlugin.m @@ -0,0 +1,8 @@ +#import "SpeechToTextPlugin.h" +#import + +@implementation SpeechToTextPlugin ++ (void)registerWithRegistrar:(NSObject*)registrar { + [SwiftSpeechToTextPlugin registerWithRegistrar:registrar]; +} +@end diff --git a/speech_to_text_/ios/Classes/SwiftSpeechToTextPlugin.swift b/speech_to_text_/ios/Classes/SwiftSpeechToTextPlugin.swift new file mode 100644 index 00000000..68687967 --- /dev/null +++ b/speech_to_text_/ios/Classes/SwiftSpeechToTextPlugin.swift @@ -0,0 +1,580 @@ +import Flutter +import UIKit +import Speech +import os.log +import Try + +public enum SwiftSpeechToTextMethods: String { + case has_permission + case initialize + case listen + case stop + case cancel + case locales + case unknown // just for testing +} + +public enum SwiftSpeechToTextCallbackMethods: String { + case textRecognition + case notifyStatus + case notifyError + case soundLevelChange +} + +public enum SpeechToTextStatus: String { + case listening + case notListening + case unavailable + case available +} + +public enum SpeechToTextErrors: String { + case onDeviceError + case noRecognizerError + case listenFailedError + case missingOrInvalidArg +} + +public enum ListenMode: Int { + case deviceDefault = 0 + case dictation = 1 + case search = 2 + case confirmation = 3 +} + +struct SpeechRecognitionWords : Codable { + let recognizedWords: String + let confidence: Decimal +} + +struct SpeechRecognitionResult : Codable { + let alternates: [SpeechRecognitionWords] + let finalResult: Bool +} + +struct SpeechRecognitionError : Codable { + let errorMsg: String + let permanent: Bool +} + +enum SpeechToTextError: Error { + case runtimeError(String) +} + + +@available(iOS 10.0, *) +public class SwiftSpeechToTextPlugin: NSObject, FlutterPlugin { + private var channel: FlutterMethodChannel + private var registrar: FlutterPluginRegistrar + private var recognizer: SFSpeechRecognizer? + private var currentRequest: SFSpeechAudioBufferRecognitionRequest? + private var currentTask: SFSpeechRecognitionTask? + private var listeningSound: AVAudioPlayer? + private var successSound: AVAudioPlayer? + private var cancelSound: AVAudioPlayer? + private var rememberedAudioCategory: AVAudioSession.Category? + private var previousLocale: Locale? + private var onPlayEnd: (() -> Void)? + private var returnPartialResults: Bool = true + private var failedListen: Bool = false + private var listening = false + private let audioSession = AVAudioSession.sharedInstance() + private let audioEngine = AVAudioEngine() + private let jsonEncoder = JSONEncoder() + private let busForNodeTap = 0 + private let speechBufferSize: AVAudioFrameCount = 1024 + private static var subsystem = Bundle.main.bundleIdentifier! + private let pluginLog = OSLog(subsystem: "com.csdcorp.speechToText", category: "plugin") + + public static func register(with registrar: FlutterPluginRegistrar) { + let channel = FlutterMethodChannel(name: "plugin.csdcorp.com/speech_to_text", binaryMessenger: registrar.messenger()) + let instance = SwiftSpeechToTextPlugin( channel, registrar: registrar ) + registrar.addMethodCallDelegate(instance, channel: channel ) + } + + init( _ channel: FlutterMethodChannel, registrar: FlutterPluginRegistrar ) { + self.channel = channel + self.registrar = registrar + } + + public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { + switch call.method { + case SwiftSpeechToTextMethods.has_permission.rawValue: + hasPermission( result ) + case SwiftSpeechToTextMethods.initialize.rawValue: + initialize( result ) + case SwiftSpeechToTextMethods.listen.rawValue: + guard let argsArr = call.arguments as? Dictionary, + let partialResults = argsArr["partialResults"] as? Bool, let onDevice = argsArr["onDevice"] as? Bool, let listenModeIndex = argsArr["listenMode"] as? Int + else { + DispatchQueue.main.async { + result(FlutterError( code: SpeechToTextErrors.missingOrInvalidArg.rawValue, + message:"Missing arg partialResults, onDevice, and listenMode are required", + details: nil )) + } + return + } + var localeStr: String? = nil + if let localeParam = argsArr["localeId"] as? String { + localeStr = localeParam + } + guard let listenMode = ListenMode(rawValue: listenModeIndex) else { + DispatchQueue.main.async { + result(FlutterError( code: SpeechToTextErrors.missingOrInvalidArg.rawValue, + message:"invalid value for listenMode, must be 0-2, was \(listenModeIndex)", + details: nil )) + } + return + } + + listenForSpeech( result, localeStr: localeStr, partialResults: partialResults, onDevice: onDevice, listenMode: listenMode ) + case SwiftSpeechToTextMethods.stop.rawValue: + stopSpeech( result ) + case SwiftSpeechToTextMethods.cancel.rawValue: + cancelSpeech( result ) + case SwiftSpeechToTextMethods.locales.rawValue: + locales( result ) + default: + os_log("Unrecognized method: %{PUBLIC}@", log: pluginLog, type: .error, call.method) + DispatchQueue.main.async { + result( FlutterMethodNotImplemented) + } + } + } + + private func hasPermission( _ result: @escaping FlutterResult) { + let has = SFSpeechRecognizer.authorizationStatus() == SFSpeechRecognizerAuthorizationStatus.authorized && + AVAudioSession.sharedInstance().recordPermission == AVAudioSession.RecordPermission.granted + DispatchQueue.main.async { + result( has ) + } + } + + private func initialize( _ result: @escaping FlutterResult) { + var success = false + let status = SFSpeechRecognizer.authorizationStatus() + switch status { + case SFSpeechRecognizerAuthorizationStatus.notDetermined: + SFSpeechRecognizer.requestAuthorization({(status)->Void in + success = status == SFSpeechRecognizerAuthorizationStatus.authorized + if ( success ) { + AVAudioSession.sharedInstance().requestRecordPermission({(granted: Bool)-> Void in + if granted { + self.setupSpeechRecognition(result) + } else{ + self.sendBoolResult( false, result ); + os_log("User denied permission", log: self.pluginLog, type: .info) + } + }) + } + else { + self.sendBoolResult( false, result ); + } + }); + case SFSpeechRecognizerAuthorizationStatus.denied: + os_log("Permission permanently denied", log: self.pluginLog, type: .info) + sendBoolResult( false, result ); + case SFSpeechRecognizerAuthorizationStatus.restricted: + os_log("Device restriction prevented initialize", log: self.pluginLog, type: .info) + sendBoolResult( false, result ); + default: + os_log("Has permissions continuing with setup", log: self.pluginLog, type: .debug) + setupSpeechRecognition(result) + } + } + + fileprivate func sendBoolResult( _ value: Bool, _ result: @escaping FlutterResult) { + DispatchQueue.main.async { + result( value ) + } + } + + fileprivate func setupListeningSound() { + listeningSound = loadSound("assets/sounds/speech_to_text_listening.m4r") + successSound = loadSound("assets/sounds/speech_to_text_stop.m4r") + cancelSound = loadSound("assets/sounds/speech_to_text_cancel.m4r") + } + + fileprivate func loadSound( _ assetPath: String ) -> AVAudioPlayer? { + var player: AVAudioPlayer? = nil + let soundKey = registrar.lookupKey(forAsset: assetPath ) + guard !soundKey.isEmpty else { + return player + } + if let soundPath = Bundle.main.path(forResource: soundKey, ofType:nil) { + let soundUrl = URL(fileURLWithPath: soundPath ) + do { + player = try AVAudioPlayer(contentsOf: soundUrl ) + player?.delegate = self + } catch { + // no audio + } + } + return player + } + + private func setupSpeechRecognition( _ result: @escaping FlutterResult) { + setupRecognizerForLocale( locale: Locale.current ) + guard recognizer != nil else { + sendBoolResult( false, result ); + return + } + recognizer?.delegate = self + setupListeningSound() + + sendBoolResult( true, result ); + } + + private func setupRecognizerForLocale( locale: Locale ) { + if ( previousLocale == locale ) { + return + } + previousLocale = locale + recognizer = SFSpeechRecognizer( locale: locale ) + } + + private func getLocale( _ localeStr: String? ) -> Locale { + guard let aLocaleStr = localeStr else { + return Locale.current + } + let locale = Locale(identifier: aLocaleStr) + return locale + } + + private func stopSpeech( _ result: @escaping FlutterResult) { + if ( !listening ) { + sendBoolResult( false, result ); + return + } + stopAllPlayers() + if let sound = successSound { + onPlayEnd = {() -> Void in + self.currentTask?.finish() + self.stopCurrentListen( ) + self.sendBoolResult( true, result ) + return + } + sound.play() + } + else { + stopCurrentListen( ) + sendBoolResult( true, result ); + } + } + + private func cancelSpeech( _ result: @escaping FlutterResult) { + if ( !listening ) { + sendBoolResult( false, result ); + return + } + stopAllPlayers() + if let sound = cancelSound { + onPlayEnd = {() -> Void in + self.currentTask?.cancel() + self.stopCurrentListen( ) + self.sendBoolResult( true, result ) + return + } + sound.play() + } + else { + self.currentTask?.cancel() + stopCurrentListen( ) + sendBoolResult( true, result ); + } + } + + private func stopAllPlayers() { + cancelSound?.stop() + successSound?.stop() + listeningSound?.stop() + } + + private func stopCurrentListen( ) { + stopAllPlayers() + currentRequest?.endAudio() + + do { + try trap { + self.audioEngine.stop() + } + } + catch { + os_log("Error stopping engine: %{PUBLIC}@", log: pluginLog, type: .error, error.localizedDescription) + } + do { + try trap { + let inputNode = self.audioEngine.inputNode + inputNode.removeTap(onBus: self.busForNodeTap); + } + } + catch { + os_log("Error removing trap: %{PUBLIC}@", log: pluginLog, type: .error, error.localizedDescription) + } + do { + if let rememberedAudioCategory = rememberedAudioCategory { + try self.audioSession.setCategory(rememberedAudioCategory) + } + } + catch { + os_log("Error stopping listen: %{PUBLIC}@", log: pluginLog, type: .error, error.localizedDescription) + } + do { + try self.audioSession.setActive(false, options: .notifyOthersOnDeactivation) + } + catch { + os_log("Error deactivation: %{PUBLIC}@", log: pluginLog, type: .info, error.localizedDescription) + } + currentRequest = nil + currentTask = nil + onPlayEnd = nil + listening = false + } + + private func listenForSpeech( _ result: @escaping FlutterResult, localeStr: String?, partialResults: Bool, onDevice: Bool, listenMode: ListenMode ) { + if ( nil != currentTask || listening ) { + sendBoolResult( false, result ); + return + } + do { + // let inErrorTest = true + failedListen = false + returnPartialResults = partialResults + setupRecognizerForLocale(locale: getLocale(localeStr)) + guard let localRecognizer = recognizer else { + result(FlutterError( code: SpeechToTextErrors.noRecognizerError.rawValue, + message:"Failed to create speech recognizer", + details: nil )) + return + } + if ( onDevice ) { + if #available(iOS 13.0, *), !localRecognizer.supportsOnDeviceRecognition { + result(FlutterError( code: SpeechToTextErrors.onDeviceError.rawValue, + message:"on device recognition is not supported on this device", + details: nil )) + } + } + rememberedAudioCategory = self.audioSession.category + try self.audioSession.setCategory(AVAudioSession.Category.playAndRecord, options: .defaultToSpeaker) + // try self.audioSession.setMode(AVAudioSession.Mode.measurement) + try self.audioSession.setMode(AVAudioSession.Mode.default) + try self.audioSession.setActive(true, options: .notifyOthersOnDeactivation) + if let sound = listeningSound { + self.onPlayEnd = {()->Void in + if ( !self.failedListen ) { + self.listening = true + self.invokeFlutter( SwiftSpeechToTextCallbackMethods.notifyStatus, arguments: SpeechToTextStatus.listening.rawValue ) + + } + } + sound.play() + } + self.audioEngine.reset(); + let inputNode = self.audioEngine.inputNode + if(inputNode.inputFormat(forBus: 0).channelCount == 0){ + throw SpeechToTextError.runtimeError("Not enough available inputs.") + } + self.currentRequest = SFSpeechAudioBufferRecognitionRequest() + guard let currentRequest = self.currentRequest else { + sendBoolResult( false, result ); + return + } + currentRequest.shouldReportPartialResults = true + if #available(iOS 13.0, *), onDevice { + currentRequest.requiresOnDeviceRecognition = true + } + switch listenMode { + case ListenMode.dictation: + currentRequest.taskHint = SFSpeechRecognitionTaskHint.dictation + break + case ListenMode.search: + currentRequest.taskHint = SFSpeechRecognitionTaskHint.search + break + case ListenMode.confirmation: + currentRequest.taskHint = SFSpeechRecognitionTaskHint.confirmation + break + default: + break + } + self.currentTask = self.recognizer?.recognitionTask(with: currentRequest, delegate: self ) + let recordingFormat = inputNode.outputFormat(forBus: self.busForNodeTap) + try trap { + inputNode.installTap(onBus: self.busForNodeTap, bufferSize: self.speechBufferSize, format: recordingFormat) { (buffer: AVAudioPCMBuffer, when: AVAudioTime) in + currentRequest.append(buffer) + self.updateSoundLevel( buffer: buffer ) + } + } + // if ( inErrorTest ){ + // throw SpeechToTextError.runtimeError("for testing only") + // } + self.audioEngine.prepare() + try self.audioEngine.start() + if nil == listeningSound { + listening = true + self.invokeFlutter( SwiftSpeechToTextCallbackMethods.notifyStatus, arguments: SpeechToTextStatus.listening.rawValue ) + } + sendBoolResult( true, result ); + } + catch { + failedListen = true + os_log("Error starting listen: %{PUBLIC}@", log: pluginLog, type: .error, error.localizedDescription) + stopCurrentListen() + sendBoolResult( false, result ); + invokeFlutter( SwiftSpeechToTextCallbackMethods.notifyStatus, arguments: SpeechToTextStatus.notListening.rawValue ) + let speechError = SpeechRecognitionError(errorMsg: "error_listen_failed", permanent: true ) + do { + let errorResult = try jsonEncoder.encode(speechError) + invokeFlutter( SwiftSpeechToTextCallbackMethods.notifyError, arguments: String( data:errorResult, encoding: .utf8) ) + } catch { + os_log("Could not encode JSON", log: pluginLog, type: .error) + } + } + } + + private func updateSoundLevel( buffer: AVAudioPCMBuffer) { + guard + let channelData = buffer.floatChannelData + else { + return + } + + let channelDataValue = channelData.pointee + let channelDataValueArray = stride(from: 0, + to: Int(buffer.frameLength), + by: buffer.stride).map{ channelDataValue[$0] } + let frameLength = Float(buffer.frameLength) + let rms = sqrt(channelDataValueArray.map{ $0 * $0 }.reduce(0, +) / frameLength ) + let avgPower = 20 * log10(rms) + self.invokeFlutter( SwiftSpeechToTextCallbackMethods.soundLevelChange, arguments: avgPower ) + } + + /// Build a list of localId:name with the current locale first + private func locales( _ result: @escaping FlutterResult ) { + var localeNames = [String](); + let locales = SFSpeechRecognizer.supportedLocales(); + let currentLocale = Locale.current + if let idName = buildIdNameForLocale(forIdentifier: currentLocale.identifier ) { + localeNames.append(idName) + } + for locale in locales { + if ( locale.identifier == currentLocale.identifier) { + continue + } + if let idName = buildIdNameForLocale(forIdentifier: locale.identifier ) { + localeNames.append(idName) + } + } + DispatchQueue.main.async { + result(localeNames) + } + } + + private func buildIdNameForLocale( forIdentifier: String ) -> String? { + var idName: String? + if let name = Locale.current.localizedString(forIdentifier: forIdentifier ) { + let sanitizedName = name.replacingOccurrences(of: ":", with: " ") + idName = "\(forIdentifier):\(sanitizedName)" + } + return idName + } + + private func handleResult( _ transcriptions: [SFTranscription], isFinal: Bool ) { + if ( !isFinal && !returnPartialResults ) { + return + } + var speechWords: [SpeechRecognitionWords] = [] + for transcription in transcriptions { + let words: SpeechRecognitionWords = SpeechRecognitionWords(recognizedWords: transcription.formattedString, confidence: confidenceIn( transcription)) + speechWords.append( words ) + } + let speechInfo = SpeechRecognitionResult(alternates: speechWords, finalResult: isFinal ) + do { + let speechMsg = try jsonEncoder.encode(speechInfo) + if let speechStr = String( data:speechMsg, encoding: .utf8) { + os_log("Encoded JSON result: %{PUBLIC}@", log: pluginLog, type: .debug, speechStr ) + invokeFlutter( SwiftSpeechToTextCallbackMethods.textRecognition, arguments: speechStr ) + } + } catch { + os_log("Could not encode JSON", log: pluginLog, type: .error) + } + } + + private func confidenceIn( _ transcription: SFTranscription ) -> Decimal { + guard ( transcription.segments.count > 0 ) else { + return 0; + } + var totalConfidence: Float = 0.0; + for segment in transcription.segments { + totalConfidence += segment.confidence + } + let avgConfidence: Float = totalConfidence / Float(transcription.segments.count ) + let confidence: Float = (avgConfidence * 1000).rounded() / 1000 + return Decimal( string: String( describing: confidence ) )! + } + + private func invokeFlutter( _ method: SwiftSpeechToTextCallbackMethods, arguments: Any? ) { + DispatchQueue.main.async { + self.channel.invokeMethod( method.rawValue, arguments: arguments ) + } + } + +} + +@available(iOS 10.0, *) +extension SwiftSpeechToTextPlugin : SFSpeechRecognizerDelegate { + public func speechRecognizer(_ speechRecognizer: SFSpeechRecognizer, availabilityDidChange available: Bool) { + let availability = available ? SpeechToTextStatus.available.rawValue : SpeechToTextStatus.unavailable.rawValue + os_log("Availability changed: %{PUBLIC}@", log: pluginLog, type: .debug, availability) + invokeFlutter( SwiftSpeechToTextCallbackMethods.notifyStatus, arguments: availability ) + } +} + +@available(iOS 10.0, *) +extension SwiftSpeechToTextPlugin : SFSpeechRecognitionTaskDelegate { + public func speechRecognitionDidDetectSpeech(_ task: SFSpeechRecognitionTask) { + // Do nothing for now + } + + public func speechRecognitionTaskFinishedReadingAudio(_ task: SFSpeechRecognitionTask) { + reportError(source: "FinishedReadingAudio", error: task.error) + invokeFlutter( SwiftSpeechToTextCallbackMethods.notifyStatus, arguments: SpeechToTextStatus.notListening.rawValue ) + } + + public func speechRecognitionTaskWasCancelled(_ task: SFSpeechRecognitionTask) { + reportError(source: "TaskWasCancelled", error: task.error) + invokeFlutter( SwiftSpeechToTextCallbackMethods.notifyStatus, arguments: SpeechToTextStatus.notListening.rawValue ) + } + + public func speechRecognitionTask(_ task: SFSpeechRecognitionTask, didFinishSuccessfully successfully: Bool) { + reportError(source: "FinishSuccessfully", error: task.error) + stopCurrentListen( ) + } + + public func speechRecognitionTask(_ task: SFSpeechRecognitionTask, didHypothesizeTranscription transcription: SFTranscription) { + reportError(source: "HypothesizeTranscription", error: task.error) + handleResult( [transcription], isFinal: false ) + } + + public func speechRecognitionTask(_ task: SFSpeechRecognitionTask, didFinishRecognition recognitionResult: SFSpeechRecognitionResult) { + reportError(source: "FinishRecognition", error: task.error) + let isFinal = recognitionResult.isFinal + handleResult( recognitionResult.transcriptions, isFinal: isFinal ) + } + + private func reportError( source: String, error: Error?) { + if ( nil != error) { + os_log("%{PUBLIC}@ with error: %{PUBLIC}@", log: pluginLog, type: .debug, source, error.debugDescription) + } + } +} + +@available(iOS 10.0, *) +extension SwiftSpeechToTextPlugin : AVAudioPlayerDelegate { + + public func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, + successfully flag: Bool) { + if let playEnd = self.onPlayEnd { + playEnd() + } + } +} diff --git a/speech_to_text_/ios/speech_to_text.podspec b/speech_to_text_/ios/speech_to_text.podspec new file mode 100644 index 00000000..1db79aa0 --- /dev/null +++ b/speech_to_text_/ios/speech_to_text.podspec @@ -0,0 +1,22 @@ +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html +# +Pod::Spec.new do |s| + s.name = 'speech_to_text' + s.version = '0.0.1' + s.summary = 'A new flutter plugin project.' + s.description = <<-DESC +A new flutter plugin project. + DESC + s.homepage = 'http://example.com' + s.license = { :file => '../LICENSE' } + s.author = { 'Your Company' => 'email@example.com' } + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.public_header_files = 'Classes/**/*.h' + s.dependency 'Flutter' + s.dependency 'Try' + + s.ios.deployment_target = '8.0' +end + diff --git a/speech_to_text_/lib/speech_recognition_error.dart b/speech_to_text_/lib/speech_recognition_error.dart new file mode 100644 index 00000000..2ab6cd4d --- /dev/null +++ b/speech_to_text_/lib/speech_recognition_error.dart @@ -0,0 +1,44 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'speech_recognition_error.g.dart'; + +/// A single error returned from the underlying speech services. +/// +/// Errors are either transient or permanent. Permanent errors +/// block speech recognition from continuing and must be +/// addressed before recogntion will work. Transient errors +/// cause individual recognition sessions to fail but subsequent +/// attempts may well succeed. +@JsonSerializable() +class SpeechRecognitionError { + /// Use this to differentiate the various error conditions. + /// + /// Not meant for display to the user. + final String errorMsg; + + /// True means that recognition cannot continue until + /// the error is resolved. + final bool permanent; + + SpeechRecognitionError(this.errorMsg, this.permanent); + + factory SpeechRecognitionError.fromJson(Map json) => + _$SpeechRecognitionErrorFromJson(json); + Map toJson() => _$SpeechRecognitionErrorToJson(this); + + @override + String toString() { + return "SpeechRecognitionError msg: $errorMsg, permanent: $permanent"; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + other is SpeechRecognitionError && + errorMsg == other.errorMsg && + permanent == other.permanent; + } + + @override + int get hashCode => errorMsg.hashCode; +} diff --git a/speech_to_text_/lib/speech_recognition_error.g.dart b/speech_to_text_/lib/speech_recognition_error.g.dart new file mode 100644 index 00000000..65299f6d --- /dev/null +++ b/speech_to_text_/lib/speech_recognition_error.g.dart @@ -0,0 +1,22 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'speech_recognition_error.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +SpeechRecognitionError _$SpeechRecognitionErrorFromJson( + Map json) { + return SpeechRecognitionError( + json['errorMsg'] as String, + json['permanent'] as bool, + ); +} + +Map _$SpeechRecognitionErrorToJson( + SpeechRecognitionError instance) => + { + 'errorMsg': instance.errorMsg, + 'permanent': instance.permanent, + }; diff --git a/speech_to_text_/lib/speech_recognition_event.dart b/speech_to_text_/lib/speech_recognition_event.dart new file mode 100644 index 00000000..71729365 --- /dev/null +++ b/speech_to_text_/lib/speech_recognition_event.dart @@ -0,0 +1,30 @@ +import 'package:speech_to_text/speech_recognition_error.dart'; +import 'package:speech_to_text/speech_recognition_result.dart'; + +enum SpeechRecognitionEventType { + finalRecognitionEvent, + partialRecognitionEvent, + errorEvent, + statusChangeEvent, + soundLevelChangeEvent, +} + +/// A single event in a stream of speech recognition events. +/// +/// Use [eventType] to determine what type of event it is and depending on that +/// use the other properties to get information about it. +class SpeechRecognitionEvent { + final SpeechRecognitionEventType eventType; + final SpeechRecognitionError _error; + final SpeechRecognitionResult _result; + final bool _listening; + final double _level; + + SpeechRecognitionEvent( + this.eventType, this._result, this._error, this._listening, this._level); + + bool get isListening => _listening; + double get level => _level; + SpeechRecognitionResult get recognitionResult => _result; + SpeechRecognitionError get error => _error; +} diff --git a/speech_to_text_/lib/speech_recognition_result.dart b/speech_to_text_/lib/speech_recognition_result.dart new file mode 100644 index 00000000..38509f65 --- /dev/null +++ b/speech_to_text_/lib/speech_recognition_result.dart @@ -0,0 +1,140 @@ +import 'dart:collection'; + +import 'package:json_annotation/json_annotation.dart'; + +part 'speech_recognition_result.g.dart'; + +/// A sequence of recognized words from the speech recognition +/// service. +/// +/// Depending on the platform behaviour the words may come in all +/// at once at the end or as partial results as each word is +/// recognized. Use the [finalResult] flag to determine if the +/// result is considered final by the platform. +@JsonSerializable(explicitToJson: true) +class SpeechRecognitionResult { + List _alternates; + + /// Returns a list of possible transcriptions of the speech. + /// + /// The first value is always the same as the [recognizedWords] + /// value. Use the confidence for each alternate transcription + /// to determine how likely it is. Note that not all platforms + /// do a good job with confidence, there are convenience methods + /// on [SpeechRecogntionWords] to work with possibly missing + /// confidence values. + List get alternates => + UnmodifiableListView(_alternates); + + /// The sequence of words that is the best transcription of + /// what was said. + /// + /// This is the same as the first value of [alternates]. + String get recognizedWords => + _alternates.isNotEmpty ? _alternates.first.recognizedWords : ""; + + /// False means the words are an interim result, true means + /// they are the final recognition. + final bool finalResult; + + /// The confidence that the [recognizedWords] are correct. + /// + /// Confidence is expressed as a value between 0 and 1. -1 + /// means that the confidence value was not available. + double get confidence => + _alternates.isNotEmpty ? _alternates.first.confidence : 0; + + /// true if there is confidence in this recognition, false otherwise. + /// + /// There are two separate ways for there to be confidence, the first + /// is if the confidence is missing, which is indicated by a value of + /// -1. The second is if the confidence is greater than or equal + /// [threshold]. If [threshold] is not provided it defaults to 0.8. + bool isConfident( + {double threshold = SpeechRecognitionWords.confidenceThreshold}) => + _alternates.isNotEmpty + ? _alternates.first.isConfident(threshold: threshold) + : false; + + /// true if [confidence] is not the [missingConfidence] value, false + /// otherwise. + bool get hasConfidenceRating => + _alternates.isNotEmpty ? _alternates.first.hasConfidenceRating : false; + + SpeechRecognitionResult(this._alternates, this.finalResult); + + @override + String toString() { + return "SpeechRecognitionResult words: $_alternates, final: $finalResult"; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + other is SpeechRecognitionResult && + recognizedWords == other.recognizedWords && + finalResult == other.finalResult; + } + + @override + int get hashCode => recognizedWords.hashCode; + + factory SpeechRecognitionResult.fromJson(Map json) => + _$SpeechRecognitionResultFromJson(json); + Map toJson() => _$SpeechRecognitionResultToJson(this); +} + +/// A set of words recognized in a [SpeechRecognitionResult]. +/// +/// Each result will have one or more [SpeechRecognitionWords] +/// with a varying degree of confidence about each set of words. +@JsonSerializable() +class SpeechRecognitionWords { + /// The sequence of words recognized + final String recognizedWords; + + /// The confidence that the [recognizedWords] are correct. + /// + /// Confidence is expressed as a value between 0 and 1. 0 + /// means that the confidence value was not available. Use + /// [isConfident] which will ignore 0 values automatically. + final double confidence; + + static const double confidenceThreshold = 0.8; + static const double missingConfidence = -1; + + const SpeechRecognitionWords(this.recognizedWords, this.confidence); + + /// true if there is confidence in this recognition, false otherwise. + /// + /// There are two separate ways for there to be confidence, the first + /// is if the confidence is missing, which is indicated by a value of + /// -1. The second is if the confidence is greater than or equal + /// [threshold]. If [threshold] is not provided it defaults to 0.8. + bool isConfident({double threshold = confidenceThreshold}) => + confidence == missingConfidence || confidence >= threshold; + + /// true if [confidence] is not the [missingConfidence] value, false + /// otherwise. + bool get hasConfidenceRating => confidence != missingConfidence; + + @override + String toString() { + return "SpeechRecognitionWords words: $recognizedWords, confidence: $confidence"; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + other is SpeechRecognitionWords && + recognizedWords == other.recognizedWords && + confidence == other.confidence; + } + + @override + int get hashCode => recognizedWords.hashCode; + + factory SpeechRecognitionWords.fromJson(Map json) => + _$SpeechRecognitionWordsFromJson(json); + Map toJson() => _$SpeechRecognitionWordsToJson(this); +} diff --git a/speech_to_text_/lib/speech_recognition_result.g.dart b/speech_to_text_/lib/speech_recognition_result.g.dart new file mode 100644 index 00000000..023e5485 --- /dev/null +++ b/speech_to_text_/lib/speech_recognition_result.g.dart @@ -0,0 +1,41 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'speech_recognition_result.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +SpeechRecognitionResult _$SpeechRecognitionResultFromJson( + Map json) { + return SpeechRecognitionResult( + (json['alternates'] as List) + ?.map((e) => e == null + ? null + : SpeechRecognitionWords.fromJson(e as Map)) + ?.toList(), + json['finalResult'] as bool, + ); +} + +Map _$SpeechRecognitionResultToJson( + SpeechRecognitionResult instance) => + { + 'alternates': instance.alternates?.map((e) => e?.toJson())?.toList(), + 'finalResult': instance.finalResult, + }; + +SpeechRecognitionWords _$SpeechRecognitionWordsFromJson( + Map json) { + return SpeechRecognitionWords( + json['recognizedWords'] as String, + (json['confidence'] as num)?.toDouble(), + ); +} + +Map _$SpeechRecognitionWordsToJson( + SpeechRecognitionWords instance) => + { + 'recognizedWords': instance.recognizedWords, + 'confidence': instance.confidence, + }; diff --git a/speech_to_text_/lib/speech_to_text.dart b/speech_to_text_/lib/speech_to_text.dart new file mode 100644 index 00000000..343706e6 --- /dev/null +++ b/speech_to_text_/lib/speech_to_text.dart @@ -0,0 +1,511 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:math'; + +import 'package:clock/clock.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_recognition_error.dart'; +import 'package:speech_to_text/speech_recognition_result.dart'; + +enum ListenMode { + deviceDefault, + dictation, + search, + confirmation, +} + +/// Notified as words are recognized with the current set of recognized words. +/// +/// See the [onResult] argument on the [listen] method for use. +typedef SpeechResultListener = void Function(SpeechRecognitionResult result); + +/// Notified if errors occur during recognition or intialization. +/// +/// Possible errors per the Android docs are described here: +/// https://developer.android.com/reference/android/speech/SpeechRecognizer +/// "error_audio_error" +/// "error_client" +/// "error_permission" +/// "error_network" +/// "error_network_timeout" +/// "error_no_match" +/// "error_busy" +/// "error_server" +/// "error_speech_timeout" +/// See the [onError] argument on the [initialize] method for use. +typedef SpeechErrorListener = void Function( + SpeechRecognitionError errorNotification); + +/// Notified when recognition status changes. +/// +/// See the [onStatus] argument on the [initialize] method for use. +typedef SpeechStatusListener = void Function(String status); + +/// Notified when the sound level changes during a listen method. +/// +/// [level] is a measure of the decibels of the current sound on +/// the recognition input. See the [onSoundLevelChange] argument on +/// the [listen] method for use. +typedef SpeechSoundLevelChange = Function(double level); + +/// An interface to device specific speech recognition services. +/// +/// The general flow of a speech recognition session is as follows: +/// ```Dart +/// SpeechToText speech = SpeechToText(); +/// bool isReady = await speech.initialize(); +/// if ( isReady ) { +/// await speech.listen( resultListener: resultListener ); +/// } +/// ... +/// // At some point later +/// speech.stop(); +/// ``` +class SpeechToText { + static const String listenMethod = 'listen'; + static const String textRecognitionMethod = 'textRecognition'; + static const String notifyErrorMethod = 'notifyError'; + static const String notifyStatusMethod = 'notifyStatus'; + static const String soundLevelChangeMethod = "soundLevelChange"; + static const String notListeningStatus = "notListening"; + static const String listeningStatus = "listening"; + + static const MethodChannel speechChannel = + const MethodChannel('plugin.csdcorp.com/speech_to_text'); + static final SpeechToText _instance = + SpeechToText.withMethodChannel(speechChannel); + bool _initWorked = false; + bool _recognized = false; + bool _listening = false; + bool _cancelOnError = false; + bool _partialResults = false; + int _listenStartedAt = 0; + int _lastSpeechEventAt = 0; + Duration _pauseFor; + Duration _listenFor; + + /// True if not listening or the user called cancel / stop, false + /// if cancel/stop were invoked by timeout or error condition. + bool _userEnded = false; + String _lastRecognized = ""; + String _lastStatus = ""; + double _lastSoundLevel = 0; + Timer _listenTimer; + LocaleName _systemLocale; + SpeechRecognitionError _lastError; + SpeechResultListener _resultListener; + SpeechErrorListener errorListener; + SpeechStatusListener statusListener; + SpeechSoundLevelChange _soundLevelChange; + + final MethodChannel channel; + factory SpeechToText() => _instance; + + @visibleForTesting + SpeechToText.withMethodChannel(this.channel); + + /// True if words have been recognized during the current [listen] call. + /// + /// Goes false as soon as [cancel] is called. + bool get hasRecognized => _recognized; + + /// The last set of recognized words received. + /// + /// This is maintained across [cancel] calls but cleared on the next + /// [listen]. + String get lastRecognizedWords => _lastRecognized; + + /// The last status update received, see [initialize] to register + /// an optional listener to be notified when this changes. + String get lastStatus => _lastStatus; + + /// The last sound level received during a listen event. + /// + /// The sound level is a measure of how loud the current + /// input is during listening. Use the [onSoundLevelChange] + /// argument in the [listen] method to get notified of + /// changes. + double get lastSoundLevel => _lastSoundLevel; + + /// True if [initialize] succeeded + bool get isAvailable => _initWorked; + + /// True if [listen] succeeded and [stop] or [cancel] has not been called. + /// + /// Also goes false when listening times out if listenFor was set. + bool get isListening => _listening; + bool get isNotListening => !isListening; + + /// The last error received or null if none, see [initialize] to + /// register an optional listener to be notified of errors. + SpeechRecognitionError get lastError => _lastError; + + /// True if an error has been received, see [lastError] for details + bool get hasError => null != lastError; + + /// Returns true if the user has already granted permission to access the + /// microphone, does not prompt the user. + /// + /// This method can be called before [initialize] to check if permission + /// has already been granted. If this returns false then the [initialize] + /// call will prompt the user for permission if it is allowed to do so. + /// Note that applications cannot ask for permission again if the user has + /// denied them permission in the past. + Future get hasPermission async { + bool hasPermission = await channel.invokeMethod('has_permission'); + return hasPermission; + } + + /// Initialize speech recognition services, returns true if + /// successful, false if failed. + /// + /// This method must be called before any other speech functions. + /// If this method returns false no further [SpeechToText] methods + /// should be used. Should only be called once if successful but does protect + /// itself if called repeatedly. False usually means that the user has denied + /// permission to use speech. The usual option in that case is to give them + /// instructions on how to open system settings and grant permission. + /// + /// [onError] is an optional listener for errors like + /// timeout, or failure of the device speech recognition. + /// [onStatus] is an optional listener for status changes from + /// listening to not listening. + /// [debugLogging] controls whether there is detailed logging from the underlying + /// plugins. It is off by default, usually only useful for troubleshooting issues + /// with a paritcular OS version or device, fairly verbose + Future initialize( + {SpeechErrorListener onError, + SpeechStatusListener onStatus, + debugLogging = false}) async { + if (_initWorked) { + return Future.value(_initWorked); + } + errorListener = onError; + statusListener = onStatus; + channel.setMethodCallHandler(_handleCallbacks); + _initWorked = await channel + .invokeMethod('initialize', {"debugLogging": debugLogging}); + return _initWorked; + } + + /// Stops the current listen for speech if active, does nothing if not. + /// + /// Stopping a listen session will cause a final result to be sent. Each + /// listen session should be ended with either [stop] or [cancel], for + /// example in the dispose method of a Widget. [cancel] is automatically + /// invoked by a permanent error if [cancelOnError] is set to true in the + /// [listen] call. + /// + /// *Note:* Cannot be used until a successful [initialize] call. Should + /// only be used after a successful [listen] call. + Future stop() async { + _userEnded = true; + return _stop(); + } + + Future _stop() async { + if (!_initWorked) { + return; + } + _shutdownListener(); + await channel.invokeMethod('stop'); + } + + /// Cancels the current listen for speech if active, does nothing if not. + /// + /// Canceling means that there will be no final result returned from the + /// recognizer. Each listen session should be ended with either [stop] or + /// [cancel], for example in the dispose method of a Widget. [cancel] is + /// automatically invoked by a permanent error if [cancelOnError] is set + /// to true in the [listen] call. + /// + /// *Note* Cannot be used until a successful [initialize] call. Should only + /// be used after a successful [listen] call. + Future cancel() async { + _userEnded = true; + return _cancel(); + } + + Future _cancel() async { + if (!_initWorked) { + return; + } + _shutdownListener(); + await channel.invokeMethod('cancel'); + } + + /// Starts a listening session for speech and converts it to text, + /// invoking the provided [onResult] method as words are recognized. + /// + /// Cannot be used until a successful [initialize] call. There is a + /// time limit on listening imposed by both Android and iOS. The time + /// depends on the device, network, etc. Android is usually quite short, + /// especially if there is no active speech event detected, on the order + /// of ten seconds or so. + /// + /// When listening is done always invoke either [cancel] or [stop] to + /// end the session, even if it times out. [cancelOnError] provides an + /// automatic way to ensure this happens. + /// + /// [onResult] is an optional listener that is notified when words + /// are recognized. + /// + /// [listenFor] sets the maximum duration that it will listen for, after + /// that it automatically stops the listen for you. + /// + /// [pauseFor] sets the maximum duration of a pause in speech with no words + /// detected, after that it automatically stops the listen for you. + /// + /// [localeId] is an optional locale that can be used to listen in a language + /// other than the current system default. See [locales] to find the list of + /// supported languages for listening. + /// + /// [onSoundLevelChange] is an optional listener that is notified when the + /// sound level of the input changes. Use this to update the UI in response to + /// more or less input. The values currently differ between Ancroid and iOS, + /// haven't yet been able to determine from the Android documentation what the + /// value means. On iOS the value returned is in decibels. + /// + /// [cancelOnError] if true then listening is automatically canceled on a + /// permanent error. This defaults to false. When false cancel should be + /// called from the error handler. + /// + /// [partialResults] if true the listen reports results as they are recognized, + /// when false only final results are reported. Defaults to true. + /// + /// [onDevice] if true the listen attempts to recognize locally with speech never + /// leaving the device. If it cannot do this the listen attempt will fail. This is + /// usually only needed for sensitive content where privacy or security is a concern. + Future listen( + {SpeechResultListener onResult, + Duration listenFor, + Duration pauseFor, + String localeId, + SpeechSoundLevelChange onSoundLevelChange, + cancelOnError = false, + partialResults = true, + onDevice = false, + ListenMode listenMode = ListenMode.confirmation}) async { + if (!_initWorked) { + throw SpeechToTextNotInitializedException(); + } + _userEnded = false; + _cancelOnError = cancelOnError; + _recognized = false; + _resultListener = onResult; + _soundLevelChange = onSoundLevelChange; + _partialResults = partialResults; + Map listenParams = { + "partialResults": partialResults || null != pauseFor, + "onDevice": onDevice, + "listenMode": listenMode.index, + }; + if (null != localeId) { + listenParams["localeId"] = localeId; + } + try { + bool started = await channel.invokeMethod(listenMethod, listenParams); + if (started) { + _listenStartedAt = clock.now().millisecondsSinceEpoch; + _setupListenAndPause(pauseFor, listenFor); + } + } on PlatformException catch (e) { + throw ListenFailedException(e.details); + } + } + + void _setupListenAndPause(Duration pauseFor, Duration listenFor) { + _pauseFor = null; + _listenFor = null; + if (null == pauseFor && null == listenFor) { + return; + } + var minDuration; + if (null == pauseFor) { + _listenFor = Duration(milliseconds: listenFor.inMilliseconds); + minDuration = listenFor; + } else if (null == listenFor) { + _pauseFor = Duration(milliseconds: pauseFor.inMilliseconds); + minDuration = pauseFor; + } else { + _listenFor = Duration(milliseconds: listenFor.inMilliseconds); + _pauseFor = Duration(milliseconds: pauseFor.inMilliseconds); + var minMillis = min(listenFor.inMilliseconds - _elapsedListenMillis, + pauseFor.inMilliseconds); + minDuration = Duration(milliseconds: minMillis); + } + _listenTimer = Timer(minDuration, _stopOnPauseOrListen); + } + + int get _elapsedListenMillis => + clock.now().millisecondsSinceEpoch - _listenStartedAt; + int get _elapsedSinceSpeechEvent => + clock.now().millisecondsSinceEpoch - _lastSpeechEventAt; + + void _stopOnPauseOrListen() { + if (null != _listenFor && + _elapsedListenMillis >= _listenFor.inMilliseconds) { + _stop(); + } else if (null != _pauseFor && + _elapsedSinceSpeechEvent >= _pauseFor.inMilliseconds) { + _stop(); + } else { + _setupListenAndPause(_pauseFor, _listenFor); + } + } + + /// returns the list of speech locales available on the device. + /// + /// This method is useful to find the identifier to use + /// for the [listen] method, it is the [localeId] member of the + /// [LocaleName]. + /// + /// Each [LocaleName] in the returned list has the + /// identifier for the locale as well as a name for + /// display. The name is localized for the system locale on + /// the device. + Future> locales() async { + if (!_initWorked) { + throw SpeechToTextNotInitializedException(); + } + final List locales = await channel.invokeMethod('locales'); + List filteredLocales = locales + .map((locale) { + var components = locale.split(":"); + if (components.length != 2) { + return null; + } + return LocaleName(components[0], components[1]); + }) + .where((item) => item != null) + .toList(); + if (filteredLocales.isNotEmpty) { + _systemLocale = filteredLocales.first; + } else { + _systemLocale = null; + } + filteredLocales.sort((ln1, ln2) => ln1.name.compareTo(ln2.name)); + return filteredLocales; + } + + /// returns the locale that will be used if no localeId is passed + /// to the [listen] method. + Future systemLocale() async { + if (null == _systemLocale) { + await locales(); + } + return Future.value(_systemLocale); + } + + Future _handleCallbacks(MethodCall call) async { + // print("SpeechToText call: ${call.method} ${call.arguments}"); + switch (call.method) { + case textRecognitionMethod: + if (call.arguments is String) { + _onTextRecognition(call.arguments); + } + break; + case notifyErrorMethod: + if (call.arguments is String) { + await _onNotifyError(call.arguments); + } + break; + case notifyStatusMethod: + if (call.arguments is String) { + _onNotifyStatus(call.arguments); + } + break; + case soundLevelChangeMethod: + if (call.arguments is double) { + _onSoundLevelChange(call.arguments); + } + break; + default: + } + } + + void _onTextRecognition(String resultJson) { + _lastSpeechEventAt = clock.now().millisecondsSinceEpoch; + Map resultMap = jsonDecode(resultJson); + SpeechRecognitionResult speechResult = + SpeechRecognitionResult.fromJson(resultMap); + if (!_partialResults && !speechResult.finalResult) { + return; + } + _recognized = true; + // print("Recognized text $resultJson"); + + _lastRecognized = speechResult.recognizedWords; + if (null != _resultListener) { + _resultListener(speechResult); + } + } + + Future _onNotifyError(String errorJson) async { + if (isNotListening && _userEnded) { + return; + } + Map errorMap = jsonDecode(errorJson); + SpeechRecognitionError speechError = + SpeechRecognitionError.fromJson(errorMap); + _lastError = speechError; + if (null != errorListener) { + errorListener(speechError); + } + if (_cancelOnError && speechError.permanent) { + await _cancel(); + } + } + + void _onNotifyStatus(String status) { + _lastStatus = status; + _listening = status == listeningStatus; + // print(status); + if (null != statusListener) { + statusListener(status); + } + } + + void _onSoundLevelChange(double level) { + if (isNotListening) { + return; + } + _lastSoundLevel = level; + if (null != _soundLevelChange) { + _soundLevelChange(level); + } + } + + _shutdownListener() { + _listening = false; + _recognized = false; + _listenTimer?.cancel(); + _listenTimer = null; + } + + @visibleForTesting + Future processMethodCall(MethodCall call) async { + return await _handleCallbacks(call); + } +} + +/// A single locale with a [name], localized to the current system locale, +/// and a [localeId] which can be used in the [listen] method to choose a +/// locale for speech recognition. +class LocaleName { + final String localeId; + final String name; + LocaleName(this.localeId, this.name); +} + +/// Thrown when a method is called that requires successful +/// initialization first. +class SpeechToTextNotInitializedException implements Exception {} + +/// Thrown when listen fails to properly start a speech listening session +/// on the device +class ListenFailedException implements Exception { + final String details; + ListenFailedException(this.details); +} diff --git a/speech_to_text_/lib/speech_to_text_provider.dart b/speech_to_text_/lib/speech_to_text_provider.dart new file mode 100644 index 00000000..91adf3b4 --- /dev/null +++ b/speech_to_text_/lib/speech_to_text_provider.dart @@ -0,0 +1,201 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:speech_to_text/speech_recognition_error.dart'; +import 'package:speech_to_text/speech_recognition_event.dart'; +import 'package:speech_to_text/speech_recognition_result.dart'; +import 'package:speech_to_text/speech_to_text.dart'; + +/// Simplifies interaction with [SpeechToText] by handling all the callbacks and notifying +/// listeners as events happen. +/// +/// Here's an example of using the [SpeechToTextProvider] +/// ``` +/// var speechProvider = SpeechToTextProvider( SpeechToText()); +/// var available = await speechProvider.initialize(); +/// StreamSubscription _subscription; +/// _subscription = speechProvider.recognitionController.stream.listen((recognitionEvent) { +/// if (recognitionEvent.eventType == SpeechRecognitionEventType.finalRecognitionEvent ) { +/// print("I heard: ${recognitionEvent.recognitionResult.recognizedWords}"); +/// } +/// }); +/// speechProvider.addListener(() { +/// var words = speechProvider.lastWords; +/// }); +class SpeechToTextProvider extends ChangeNotifier { + final StreamController _recognitionController = + StreamController.broadcast(); + final SpeechToText _speechToText; + SpeechRecognitionResult _lastResult; + double _lastLevel = 0; + List _locales = []; + LocaleName _systemLocale; + + /// Only construct one instance in an application. + /// + /// Do not call `initialize` on the [SpeechToText] that is passed as a parameter, instead + /// call the [initialize] method on this class. + SpeechToTextProvider(this._speechToText); + + Stream get stream => _recognitionController.stream; + + /// Returns the last result received, may be null. + SpeechRecognitionResult get lastResult => _lastResult; + + /// Returns the last error received, may be null. + SpeechRecognitionError get lastError => _speechToText.lastError; + + /// Returns the last sound level received. + /// + /// Note this is only available when the `soundLevel` is set to true on + /// a call to [listen], will be 0 at all other times. + double get lastLevel => _lastLevel; + + /// Initializes the provider and the contained [SpeechToText] instance. + /// + /// Returns true if [SpeechToText] was initialized successful and can now + /// be used, false otherwse. + Future initialize() async { + if (isAvailable) { + return isAvailable; + } + bool availableBefore = _speechToText.isAvailable; + bool available = + await _speechToText.initialize(onStatus: _onStatus, onError: _onError); + if (available) { + _locales = []; + _locales.addAll(await _speechToText.locales()); + _systemLocale = await _speechToText.systemLocale(); + } + if (availableBefore != available) { + notifyListeners(); + } + return available; + } + + /// Returns true if the provider has been initialized and can be used to recognize speech. + bool get isAvailable => _speechToText.isAvailable; + + /// Returns true if the provider cannot be used to recognize speech, either because it has not + /// yet been initialized or because initialization failed. + bool get isNotAvailable => !_speechToText.isAvailable; + + /// Returns true if [SpeechToText] is listening for new speech. + bool get isListening => _speechToText.isListening; + + /// Returns true if [SpeechToText] is not listening for new speech. + bool get isNotListening => _speechToText.isNotListening; + + /// Returns true if [SpeechToText] has a previous error. + bool get hasError => _speechToText.hasError; + + /// Returns true if [lastResult] has a last result. + bool get hasResults => null != _lastResult; + + /// Returns the list of locales that are available on the device for speech recognition. + List get locales => _locales; + + /// Returns the locale that is currently set as active on the device. + LocaleName get systemLocale => _systemLocale; + + /// Start listening for new events, set [partialResults] to true to receive interim + /// recognition results. + /// + /// [soundLevel] set to true to be notified on changes to the input sound level + /// on the microphone. + /// + /// [listenFor] sets the maximum duration that it will listen for, after + /// that it automatically stops the listen for you. + /// + /// [pauseFor] sets the maximum duration of a pause in speech with no words + /// detected, after that it automatically stops the listen for you. + /// + /// Call this only after a successful [initialize] call + void listen( + {bool partialResults = false, + bool soundLevel = false, + Duration listenFor, + Duration pauseFor}) { + _lastLevel = 0; + _lastResult = null; + if (soundLevel) { + _speechToText.listen( + partialResults: partialResults, + listenFor: listenFor, + pauseFor: pauseFor, + cancelOnError: true, + onResult: _onListenResult, + // onSoundLevelChange: _onSoundLevelChange); + ); + } else { + _speechToText.listen( + partialResults: partialResults, + listenFor: listenFor, + pauseFor: pauseFor, + cancelOnError: true, + onResult: _onListenResult); + } + } + + /// Stops a current active listening session. + /// + /// Call this after calling [listen] to stop the recognizer from listening further + /// and return the current result as final. + void stop() { + _speechToText.stop(); + notifyListeners(); + } + + /// Cancel a current active listening session. + /// + /// Call this after calling [listen] to stop the recognizer from listening further + /// and ignore any results recognized so far. + void cancel() { + _speechToText.cancel(); + notifyListeners(); + } + + void _onError(SpeechRecognitionError errorNotification) { + _recognitionController.add(SpeechRecognitionEvent( + SpeechRecognitionEventType.errorEvent, + null, + errorNotification, + isListening, + null)); + notifyListeners(); + } + + void _onStatus(String status) { + _recognitionController.add(SpeechRecognitionEvent( + SpeechRecognitionEventType.statusChangeEvent, + null, + null, + isListening, + null)); + notifyListeners(); + } + + void _onListenResult(SpeechRecognitionResult result) { + _lastResult = result; + _recognitionController.add(SpeechRecognitionEvent( + result.finalResult + ? SpeechRecognitionEventType.finalRecognitionEvent + : SpeechRecognitionEventType.partialRecognitionEvent, + result, + null, + isListening, + null)); + notifyListeners(); + } + + // void _onSoundLevelChange(double level) { + // _lastLevel = level; + // _recognitionController.add(SpeechRecognitionEvent( + // SpeechRecognitionEventType.soundLevelChangeEvent, + // null, + // null, + // null, + // level)); + // notifyListeners(); + // } +} diff --git a/speech_to_text_/pubspec.yaml b/speech_to_text_/pubspec.yaml new file mode 100644 index 00000000..34b3da29 --- /dev/null +++ b/speech_to_text_/pubspec.yaml @@ -0,0 +1,31 @@ +name: speech_to_text +description: A Flutter plugin that exposes device specific speech to text recognition capability. + + + +environment: + sdk: ">=2.1.0 <3.0.0" + flutter: ">=1.10.0" + +dependencies: + flutter: + sdk: flutter + json_annotation: ^3.0.0 + clock: ^1.0.1 + +dev_dependencies: + flutter_test: + sdk: flutter + build_runner: ^1.0.0 + json_serializable: ^3.0.0 + fake_async: ^1.0.1 + +flutter: + plugin: + platforms: + android: + package: com.csdcorp.speech_to_text + pluginClass: SpeechToTextPlugin + ios: + pluginClass: SpeechToTextPlugin + diff --git a/speech_to_text_/test/speech_recognition_error_test.dart b/speech_to_text_/test/speech_recognition_error_test.dart new file mode 100644 index 00000000..202ae4cd --- /dev/null +++ b/speech_to_text_/test/speech_recognition_error_test.dart @@ -0,0 +1,65 @@ +import 'dart:convert'; + +import 'package:flutter_test/flutter_test.dart'; +import 'package:speech_to_text/speech_recognition_error.dart'; + +void main() { + const String msg1 = "msg1"; + + setUp(() {}); + + group('properties', () { + test('equals true for same object', () { + SpeechRecognitionError error = SpeechRecognitionError(msg1, false); + expect(error, error); + }); + test('equals true for different object same values', () { + SpeechRecognitionError error1 = SpeechRecognitionError(msg1, false); + SpeechRecognitionError error2 = SpeechRecognitionError(msg1, false); + expect(error1, error2); + }); + test('equals false for different object', () { + SpeechRecognitionError error1 = SpeechRecognitionError(msg1, false); + SpeechRecognitionError error2 = SpeechRecognitionError("msg2", false); + expect(error1, isNot(error2)); + }); + test('hash same for same object', () { + SpeechRecognitionError error = SpeechRecognitionError(msg1, false); + expect(error.hashCode, error.hashCode); + }); + test('hash same for different object same values', () { + SpeechRecognitionError error1 = SpeechRecognitionError(msg1, false); + SpeechRecognitionError error2 = SpeechRecognitionError(msg1, false); + expect(error1.hashCode, error2.hashCode); + }); + test('hash different for different object', () { + SpeechRecognitionError error1 = SpeechRecognitionError(msg1, false); + SpeechRecognitionError error2 = SpeechRecognitionError("msg2", false); + expect(error1.hashCode, isNot(error2.hashCode)); + }); + test('toString as expected', () { + SpeechRecognitionError error1 = SpeechRecognitionError(msg1, false); + expect(error1.toString(), + "SpeechRecognitionError msg: $msg1, permanent: false"); + }); + }); + group('json', () { + test('loads properly', () { + var json = jsonDecode('{"errorMsg":"$msg1","permanent":true}'); + SpeechRecognitionError error = SpeechRecognitionError.fromJson(json); + expect(error.errorMsg, msg1); + expect(error.permanent, isTrue); + json = jsonDecode('{"errorMsg":"$msg1","permanent":false}'); + error = SpeechRecognitionError.fromJson(json); + expect(error.permanent, isFalse); + }); + test('roundtrips properly', () { + var json = jsonDecode('{"errorMsg":"$msg1","permanent":true}'); + SpeechRecognitionError error = SpeechRecognitionError.fromJson(json); + var roundtripJson = error.toJson(); + SpeechRecognitionError roundtripError = + SpeechRecognitionError.fromJson(roundtripJson); + expect(error, roundtripError); + }); + }); +} diff --git a/speech_to_text_/test/speech_recognition_event_test.dart b/speech_to_text_/test/speech_recognition_event_test.dart new file mode 100644 index 00000000..ceaaab8a --- /dev/null +++ b/speech_to_text_/test/speech_recognition_event_test.dart @@ -0,0 +1,42 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:speech_to_text/speech_recognition_event.dart'; + +import 'test_speech_channel_handler.dart'; + +void main() { + group('properties', () { + test('status listening matches', () { + var event = SpeechRecognitionEvent( + SpeechRecognitionEventType.statusChangeEvent, null, null, true, null); + expect(event.eventType, SpeechRecognitionEventType.statusChangeEvent); + expect(event.isListening, isTrue); + }); + test('result matches', () { + var event = SpeechRecognitionEvent( + SpeechRecognitionEventType.finalRecognitionEvent, + TestSpeechChannelHandler.firstRecognizedResult, + null, + null, + null); + expect(event.eventType, SpeechRecognitionEventType.finalRecognitionEvent); + expect(event.recognitionResult, + TestSpeechChannelHandler.firstRecognizedResult); + }); + test('error matches', () { + var event = SpeechRecognitionEvent(SpeechRecognitionEventType.errorEvent, + null, TestSpeechChannelHandler.firstError, null, null); + expect(event.eventType, SpeechRecognitionEventType.errorEvent); + expect(event.error, TestSpeechChannelHandler.firstError); + }); + test('sound level matches', () { + var event = SpeechRecognitionEvent( + SpeechRecognitionEventType.soundLevelChangeEvent, + null, + null, + null, + TestSpeechChannelHandler.level1); + expect(event.eventType, SpeechRecognitionEventType.soundLevelChangeEvent); + expect(event.level, TestSpeechChannelHandler.level1); + }); + }); +} diff --git a/speech_to_text_/test/speech_recognition_result_test.dart b/speech_to_text_/test/speech_recognition_result_test.dart new file mode 100644 index 00000000..1516779a --- /dev/null +++ b/speech_to_text_/test/speech_recognition_result_test.dart @@ -0,0 +1,134 @@ +import 'dart:convert'; + +import 'package:flutter_test/flutter_test.dart'; +import 'package:speech_to_text/speech_recognition_result.dart'; + +void main() { + final String firstRecognizedWords = 'hello'; + final String secondRecognizedWords = 'hello there'; + final double firstConfidence = 0.85; + final double secondConfidence = 0.62; + final String firstRecognizedJson = + '{"alternates":[{"recognizedWords":"$firstRecognizedWords","confidence":$firstConfidence}],"finalResult":false}'; + final String secondRecognizedJson = + '{"alternates":[{"recognizedWords":"$secondRecognizedWords","confidence":$secondConfidence}],"finalResult":false}'; + final SpeechRecognitionWords firstWords = + SpeechRecognitionWords(firstRecognizedWords, firstConfidence); + final SpeechRecognitionWords secondWords = + SpeechRecognitionWords(secondRecognizedWords, secondConfidence); + + setUp(() {}); + + group('recognizedWords', () { + test('empty if no alternates', () { + SpeechRecognitionResult result = SpeechRecognitionResult([], true); + expect(result.recognizedWords, isEmpty); + }); + test('matches first alternate', () { + SpeechRecognitionResult result = + SpeechRecognitionResult([firstWords, secondWords], true); + expect(result.recognizedWords, firstRecognizedWords); + }); + }); + group('alternates', () { + test('empty if no alternates', () { + SpeechRecognitionResult result = SpeechRecognitionResult([], true); + expect(result.alternates, isEmpty); + }); + test('expected contents', () { + SpeechRecognitionResult result = + SpeechRecognitionResult([firstWords, secondWords], true); + expect(result.alternates, contains(firstWords)); + expect(result.alternates, contains(secondWords)); + }); + test('in order', () { + SpeechRecognitionResult result = + SpeechRecognitionResult([firstWords, secondWords], true); + expect(result.alternates.first, firstWords); + }); + }); + group('confidence', () { + test('0 if no alternates', () { + SpeechRecognitionResult result = SpeechRecognitionResult([], true); + expect(result.confidence, 0); + }); + test('isConfident false if no alternates', () { + SpeechRecognitionResult result = SpeechRecognitionResult([], true); + expect(result.isConfident(), isFalse); + }); + test('isConfident matches first alternate', () { + SpeechRecognitionResult result = + SpeechRecognitionResult([firstWords, secondWords], true); + expect(result.isConfident(), firstWords.isConfident()); + }); + test('hasConfidenceRating false if no alternates', () { + SpeechRecognitionResult result = SpeechRecognitionResult([], true); + expect(result.hasConfidenceRating, isFalse); + }); + test('hasConfidenceRating matches first alternate', () { + SpeechRecognitionResult result = + SpeechRecognitionResult([firstWords, secondWords], true); + expect(result.hasConfidenceRating, firstWords.hasConfidenceRating); + }); + }); + group('json', () { + test('loads correctly', () { + var json = jsonDecode(firstRecognizedJson); + SpeechRecognitionResult result = SpeechRecognitionResult.fromJson(json); + expect(result.recognizedWords, firstRecognizedWords); + expect(result.confidence, firstConfidence); + }); + test('roundtrips correctly', () { + var json = jsonDecode(firstRecognizedJson); + SpeechRecognitionResult result = SpeechRecognitionResult.fromJson(json); + var roundTripJson = result.toJson(); + SpeechRecognitionResult roundtripResult = + SpeechRecognitionResult.fromJson(roundTripJson); + expect(result, roundtripResult); + }); + }); + group('overrides', () { + test('toString works with no alternates', () { + SpeechRecognitionResult result = SpeechRecognitionResult([], true); + expect( + result.toString(), "SpeechRecognitionResult words: [], final: true"); + }); + test('toString works with alternates', () { + SpeechRecognitionResult result = + SpeechRecognitionResult([firstWords], true); + expect(result.toString(), + "SpeechRecognitionResult words: [SpeechRecognitionWords words: hello, confidence: 0.85], final: true"); + }); + test('hash same for same object', () { + SpeechRecognitionResult result = + SpeechRecognitionResult([firstWords], true); + expect(result.hashCode, result.hashCode); + }); + test('hash differs for different objects', () { + SpeechRecognitionResult result1 = + SpeechRecognitionResult([firstWords], true); + SpeechRecognitionResult result2 = + SpeechRecognitionResult([secondWords], true); + expect(result1.hashCode, isNot(result2.hashCode)); + }); + test('equals same for same object', () { + SpeechRecognitionResult result = + SpeechRecognitionResult([firstWords], true); + expect(result, result); + }); + test('equals same for different object same values', () { + SpeechRecognitionResult result1 = + SpeechRecognitionResult([firstWords], true); + SpeechRecognitionResult result1a = + SpeechRecognitionResult([firstWords], true); + expect(result1, result1a); + }); + test('equals differs for different objects', () { + SpeechRecognitionResult result1 = + SpeechRecognitionResult([firstWords], true); + SpeechRecognitionResult result2 = + SpeechRecognitionResult([secondWords], true); + expect(result1, isNot(result2)); + }); + }); +} diff --git a/speech_to_text_/test/speech_recognitions_words_test.dart b/speech_to_text_/test/speech_recognitions_words_test.dart new file mode 100644 index 00000000..36a9ef0e --- /dev/null +++ b/speech_to_text_/test/speech_recognitions_words_test.dart @@ -0,0 +1,86 @@ +import 'dart:convert'; + +import 'package:flutter_test/flutter_test.dart'; +import 'package:speech_to_text/speech_recognition_result.dart'; + +void main() { + final String firstRecognizedWords = 'hello'; + final String secondRecognizedWords = 'hello there'; + final double firstConfidence = 0.85; + final double secondConfidence = 0.62; + final String firstRecognizedJson = + '{"recognizedWords":"$firstRecognizedWords","confidence":$firstConfidence}'; + final SpeechRecognitionWords firstWords = + SpeechRecognitionWords(firstRecognizedWords, firstConfidence); + final SpeechRecognitionWords secondWords = + SpeechRecognitionWords(secondRecognizedWords, secondConfidence); + + setUp(() {}); + + group('properties', () { + test('words', () { + expect(firstWords.recognizedWords, firstRecognizedWords); + expect(secondWords.recognizedWords, secondRecognizedWords); + }); + test('confidence', () { + expect(firstWords.confidence, firstConfidence); + expect(secondWords.confidence, secondConfidence); + expect(firstWords.hasConfidenceRating, isTrue); + }); + test('equals true for same object', () { + expect(firstWords, firstWords); + }); + test('equals true for different object with same values', () { + SpeechRecognitionWords firstWordsA = + SpeechRecognitionWords(firstRecognizedWords, firstConfidence); + expect(firstWords, firstWordsA); + }); + test('equals false for different results', () { + expect(firstWords, isNot(secondWords)); + }); + test('hash same for same object', () { + expect(firstWords.hashCode, firstWords.hashCode); + }); + test('hash same for different object with same values', () { + SpeechRecognitionWords firstWordsA = + SpeechRecognitionWords(firstRecognizedWords, firstConfidence); + expect(firstWords.hashCode, firstWordsA.hashCode); + }); + test('hash different for different results', () { + expect(firstWords.hashCode, isNot(secondWords.hashCode)); + }); + }); + group('isConfident', () { + test('true when >= 0.8', () { + expect(firstWords.isConfident(), isTrue); + }); + test('false when < 0.8', () { + expect(secondWords.isConfident(), isFalse); + }); + test('respects threshold', () { + expect(secondWords.isConfident(threshold: 0.5), isTrue); + }); + test('true when missing', () { + SpeechRecognitionWords words = SpeechRecognitionWords( + firstRecognizedWords, SpeechRecognitionWords.missingConfidence); + expect(words.isConfident(), isTrue); + expect(words.hasConfidenceRating, isFalse); + }); + }); + group('json', () { + test('loads correctly', () { + var json = jsonDecode(firstRecognizedJson); + SpeechRecognitionWords words = SpeechRecognitionWords.fromJson(json); + expect(words.recognizedWords, firstRecognizedWords); + expect(words.confidence, firstConfidence); + }); + test('roundtrips correctly', () { + var json = jsonDecode(firstRecognizedJson); + SpeechRecognitionWords words = SpeechRecognitionWords.fromJson(json); + var roundTripJson = words.toJson(); + SpeechRecognitionWords roundtripWords = + SpeechRecognitionWords.fromJson(roundTripJson); + expect(words, roundtripWords); + }); + }); +} diff --git a/speech_to_text_/test/speech_to_text_provider_test.dart b/speech_to_text_/test/speech_to_text_provider_test.dart new file mode 100644 index 00000000..25366b6f --- /dev/null +++ b/speech_to_text_/test/speech_to_text_provider_test.dart @@ -0,0 +1,196 @@ +import 'package:fake_async/fake_async.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:speech_to_text/speech_to_text.dart'; +import 'package:speech_to_text/speech_to_text_provider.dart'; + +import 'test_speech_channel_handler.dart'; +import 'test_speech_listener.dart'; + +void main() { + SpeechToTextProvider provider; + SpeechToText speechToText; + TestSpeechChannelHandler speechHandler; + TestSpeechListener speechListener; + + TestWidgetsFlutterBinding.ensureInitialized(); + + setUp(() { + speechToText = SpeechToText.withMethodChannel(SpeechToText.speechChannel); + speechHandler = TestSpeechChannelHandler(speechToText); + speechToText.channel + .setMockMethodCallHandler(speechHandler.methodCallHandler); + provider = SpeechToTextProvider(speechToText); + speechListener = TestSpeechListener(provider); + provider.addListener(speechListener.onNotify); + }); + + tearDown(() { + speechToText.channel.setMockMethodCallHandler(null); + }); + + group('delegates', () { + test('isListening matches delegate defaults', () { + expect(provider.isListening, speechToText.isListening); + expect(provider.isNotListening, speechToText.isNotListening); + }); + test('isAvailable matches delegate defaults', () { + expect(provider.isAvailable, speechToText.isAvailable); + expect(provider.isNotAvailable, !speechToText.isAvailable); + }); + test('isAvailable matches delegate after init', () async { + expect(await provider.initialize(), isTrue); + expect(provider.isAvailable, speechToText.isAvailable); + expect(provider.isNotAvailable, !speechToText.isAvailable); + }); + test('hasError matches delegate after error', () async { + expect(await provider.initialize(), isTrue); + expect(provider.hasError, speechToText.hasError); + }); + }); + group('listening', () { + test('notifies on initialize', () async { + fakeAsync((fa) { + provider.initialize(); + fa.flushMicrotasks(); + expect(speechListener.notified, isTrue); + expect(speechListener.isAvailable, isTrue); + }); + }); + test('notifies on listening', () async { + fakeAsync((fa) { + setupForListen(provider, fa, speechListener); + expect(speechListener.notified, isTrue); + expect(speechListener.isListening, isTrue); + expect(provider.hasResults, isFalse); + }); + }); + test('notifies on final words', () async { + fakeAsync((fa) { + setupForListen(provider, fa, speechListener); + speechListener.reset(); + speechHandler.notifyFinalWords(); + fa.flushMicrotasks(); + expect(speechListener.notified, isTrue); + expect(provider.hasResults, isTrue); + var result = speechListener.recognitionResult; + expect(result.recognizedWords, + TestSpeechChannelHandler.secondRecognizedWords); + expect(result.finalResult, isTrue); + }); + }); + test('hasResult false after listening before new results', () async { + fakeAsync((fa) { + setupForListen(provider, fa, speechListener); + speechHandler.notifyFinalWords(); + provider.stop(); + setupForListen(provider, fa, speechListener); + fa.flushMicrotasks(); + expect(provider.hasResults, isFalse); + }); + }); + test('notifies on partial words', () async { + fakeAsync((fa) { + setupForListen(provider, fa, speechListener, partialResults: true); + speechListener.reset(); + speechHandler.notifyPartialWords(); + fa.flushMicrotasks(); + expect(speechListener.notified, isTrue); + expect(provider.hasResults, isTrue); + var result = speechListener.recognitionResult; + expect(result.recognizedWords, + TestSpeechChannelHandler.firstRecognizedWords); + expect(result.finalResult, isFalse); + }); + }); + }); + group('soundLevel', () { + test('notifies when requested', () async { + fakeAsync((fa) { + setupForListen(provider, fa, speechListener, + partialResults: true, soundLevel: true); + speechListener.reset(); + speechHandler.notifySoundLevel(); + fa.flushMicrotasks(); + expect(speechListener.notified, isTrue); + expect(speechListener.soundLevel, TestSpeechChannelHandler.level2); + }); + }); + test('no notification by default', () async { + fakeAsync((fa) { + setupForListen(provider, fa, speechListener, + partialResults: true, soundLevel: false); + speechListener.reset(); + speechHandler.notifySoundLevel(); + fa.flushMicrotasks(); + expect(speechListener.notified, isFalse); + expect(speechListener.soundLevel, 0); + }); + }); + }); + group('stop/cancel', () { + test('notifies on stop', () async { + fakeAsync((fa) { + provider.initialize(); + setupForListen(provider, fa, speechListener); + speechListener.reset(); + provider.stop(); + fa.flushMicrotasks(); + expect(speechListener.notified, isTrue); + expect(speechListener.isListening, isFalse); + }); + }); + test('notifies on cancel', () async { + fakeAsync((fa) { + provider.initialize(); + setupForListen(provider, fa, speechListener); + speechListener.reset(); + provider.cancel(); + fa.flushMicrotasks(); + expect(speechListener.notified, isTrue); + expect(speechListener.isListening, isFalse); + }); + }); + }); + group('error handling', () { + test('hasError matches delegate default', () async { + expect(await provider.initialize(), isTrue); + expect(provider.hasError, speechToText.hasError); + }); + test('notifies on error', () async { + fakeAsync((fa) { + provider.initialize(); + setupForListen(provider, fa, speechListener); + speechListener.reset(); + speechHandler.notifyPermanentError(); + expect(speechListener.notified, isTrue); + expect(speechListener.hasError, isTrue); + }); + }); + }); + group('locale', () { + test('locales empty before init', () async { + expect(provider.systemLocale, isNull); + expect(provider.locales, isEmpty); + }); + test('set from SpeechToText after init', () async { + fakeAsync((fa) { + speechHandler.setupLocales(); + provider.initialize(); + fa.flushMicrotasks(); + expect( + provider.systemLocale.localeId, TestSpeechChannelHandler.localeId1); + expect(provider.locales, hasLength(speechHandler.locales.length)); + }); + }); + }); +} + +void setupForListen(SpeechToTextProvider provider, FakeAsync fa, + TestSpeechListener speechListener, + {bool partialResults = false, bool soundLevel = false}) { + provider.initialize(); + fa.flushMicrotasks(); + speechListener.reset(); + provider.listen(partialResults: partialResults, soundLevel: soundLevel); + fa.flushMicrotasks(); +} diff --git a/speech_to_text_/test/speech_to_text_test.dart b/speech_to_text_/test/speech_to_text_test.dart new file mode 100644 index 00000000..7b4701ff --- /dev/null +++ b/speech_to_text_/test/speech_to_text_test.dart @@ -0,0 +1,425 @@ +import 'package:fake_async/fake_async.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:speech_to_text/speech_recognition_error.dart'; +import 'package:speech_to_text/speech_recognition_result.dart'; +import 'package:speech_to_text/speech_to_text.dart'; + +import 'test_speech_channel_handler.dart'; + +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + + TestSpeechListener listener; + TestSpeechChannelHandler speechHandler; + SpeechToText speech; + + setUp(() { + listener = TestSpeechListener(); + speech = SpeechToText.withMethodChannel(SpeechToText.speechChannel); + speechHandler = TestSpeechChannelHandler(speech); + speech.channel.setMockMethodCallHandler(speechHandler.methodCallHandler); + }); + + tearDown(() { + speech.channel.setMockMethodCallHandler(null); + }); + + group('hasPermission', () { + test('true if platform reports true', () async { + expect(await speech.hasPermission, true); + }); + test('false if platform reports false', () async { + speechHandler.hasPermissionResult = false; + expect(await speech.hasPermission, false); + }); + }); + group('init', () { + test('succeeds on platform success', () async { + expect(await speech.initialize(), true); + expect(speechHandler.initInvoked, true); + expect(speech.isAvailable, true); + }); + test('only invokes once', () async { + expect(await speech.initialize(), true); + speechHandler.initInvoked = false; + expect(await speech.initialize(), true); + expect(speechHandler.initInvoked, false); + }); + test('fails on platform failure', () async { + speechHandler.initResult = false; + expect(await speech.initialize(), false); + expect(speech.isAvailable, false); + }); + }); + + group('listen', () { + test('fails with exception if not initialized', () async { + try { + await speech.listen(); + fail("Expected an exception."); + } on SpeechToTextNotInitializedException { + // This is a good result + } + }); + test('fails with exception if init fails', () async { + try { + speechHandler.initResult = false; + await speech.initialize(); + await speech.listen(); + fail("Expected an exception."); + } on SpeechToTextNotInitializedException { + // This is a good result + } + }); + test('invokes listen after successful init', () async { + await speech.initialize(); + await speech.listen(); + expect(speechHandler.listenLocale, isNull); + expect(speechHandler.listenInvoked, true); + }); + test('converts platformException to listenFailed', () async { + await speech.initialize(); + speechHandler.listenException = true; + try { + await speech.listen(); + fail("Should have thrown"); + } on ListenFailedException catch (e) { + expect(e.details, TestSpeechChannelHandler.listenExceptionDetails); + } catch (wrongE) { + fail("Should have been ListenFailedException"); + } + }); + test('stops listen after listenFor duration', () async { + fakeAsync((fa) { + speech.initialize(); + fa.flushMicrotasks(); + speech.listen(listenFor: Duration(seconds: 2)); + fa.flushMicrotasks(); + expect(speech.isListening, isTrue); + fa.elapse(Duration(seconds: 2)); + expect(speech.isListening, isFalse); + }); + }); + test('stops listen after listenFor duration even with speech event', + () async { + fakeAsync((fa) { + speech.initialize(); + fa.flushMicrotasks(); + speech.listen(listenFor: Duration(seconds: 1)); + speech.processMethodCall(MethodCall(SpeechToText.textRecognitionMethod, + TestSpeechChannelHandler.firstRecognizedJson)); + fa.flushMicrotasks(); + expect(speech.isListening, isTrue); + fa.elapse(Duration(seconds: 1)); + expect(speech.isListening, isFalse); + }); + }); + test('stops listen after pauseFor duration with no speech', () async { + fakeAsync((fa) { + speech.initialize(); + fa.flushMicrotasks(); + speech.listen(pauseFor: Duration(seconds: 2)); + fa.flushMicrotasks(); + expect(speech.isListening, isTrue); + fa.elapse(Duration(seconds: 2)); + expect(speech.isListening, isFalse); + }); + }); + test('stops listen after pauseFor with longer listenFor duration', + () async { + fakeAsync((fa) { + speech.initialize(); + fa.flushMicrotasks(); + speech.listen( + pauseFor: Duration(seconds: 1), listenFor: Duration(seconds: 5)); + fa.flushMicrotasks(); + expect(speech.isListening, isTrue); + fa.elapse(Duration(seconds: 1)); + expect(speech.isListening, isFalse); + }); + }); + test('stops listen after listenFor with longer pauseFor duration', + () async { + fakeAsync((fa) { + speech.initialize(); + fa.flushMicrotasks(); + speech.listen( + listenFor: Duration(seconds: 1), pauseFor: Duration(seconds: 5)); + fa.flushMicrotasks(); + expect(speech.isListening, isTrue); + fa.elapse(Duration(seconds: 1)); + expect(speech.isListening, isFalse); + }); + }); + test('keeps listening after pauseFor with speech event', () async { + fakeAsync((fa) { + speech.initialize(); + fa.flushMicrotasks(); + speech.listen(pauseFor: Duration(seconds: 2)); + fa.flushMicrotasks(); + fa.elapse(Duration(seconds: 1)); + speech.processMethodCall(MethodCall(SpeechToText.textRecognitionMethod, + TestSpeechChannelHandler.firstRecognizedJson)); + fa.flushMicrotasks(); + fa.elapse(Duration(seconds: 1)); + expect(speech.isListening, isTrue); + }); + }); + test('uses localeId if provided', () async { + await speech.initialize(); + await speech.listen(localeId: TestSpeechChannelHandler.localeId1); + expect(speechHandler.listenInvoked, true); + expect(speechHandler.listenLocale, TestSpeechChannelHandler.localeId1); + }); + test('calls speech listener', () async { + await speech.initialize(); + await speech.listen(onResult: listener.onSpeechResult); + await speech.processMethodCall(MethodCall( + SpeechToText.textRecognitionMethod, + TestSpeechChannelHandler.firstRecognizedJson)); + expect(listener.speechResults, 1); + expect( + listener.results, [TestSpeechChannelHandler.firstRecognizedResult]); + expect(speech.lastRecognizedWords, + TestSpeechChannelHandler.firstRecognizedWords); + }); + test('calls speech listener with multiple', () async { + await speech.initialize(); + await speech.listen(onResult: listener.onSpeechResult); + await speech.processMethodCall(MethodCall( + SpeechToText.textRecognitionMethod, + TestSpeechChannelHandler.firstRecognizedJson)); + await speech.processMethodCall(MethodCall( + SpeechToText.textRecognitionMethod, + TestSpeechChannelHandler.secondRecognizedJson)); + expect(listener.speechResults, 2); + expect(listener.results, [ + TestSpeechChannelHandler.firstRecognizedResult, + TestSpeechChannelHandler.secondRecognizedResult + ]); + expect(speech.lastRecognizedWords, + TestSpeechChannelHandler.secondRecognizedWords); + }); + }); + + group('status callback', () { + test('invoked on listen', () async { + await speech.initialize( + onError: listener.onSpeechError, onStatus: listener.onSpeechStatus); + await speech.processMethodCall(MethodCall( + SpeechToText.notifyStatusMethod, SpeechToText.listeningStatus)); + expect(listener.speechStatus, 1); + expect(listener.statuses.contains(SpeechToText.listeningStatus), true); + }); + }); + + group('soundLevel callback', () { + test('invoked on listen', () async { + await speech.initialize(); + await speech.listen(onSoundLevelChange: listener.onSoundLevel); + await speech.processMethodCall(MethodCall( + SpeechToText.soundLevelChangeMethod, + TestSpeechChannelHandler.level1)); + expect(listener.soundLevel, 1); + expect(listener.soundLevels, contains(TestSpeechChannelHandler.level1)); + }); + test('sets lastLevel', () async { + await speech.initialize(); + await speech.listen(onSoundLevelChange: listener.onSoundLevel); + await speech.processMethodCall(MethodCall( + SpeechToText.soundLevelChangeMethod, + TestSpeechChannelHandler.level1)); + expect(speech.lastSoundLevel, TestSpeechChannelHandler.level1); + }); + }); + + group('cancel', () { + test('does nothing if not initialized', () async { + speech.cancel(); + expect(speechHandler.cancelInvoked, false); + }); + test('cancels an active listen', () async { + await speech.initialize(); + await speech.listen(); + await speech.cancel(); + expect(speechHandler.cancelInvoked, true); + expect(speech.isListening, isFalse); + }); + }); + group('stop', () { + test('does nothing if not initialized', () async { + speech.stop(); + expect(speechHandler.cancelInvoked, false); + }); + test('stops an active listen', () async { + await speech.initialize(); + speech.listen(); + speech.stop(); + expect(speechHandler.stopInvoked, true); + }); + }); + group('error', () { + test('notifies handler with transient', () async { + await speech.initialize(onError: listener.onSpeechError); + await speech.listen(); + await speech.processMethodCall(MethodCall(SpeechToText.notifyErrorMethod, + TestSpeechChannelHandler.transientErrorJson)); + expect(listener.speechErrors, 1); + expect(listener.errors.first.permanent, isFalse); + }); + test('notifies handler with permanent', () async { + await speech.initialize(onError: listener.onSpeechError); + await speech.listen(); + await speech.processMethodCall(MethodCall(SpeechToText.notifyErrorMethod, + TestSpeechChannelHandler.permanentErrorJson)); + expect(listener.speechErrors, 1); + expect(listener.errors.first.permanent, isTrue); + }); + test('continues listening on transient', () async { + await speech.initialize(onError: listener.onSpeechError); + await speech.listen(); + await speech.processMethodCall(MethodCall(SpeechToText.notifyErrorMethod, + TestSpeechChannelHandler.transientErrorJson)); + expect(speech.isListening, isTrue); + }); + test('continues listening on permanent if cancel not explicitly requested', + () async { + await speech.initialize(onError: listener.onSpeechError); + await speech.listen(); + await speech.processMethodCall(MethodCall(SpeechToText.notifyErrorMethod, + TestSpeechChannelHandler.permanentErrorJson)); + expect(speech.isListening, isTrue); + }); + test('stops listening on permanent if cancel explicitly requested', + () async { + await speech.initialize(onError: listener.onSpeechError); + await speech.listen(cancelOnError: true); + await speech.processMethodCall(MethodCall(SpeechToText.notifyErrorMethod, + TestSpeechChannelHandler.permanentErrorJson)); + expect(speech.isListening, isFalse); + }); + test('Error not sent after cancel', () async { + await speech.initialize(onError: listener.onSpeechError); + await speech.listen(); + await speech.cancel(); + await speech.processMethodCall(MethodCall(SpeechToText.notifyErrorMethod, + TestSpeechChannelHandler.permanentErrorJson)); + expect(speech.isListening, isFalse); + expect(listener.speechErrors, 0); + }); + test('Error still sent after implicit cancel', () async { + await speech.initialize(onError: listener.onSpeechError); + await speech.listen(cancelOnError: true); + await speech.processMethodCall(MethodCall(SpeechToText.notifyErrorMethod, + TestSpeechChannelHandler.permanentErrorJson)); + await speech.processMethodCall(MethodCall(SpeechToText.notifyErrorMethod, + TestSpeechChannelHandler.permanentErrorJson)); + expect(speech.isListening, isFalse); + expect(listener.speechErrors, 2); + }); + }); + group('locales', () { + test('fails with exception if not initialized', () async { + try { + await speech.locales(); + fail("Expected an exception."); + } on SpeechToTextNotInitializedException { + // This is a good result + } + }); + test('system locale null if not initialized', () async { + LocaleName current; + try { + current = await speech.systemLocale(); + fail("Expected an exception."); + } on SpeechToTextNotInitializedException { + expect(current, isNull); + } + }); + test('handles an empty list', () async { + await speech.initialize(onError: listener.onSpeechError); + List localeNames = await speech.locales(); + expect(speechHandler.localesInvoked, isTrue); + expect(localeNames, isEmpty); + }); + test('returns expected locales', () async { + await speech.initialize(onError: listener.onSpeechError); + speechHandler.locales.add(TestSpeechChannelHandler.locale1); + speechHandler.locales.add(TestSpeechChannelHandler.locale2); + List localeNames = await speech.locales(); + expect(localeNames, hasLength(speechHandler.locales.length)); + expect(localeNames[0].localeId, TestSpeechChannelHandler.localeId1); + expect(localeNames[0].name, TestSpeechChannelHandler.name1); + expect(localeNames[1].localeId, TestSpeechChannelHandler.localeId2); + expect(localeNames[1].name, TestSpeechChannelHandler.name2); + }); + test('skips incorrect locales', () async { + await speech.initialize(onError: listener.onSpeechError); + speechHandler.locales.add("InvalidJunk"); + speechHandler.locales.add(TestSpeechChannelHandler.locale1); + List localeNames = await speech.locales(); + expect(localeNames, hasLength(1)); + expect(localeNames[0].localeId, TestSpeechChannelHandler.localeId1); + expect(localeNames[0].name, TestSpeechChannelHandler.name1); + }); + test('system locale matches first returned locale', () async { + await speech.initialize(onError: listener.onSpeechError); + speechHandler.locales.add(TestSpeechChannelHandler.locale1); + speechHandler.locales.add(TestSpeechChannelHandler.locale2); + LocaleName current = await speech.systemLocale(); + expect(current.localeId, TestSpeechChannelHandler.localeId1); + }); + }); + group('status', () { + test('recognized false at start', () async { + expect(speech.hasRecognized, isFalse); + }); + test('listening false at start', () async { + expect(speech.isListening, isFalse); + }); + }); + test('available false at start', () async { + expect(speech.isAvailable, isFalse); + }); + test('hasError false at start', () async { + expect(speech.hasError, isFalse); + }); + test('lastError null at start', () async { + expect(speech.lastError, isNull); + }); + test('status empty at start', () async { + expect(speech.lastStatus, isEmpty); + }); +} + +class TestSpeechListener { + int speechResults = 0; + List results = []; + int speechErrors = 0; + List errors = []; + int speechStatus = 0; + List statuses = []; + int soundLevel = 0; + List soundLevels = []; + + void onSpeechResult(SpeechRecognitionResult result) { + ++speechResults; + results.add(result); + } + + void onSpeechError(SpeechRecognitionError errorResult) { + ++speechErrors; + errors.add(errorResult); + } + + void onSpeechStatus(String status) { + ++speechStatus; + statuses.add(status); + } + + void onSoundLevel(double level) { + ++soundLevel; + soundLevels.add(level); + } +} diff --git a/speech_to_text_/test/test_speech_channel_handler.dart b/speech_to_text_/test/test_speech_channel_handler.dart new file mode 100644 index 00000000..a55f0670 --- /dev/null +++ b/speech_to_text_/test/test_speech_channel_handler.dart @@ -0,0 +1,134 @@ +import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_recognition_error.dart'; +import 'package:speech_to_text/speech_recognition_result.dart'; +import 'package:speech_to_text/speech_to_text.dart'; + +/// Holds a set of responses and acts as a mock for the platform specific +/// implementations allowing test cases to determine what the result of +/// a call should be. +class TestSpeechChannelHandler { + final SpeechToText _speech; + + bool listenException = false; + + static const String listenExceptionCode = "listenFailedError"; + static const String listenExceptionMessage = "Failed"; + static const String listenExceptionDetails = "Device Listen Failure"; + + TestSpeechChannelHandler(this._speech); + + bool initResult = true; + bool initInvoked = false; + bool listenInvoked = false; + bool cancelInvoked = false; + bool stopInvoked = false; + bool localesInvoked = false; + bool hasPermissionResult = true; + String listeningStatusResponse = SpeechToText.listeningStatus; + String listenLocale; + List locales = []; + static const String localeId1 = "en_US"; + static const String localeId2 = "fr_CA"; + static const String name1 = "English US"; + static const String name2 = "French Canada"; + static const String locale1 = "$localeId1:$name1"; + static const String locale2 = "$localeId2:$name2"; + static const String firstRecognizedWords = 'hello'; + static const String secondRecognizedWords = 'hello there'; + static const double firstConfidence = 0.85; + static const double secondConfidence = 0.62; + static const String firstRecognizedJson = + '{"alternates":[{"recognizedWords":"$firstRecognizedWords","confidence":$firstConfidence}],"finalResult":false}'; + static const String secondRecognizedJson = + '{"alternates":[{"recognizedWords":"$secondRecognizedWords","confidence":$secondConfidence}],"finalResult":false}'; + static const String finalRecognizedJson = + '{"alternates":[{"recognizedWords":"$secondRecognizedWords","confidence":$secondConfidence}],"finalResult":true}'; + static const SpeechRecognitionWords firstWords = + SpeechRecognitionWords(firstRecognizedWords, firstConfidence); + static const SpeechRecognitionWords secondWords = + SpeechRecognitionWords(secondRecognizedWords, secondConfidence); + static final SpeechRecognitionResult firstRecognizedResult = + SpeechRecognitionResult([firstWords], false); + static final SpeechRecognitionResult secondRecognizedResult = + SpeechRecognitionResult([secondWords], false); + static final SpeechRecognitionResult finalRecognizedResult = + SpeechRecognitionResult([secondWords], true); + static const String transientErrorJson = + '{"errorMsg":"network","permanent":false}'; + static const String permanentErrorJson = + '{"errorMsg":"network","permanent":true}'; + static final SpeechRecognitionError firstError = + SpeechRecognitionError("network", true); + static const double level1 = 0.5; + static const double level2 = 10; + + Future methodCallHandler(MethodCall methodCall) async { + switch (methodCall.method) { + case "has_permission": + return hasPermissionResult; + break; + case "initialize": + initInvoked = true; + return initResult; + break; + case "cancel": + cancelInvoked = true; + return true; + break; + case "stop": + stopInvoked = true; + return true; + break; + case SpeechToText.listenMethod: + listenInvoked = true; + if (listenException) { + throw PlatformException( + code: listenExceptionCode, + message: listenExceptionMessage, + details: listenExceptionDetails); + } + listenLocale = methodCall.arguments["localeId"]; + await _speech.processMethodCall(MethodCall( + SpeechToText.notifyStatusMethod, listeningStatusResponse)); + return initResult; + break; + case "locales": + localesInvoked = true; + return locales; + break; + default: + } + return initResult; + } + + void notifyFinalWords() { + _speech.processMethodCall( + MethodCall(SpeechToText.textRecognitionMethod, finalRecognizedJson)); + } + + void notifyPartialWords() { + _speech.processMethodCall( + MethodCall(SpeechToText.textRecognitionMethod, firstRecognizedJson)); + } + + void notifyPermanentError() { + _speech.processMethodCall( + MethodCall(SpeechToText.notifyErrorMethod, permanentErrorJson)); + } + + void notifyTransientError() { + _speech.processMethodCall( + MethodCall(SpeechToText.notifyErrorMethod, transientErrorJson)); + } + + void notifySoundLevel() { + _speech.processMethodCall( + MethodCall(SpeechToText.soundLevelChangeMethod, level2)); + } + + void setupLocales() { + locales.clear(); + locales.add(locale1); + locales.add(locale2); + } +} diff --git a/speech_to_text_/test/test_speech_listener.dart b/speech_to_text_/test/test_speech_listener.dart new file mode 100644 index 00000000..1efcd81c --- /dev/null +++ b/speech_to_text_/test/test_speech_listener.dart @@ -0,0 +1,36 @@ +import 'package:speech_to_text/speech_recognition_error.dart'; +import 'package:speech_to_text/speech_recognition_result.dart'; +import 'package:speech_to_text/speech_to_text_provider.dart'; + +/// Holds the results of notification by the [SpeechToTextProvider] +class TestSpeechListener { + final SpeechToTextProvider _speechProvider; + + bool isListening = false; + bool isFinal = false; + bool isAvailable = false; + bool notified = false; + bool hasError = false; + SpeechRecognitionResult recognitionResult; + SpeechRecognitionError lastError; + double soundLevel; + + TestSpeechListener(this._speechProvider); + + void reset() { + isListening = false; + isFinal = false; + isAvailable = false; + notified = false; + } + + void onNotify() { + notified = true; + isAvailable = _speechProvider.isAvailable; + isListening = _speechProvider.isListening; + recognitionResult = _speechProvider.lastResult; + hasError = _speechProvider.hasError; + lastError = _speechProvider.lastError; + soundLevel = _speechProvider.lastLevel; + } +} From eb9005510d42146c60ecfadbd456e342f867d203 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Thu, 29 Jul 2021 15:22:41 +0300 Subject: [PATCH 40/59] bug fixes and insurance approvals improvements. --- lib/config/shared_pref_kay.dart | 1 + .../H2O/user_detail_model.dart | 1 + .../ReauestInsuranceApprovalModel.dart | 6 +- .../model/insurance/insurance_approval.dart | 561 ++++++++++++++---- lib/core/service/insurance_service.dart | 131 ++-- .../h2o/h20_setting.dart | 37 +- .../insurance/insurance_approval_screen.dart | 550 +++++++---------- .../authentication/auth_provider.dart | 4 +- 8 files changed, 774 insertions(+), 517 deletions(-) diff --git a/lib/config/shared_pref_kay.dart b/lib/config/shared_pref_kay.dart index 6e761991..703f5e3c 100644 --- a/lib/config/shared_pref_kay.dart +++ b/lib/config/shared_pref_kay.dart @@ -30,3 +30,4 @@ const NOTIFICATION_COUNT = 'notification-count'; const PHARMACY_SELECTED_ADDRESS = 'selected-address'; const PHARMACY_AUTORZIE_TOKEN = 'PHARMACY_AUTORZIE_TOKEN'; const H2O_UNIT = 'H2O_UNIT'; +const H2O_REMINDER = 'H2O_REMINDER'; diff --git a/lib/core/model/AlHabibMedicalService/H2O/user_detail_model.dart b/lib/core/model/AlHabibMedicalService/H2O/user_detail_model.dart index bb100219..2f4ec9f0 100644 --- a/lib/core/model/AlHabibMedicalService/H2O/user_detail_model.dart +++ b/lib/core/model/AlHabibMedicalService/H2O/user_detail_model.dart @@ -49,6 +49,7 @@ class UserDetailModel { this.isNotificationON}); UserDetailModel.fromJson(Map json) { + if(json==null) return; userID = json['UserID']; patientID = json['PatientID']; patientType = json['PatientType']; diff --git a/lib/core/model/insurance/ReauestInsuranceApprovalModel.dart b/lib/core/model/insurance/ReauestInsuranceApprovalModel.dart index 5f41f878..26bf567a 100644 --- a/lib/core/model/insurance/ReauestInsuranceApprovalModel.dart +++ b/lib/core/model/insurance/ReauestInsuranceApprovalModel.dart @@ -1,4 +1,4 @@ -class ReauestInsuranceApprovalModel { +class RequestInsuranceApprovalModel { double versionID; int channel; int languageID; @@ -15,7 +15,7 @@ class ReauestInsuranceApprovalModel { int eXuldAPPNO; int projectID; - ReauestInsuranceApprovalModel( + RequestInsuranceApprovalModel( {this.versionID, this.channel, this.languageID, @@ -32,7 +32,7 @@ class ReauestInsuranceApprovalModel { this.eXuldAPPNO, this.projectID}); - ReauestInsuranceApprovalModel.fromJson(Map json) { + RequestInsuranceApprovalModel.fromJson(Map json) { versionID = json['VersionID']; channel = json['Channel']; languageID = json['LanguageID']; diff --git a/lib/core/model/insurance/insurance_approval.dart b/lib/core/model/insurance/insurance_approval.dart index 894fad46..27911267 100644 --- a/lib/core/model/insurance/insurance_approval.dart +++ b/lib/core/model/insurance/insurance_approval.dart @@ -1,140 +1,465 @@ -class InsuranceApprovalDetails { - String procedureName; - String status; - String isInvoicedDesc; - - InsuranceApprovalDetails({ - this.procedureName, - this.status, - this.isInvoicedDesc, - }); - - InsuranceApprovalDetails.fromJson(Map json) { - try { - isInvoicedDesc = json['IsInvoicedDesc']; - status = json['Status']; - procedureName = json['ProcedureName']; - } catch (e) { - print(e); - } - } -} - class InsuranceApprovalModel { - InsuranceApprovalDetails approvalDetails; - double versionID; - int channel; - int languageID; - String iPAdress; - String generalid; - int patientOutSA; - String sessionID; - bool isDentalAllowedBackend; - int deviceTypeID; - int patientID; - String tokenID; - int patientTypeID; - int patientType; - int eXuldAPPNO; + String setupID; int projectID; - String doctorName; - String clinicName; - String patientDescription; int approvalNo; - String approvalStatusDescption; - int unUsedCount; - - //String companyName; + String approvalDate; + int patientType; + int patientID; + int companyID; + int subCategoryID; + int doctorID; + int clinicID; + int approvalType; + String inpatientApprovalSubType; + String validFrom; + String vaildDays; + String validTo; + bool isApprovalOnGross; + bool isPackage; + int requestedAmount; + int actualApprovedAmount; + int aviliableAmount; + String companyApprovalNo; + int progNoteOrderNo; + String submitOn; + String receiptOn; + String remarks1; + String remarks2; + int status; + String feedbackStatusBy; + String feedbackStatus; + String feedbackStatusOn; + int authorizerID; String expiryDate; - String rceiptOn; int appointmentNo; + int admissionNo; + int admissionRequestNo; + int createdBy; + String createdOn; + int editedBy; + String editedOn; + String rowVer; + bool isAddlDiscApplied; + int inProgressReasonID; + String extendedBy; + String extendedOn; + int subPolicyNo; + int noOrderAuthorizerID; + bool isVerbalApproval; + String subStatus; + bool isNotificationSend; + String eApprovalStatus; + String eApprovalRemarks; + bool isEmailSentOnDelayApproval; + int eAuthorizationID; + InsuranceApprovalDetails apporvalDetails; + String approvalStatusDescption; + String clinicName; + String clinicNameN; + String companyName; + String doctorImageURL; + String doctorName; + String doctorNameN; + int doctorRate; + String doctorTitle; + int gender; + String genderDescription; + bool isActiveDoctorProfile; + bool isExecludeDoctor; + bool isInOutPatient; + String isInOutPatientDescription; + String isInOutPatientDescriptionN; + bool isLiveCareAppointment; + String projectName; + String projectNameN; + String qR; + List speciality; + String strApprovalDate; + String strExpiryDate; + String strSubmitDate; + int totaUnUsedCount; + int unUsedCount; InsuranceApprovalModel( - {this.versionID, - this.channel, - this.languageID, - this.iPAdress, - this.generalid, - this.patientOutSA, - this.sessionID, - this.isDentalAllowedBackend, - this.deviceTypeID, - this.patientID, - this.tokenID, - this.patientTypeID, - this.patientType, - this.eXuldAPPNO, + {this.setupID, this.projectID, - this.doctorName, - this.clinicName, - this.patientDescription, this.approvalNo, - this.approvalStatusDescption, - this.unUsedCount, - //this.companyName, + this.approvalDate, + this.patientType, + this.patientID, + this.companyID, + this.subCategoryID, + this.doctorID, + this.clinicID, + this.approvalType, + this.inpatientApprovalSubType, + this.validFrom, + this.vaildDays, + this.validTo, + this.isApprovalOnGross, + this.isPackage, + this.requestedAmount, + this.actualApprovedAmount, + this.aviliableAmount, + this.companyApprovalNo, + this.progNoteOrderNo, + this.submitOn, + this.receiptOn, + this.remarks1, + this.remarks2, + this.status, + this.feedbackStatusBy, + this.feedbackStatus, + this.feedbackStatusOn, + this.authorizerID, this.expiryDate, - this.rceiptOn, - this.approvalDetails, - this.appointmentNo}); - - InsuranceApprovalDetails x = InsuranceApprovalDetails(); + this.appointmentNo, + this.admissionNo, + this.admissionRequestNo, + this.createdBy, + this.createdOn, + this.editedBy, + this.editedOn, + this.rowVer, + this.isAddlDiscApplied, + this.inProgressReasonID, + this.extendedBy, + this.extendedOn, + this.subPolicyNo, + this.noOrderAuthorizerID, + this.isVerbalApproval, + this.subStatus, + this.isNotificationSend, + this.eApprovalStatus, + this.eApprovalRemarks, + this.isEmailSentOnDelayApproval, + this.eAuthorizationID, + this.apporvalDetails, + this.approvalStatusDescption, + this.clinicName, + this.clinicNameN, + this.companyName, + this.doctorImageURL, + this.doctorName, + this.doctorNameN, + this.doctorRate, + this.doctorTitle, + this.gender, + this.genderDescription, + this.isActiveDoctorProfile, + this.isExecludeDoctor, + this.isInOutPatient, + this.isInOutPatientDescription, + this.isInOutPatientDescriptionN, + this.isLiveCareAppointment, + this.projectName, + this.projectNameN, + this.qR, + this.speciality, + this.strApprovalDate, + this.strExpiryDate, + this.strSubmitDate, + this.totaUnUsedCount, + this.unUsedCount}); InsuranceApprovalModel.fromJson(Map json) { - try { - rceiptOn = json['ReceiptOn']; - expiryDate = json['ExpiryDate']; - //companyName = json['CompanyName']; - unUsedCount = json['TotaUnUsedCount']; - approvalStatusDescption = json['ApprovalStatusDescption']; - approvalNo = json['ApprovalNo']; - patientDescription = json['IsInOutPatientDescription']; - versionID = json['VersionID']; - channel = json['Channel']; - languageID = json['LanguageID']; - iPAdress = json['IPAdress']; - generalid = json['generalid']; - patientOutSA = json['PatientOutSA']; - sessionID = json['SessionID']; - isDentalAllowedBackend = json['isDentalAllowedBackend']; - deviceTypeID = json['DeviceTypeID']; - patientID = json['PatientID']; - tokenID = json['TokenID']; - patientTypeID = json['PatientTypeID']; - patientType = json['PatientType']; - eXuldAPPNO = json['EXuldAPPNO']; - projectID = json['ProjectID']; - doctorName = json['DoctorName']; - clinicName = json['ClinicName']; - approvalDetails = - InsuranceApprovalDetails.fromJson(json['ApporvalDetails'][0]); - appointmentNo = json['AppointmentNo']; - } catch (e) { - print(e); + setupID = json['SetupID']; + projectID = json['ProjectID']; + approvalNo = json['ApprovalNo']; + approvalDate = json['ApprovalDate']; + patientType = json['PatientType']; + patientID = json['PatientID']; + companyID = json['CompanyID']; + subCategoryID = json['SubCategoryID']; + doctorID = json['DoctorID']; + clinicID = json['ClinicID']; + approvalType = json['ApprovalType']; + inpatientApprovalSubType = json['InpatientApprovalSubType']; + validFrom = json['ValidFrom']; + vaildDays = json['VaildDays']; + validTo = json['ValidTo']; + isApprovalOnGross = json['IsApprovalOnGross']; + isPackage = json['IsPackage']; + requestedAmount = json['RequestedAmount']; + actualApprovedAmount = json['ActualApprovedAmount']; + aviliableAmount = json['AviliableAmount']; + companyApprovalNo = json['CompanyApprovalNo']; + progNoteOrderNo = json['ProgNoteOrderNo']; + submitOn = json['SubmitOn']; + receiptOn = json['ReceiptOn']; + remarks1 = json['Remarks1']; + remarks2 = json['Remarks2']; + status = json['Status']; + feedbackStatusBy = json['FeedbackStatusBy']; + feedbackStatus = json['FeedbackStatus']; + feedbackStatusOn = json['FeedbackStatusOn']; + authorizerID = json['AuthorizerID']; + expiryDate = json['ExpiryDate']; + appointmentNo = json['AppointmentNo']; + admissionNo = json['AdmissionNo']; + admissionRequestNo = json['AdmissionRequestNo']; + createdBy = json['CreatedBy']; + createdOn = json['CreatedOn']; + editedBy = json['EditedBy']; + editedOn = json['EditedOn']; + rowVer = json['RowVer']; + isAddlDiscApplied = json['IsAddlDiscApplied']; + inProgressReasonID = json['InProgressReasonID']; + extendedBy = json['ExtendedBy']; + extendedOn = json['ExtendedOn']; + subPolicyNo = json['SubPolicyNo']; + noOrderAuthorizerID = json['NoOrderAuthorizerID']; + isVerbalApproval = json['isVerbalApproval']; + subStatus = json['SubStatus']; + isNotificationSend = json['IsNotificationSend']; + eApprovalStatus = json['EApprovalStatus']; + eApprovalRemarks = json['EApprovalRemarks']; + isEmailSentOnDelayApproval = json['IsEmailSentOnDelayApproval']; + eAuthorizationID = json['EAuthorizationID']; + if (json['ApporvalDetails'] != null) { + apporvalDetails = InsuranceApprovalDetails.fromJson(json['ApporvalDetails'][0]); } + approvalStatusDescption = json['ApprovalStatusDescption']; + clinicName = json['ClinicName']; + clinicNameN = json['ClinicNameN']; + companyName = json['CompanyName']; + doctorImageURL = json['DoctorImageURL']; + doctorName = json['DoctorName']; + doctorNameN = json['DoctorNameN']; + doctorRate = json['DoctorRate']; + doctorTitle = json['DoctorTitle']; + gender = json['Gender']; + genderDescription = json['GenderDescription']; + isActiveDoctorProfile = json['IsActiveDoctorProfile']; + isExecludeDoctor = json['IsExecludeDoctor']; + isInOutPatient = json['IsInOutPatient']; + isInOutPatientDescription = json['IsInOutPatientDescription']; + isInOutPatientDescriptionN = json['IsInOutPatientDescriptionN']; + isLiveCareAppointment = json['IsLiveCareAppointment']; + projectName = json['ProjectName']; + projectNameN = json['ProjectNameN']; + qR = json['QR']; + speciality = json['Speciality'].cast(); + strApprovalDate = json['StrApprovalDate']; + strExpiryDate = json['StrExpiryDate']; + strSubmitDate = json['StrSubmitDate']; + totaUnUsedCount = json['TotaUnUsedCount']; + unUsedCount = json['UnUsedCount']; } Map toJson() { final Map data = new Map(); - data['VersionID'] = this.versionID; - data['Channel'] = this.channel; - data['LanguageID'] = this.languageID; - data['IPAdress'] = this.iPAdress; - data['generalid'] = this.generalid; - data['PatientOutSA'] = this.patientOutSA; - data['SessionID'] = this.sessionID; - data['isDentalAllowedBackend'] = this.isDentalAllowedBackend; - data['DeviceTypeID'] = this.deviceTypeID; - data['PatientID'] = this.patientID; - data['TokenID'] = this.tokenID; - data['PatientTypeID'] = this.patientTypeID; + data['SetupID'] = this.setupID; + data['ProjectID'] = this.projectID; + data['ApprovalNo'] = this.approvalNo; + data['ApprovalDate'] = this.approvalDate; data['PatientType'] = this.patientType; - if (appointmentNo == null) { - data['EXuldAPPNO'] = this.eXuldAPPNO; - data['ProjectID'] = this.projectID; - } - if (appointmentNo != null) { - data['AppointmentNo'] = this.appointmentNo; + data['PatientID'] = this.patientID; + data['CompanyID'] = this.companyID; + data['SubCategoryID'] = this.subCategoryID; + data['DoctorID'] = this.doctorID; + data['ClinicID'] = this.clinicID; + data['ApprovalType'] = this.approvalType; + data['InpatientApprovalSubType'] = this.inpatientApprovalSubType; + data['ValidFrom'] = this.validFrom; + data['VaildDays'] = this.vaildDays; + data['ValidTo'] = this.validTo; + data['IsApprovalOnGross'] = this.isApprovalOnGross; + data['IsPackage'] = this.isPackage; + data['RequestedAmount'] = this.requestedAmount; + data['ActualApprovedAmount'] = this.actualApprovedAmount; + data['AviliableAmount'] = this.aviliableAmount; + data['CompanyApprovalNo'] = this.companyApprovalNo; + data['ProgNoteOrderNo'] = this.progNoteOrderNo; + data['SubmitOn'] = this.submitOn; + data['ReceiptOn'] = this.receiptOn; + data['Remarks1'] = this.remarks1; + data['Remarks2'] = this.remarks2; + data['Status'] = this.status; + data['FeedbackStatusBy'] = this.feedbackStatusBy; + data['FeedbackStatus'] = this.feedbackStatus; + data['FeedbackStatusOn'] = this.feedbackStatusOn; + data['AuthorizerID'] = this.authorizerID; + data['ExpiryDate'] = this.expiryDate; + data['AppointmentNo'] = this.appointmentNo; + data['AdmissionNo'] = this.admissionNo; + data['AdmissionRequestNo'] = this.admissionRequestNo; + data['CreatedBy'] = this.createdBy; + data['CreatedOn'] = this.createdOn; + data['EditedBy'] = this.editedBy; + data['EditedOn'] = this.editedOn; + data['RowVer'] = this.rowVer; + data['IsAddlDiscApplied'] = this.isAddlDiscApplied; + data['InProgressReasonID'] = this.inProgressReasonID; + data['ExtendedBy'] = this.extendedBy; + data['ExtendedOn'] = this.extendedOn; + data['SubPolicyNo'] = this.subPolicyNo; + data['NoOrderAuthorizerID'] = this.noOrderAuthorizerID; + data['isVerbalApproval'] = this.isVerbalApproval; + data['SubStatus'] = this.subStatus; + data['IsNotificationSend'] = this.isNotificationSend; + data['EApprovalStatus'] = this.eApprovalStatus; + data['EApprovalRemarks'] = this.eApprovalRemarks; + data['IsEmailSentOnDelayApproval'] = this.isEmailSentOnDelayApproval; + data['EAuthorizationID'] = this.eAuthorizationID; + if (this.apporvalDetails != null) { + data['ApporvalDetails'] = this.apporvalDetails.toJson; } + data['ApprovalStatusDescption'] = this.approvalStatusDescption; + data['ClinicName'] = this.clinicName; + data['ClinicNameN'] = this.clinicNameN; + data['CompanyName'] = this.companyName; + data['DoctorImageURL'] = this.doctorImageURL; + data['DoctorName'] = this.doctorName; + data['DoctorNameN'] = this.doctorNameN; + data['DoctorRate'] = this.doctorRate; + data['DoctorTitle'] = this.doctorTitle; + data['Gender'] = this.gender; + data['GenderDescription'] = this.genderDescription; + data['IsActiveDoctorProfile'] = this.isActiveDoctorProfile; + data['IsExecludeDoctor'] = this.isExecludeDoctor; + data['IsInOutPatient'] = this.isInOutPatient; + data['IsInOutPatientDescription'] = this.isInOutPatientDescription; + data['IsInOutPatientDescriptionN'] = this.isInOutPatientDescriptionN; + data['IsLiveCareAppointment'] = this.isLiveCareAppointment; + data['ProjectName'] = this.projectName; + data['ProjectNameN'] = this.projectNameN; + data['QR'] = this.qR; + data['Speciality'] = this.speciality; + data['StrApprovalDate'] = this.strApprovalDate; + data['StrExpiryDate'] = this.strExpiryDate; + data['StrSubmitDate'] = this.strSubmitDate; + data['TotaUnUsedCount'] = this.totaUnUsedCount; + data['UnUsedCount'] = this.unUsedCount; + return data; + } +} + +class InsuranceApprovalDetails { + int setupID; + int projectID; + int approvalNo; + int lineItemNo; + int orderType; + int procedureID; + int toothNo; + int price; + int approvedAmount; + String unapprovedPatientShare; + int waivedAmount; + String discountType; + int discountValue; + String shareType; + String patientShareTypeValue; + String companyShareTypeValue; + String patientShare; + String companyShare; + int deductableAmount; + String disapprovedRemarks; + int progNoteOrderNo; + int progNoteLineItemNo; + String invoiceTransactionType; + int invoiceNo; + String procedureName; + String procedureNameN; + String status; + bool isInvoiced; + String isInvoicedDesc; + + InsuranceApprovalDetails( + {this.setupID, + this.projectID, + this.approvalNo, + this.lineItemNo, + this.orderType, + this.procedureID, + this.toothNo, + this.price, + this.approvedAmount, + this.unapprovedPatientShare, + this.waivedAmount, + this.discountType, + this.discountValue, + this.shareType, + this.patientShareTypeValue, + this.companyShareTypeValue, + this.patientShare, + this.companyShare, + this.deductableAmount, + this.disapprovedRemarks, + this.progNoteOrderNo, + this.progNoteLineItemNo, + this.invoiceTransactionType, + this.invoiceNo, + this.procedureName, + this.procedureNameN, + this.status, + this.isInvoiced, + this.isInvoicedDesc}); + + InsuranceApprovalDetails.fromJson(Map json) { + setupID = json['SetupID']; + projectID = json['ProjectID']; + approvalNo = json['ApprovalNo']; + lineItemNo = json['LineItemNo']; + orderType = json['OrderType']; + procedureID = json['ProcedureID']; + toothNo = json['ToothNo']; + price = json['Price']; + approvedAmount = json['ApprovedAmount']; + unapprovedPatientShare = json['UnapprovedPatientShare']; + waivedAmount = json['WaivedAmount']; + discountType = json['DiscountType']; + discountValue = json['DiscountValue']; + shareType = json['ShareType']; + patientShareTypeValue = json['PatientShareTypeValue']; + companyShareTypeValue = json['CompanyShareTypeValue']; + patientShare = json['PatientShare']; + companyShare = json['CompanyShare']; + deductableAmount = json['DeductableAmount']; + disapprovedRemarks = json['DisapprovedRemarks']; + progNoteOrderNo = json['ProgNoteOrderNo']; + progNoteLineItemNo = json['ProgNoteLineItemNo']; + invoiceTransactionType = json['InvoiceTransactionType']; + invoiceNo = json['InvoiceNo']; + procedureName = json['ProcedureName']; + procedureNameN = json['ProcedureNameN']; + status = json['Status']; + isInvoiced = json['IsInvoiced']; + isInvoicedDesc = json['IsInvoicedDesc']; + } + + Map toJson() { + final Map data = new Map(); + data['SetupID'] = this.setupID; + data['ProjectID'] = this.projectID; + data['ApprovalNo'] = this.approvalNo; + data['LineItemNo'] = this.lineItemNo; + data['OrderType'] = this.orderType; + data['ProcedureID'] = this.procedureID; + data['ToothNo'] = this.toothNo; + data['Price'] = this.price; + data['ApprovedAmount'] = this.approvedAmount; + data['UnapprovedPatientShare'] = this.unapprovedPatientShare; + data['WaivedAmount'] = this.waivedAmount; + data['DiscountType'] = this.discountType; + data['DiscountValue'] = this.discountValue; + data['ShareType'] = this.shareType; + data['PatientShareTypeValue'] = this.patientShareTypeValue; + data['CompanyShareTypeValue'] = this.companyShareTypeValue; + data['PatientShare'] = this.patientShare; + data['CompanyShare'] = this.companyShare; + data['DeductableAmount'] = this.deductableAmount; + data['DisapprovedRemarks'] = this.disapprovedRemarks; + data['ProgNoteOrderNo'] = this.progNoteOrderNo; + data['ProgNoteLineItemNo'] = this.progNoteLineItemNo; + data['InvoiceTransactionType'] = this.invoiceTransactionType; + data['InvoiceNo'] = this.invoiceNo; + data['ProcedureName'] = this.procedureName; + data['ProcedureNameN'] = this.procedureNameN; + data['Status'] = this.status; + data['IsInvoiced'] = this.isInvoiced; + data['IsInvoicedDesc'] = this.isInvoicedDesc; return data; } } diff --git a/lib/core/service/insurance_service.dart b/lib/core/service/insurance_service.dart index 0b626342..6eb1f415 100644 --- a/lib/core/service/insurance_service.dart +++ b/lib/core/service/insurance_service.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/model/insurance/Insurance_card_details.dart'; +import 'package:diplomaticquarterapp/core/model/insurance/ReauestInsuranceApprovalModel.dart'; import 'package:diplomaticquarterapp/core/model/insurance/insurance_approval.dart'; import 'package:diplomaticquarterapp/core/model/insurance/insurance_card.dart'; import 'package:diplomaticquarterapp/core/model/insurance/insurance_card_update_model.dart'; @@ -25,8 +26,7 @@ class InsuranceCardService extends BaseService { List insuranceCardDetailsList = List(); bool isHaveInsuranceCard = false; - GetAllSharedRecordsByStatusResponse getAllSharedRecordsByStatusResponse = - GetAllSharedRecordsByStatusResponse(); + GetAllSharedRecordsByStatusResponse getAllSharedRecordsByStatusResponse = GetAllSharedRecordsByStatusResponse(); clearInsuranceCard() { _cardList.clear(); @@ -36,19 +36,12 @@ class InsuranceCardService extends BaseService { _cardUpdated.clear(); } - - InsuranceApprovalModel _insuranceApprovalModel = InsuranceApprovalModel( - isDentalAllowedBackend: false, - patientTypeID: 1, - patientType: 1, - eXuldAPPNO: 0, - projectID: 0); + RequestInsuranceApprovalModel _requestInsuranceApprovalModel = RequestInsuranceApprovalModel(isDentalAllowedBackend: false, patientTypeID: 1, patientType: 1, eXuldAPPNO: 0, projectID: 0); Future getInsurance() async { hasError = false; _cardList.clear(); - await baseAppClient.post(GET_PAtIENTS_INSURANCE, - onSuccess: (dynamic response, int statusCode) { + await baseAppClient.post(GET_PAtIENTS_INSURANCE, onSuccess: (dynamic response, int statusCode) { response['List_PatientInsuranceCard'].forEach((item) { _cardList.add(InsuranceCardModel.fromJson(item)); }); @@ -60,10 +53,9 @@ class InsuranceCardService extends BaseService { Future getInsuranceUpdate() async { hasError = false; - _cardList.clear(); - await baseAppClient.post(GET_PAtIENTS_INSURANCE_UPDATED, - onSuccess: (dynamic response, int statusCode) { - _cardUpdated.clear(); + _cardList.clear(); + await baseAppClient.post(GET_PAtIENTS_INSURANCE_UPDATED, onSuccess: (dynamic response, int statusCode) { + _cardUpdated.clear(); response['List_PatientInsuranceCardHistory'].forEach((item) { _cardUpdated.add(InsuranceUpdateModel.fromJson(item)); }); @@ -77,17 +69,16 @@ class InsuranceCardService extends BaseService { hasError = false; // _cardList.clear(); if (appointmentNo != null) { - _insuranceApprovalModel.appointmentNo = appointmentNo; - _insuranceApprovalModel.eXuldAPPNO = null; - _insuranceApprovalModel.projectID = null; + // _requestInsuranceApprovalModel.appointmentNo = appointmentNo; + _requestInsuranceApprovalModel.eXuldAPPNO = null; + _requestInsuranceApprovalModel.projectID = null; } else { - _insuranceApprovalModel.appointmentNo = null; - _insuranceApprovalModel.eXuldAPPNO = 0; - _insuranceApprovalModel.projectID = 0; + // _requestInsuranceApprovalModel.appointmentNo = null; + _requestInsuranceApprovalModel.eXuldAPPNO = 0; + _requestInsuranceApprovalModel.projectID = 0; } - await baseAppClient.post(GET_PAtIENTS_INSURANCE_APPROVALS, - onSuccess: (dynamic response, int statusCode) { + await baseAppClient.post(GET_PAtIENTS_INSURANCE_APPROVALS, onSuccess: (dynamic response, int statusCode) { print(response['HIS_Approval_List'].length); _insuranceApproval.clear(); _insuranceApproval.length = 0; @@ -97,14 +88,13 @@ class InsuranceCardService extends BaseService { }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; - }, body: _insuranceApprovalModel.toJson()); + }, body: _requestInsuranceApprovalModel.toJson()); } Future getFamilyFiles() async { var myFamily = await sharedPref.getObject(FAMILY_FILE); if (myFamily != null) { - getAllSharedRecordsByStatusResponse = - GetAllSharedRecordsByStatusResponse.fromJson(myFamily); + getAllSharedRecordsByStatusResponse = GetAllSharedRecordsByStatusResponse.fromJson(myFamily); } else { getSharedRecordByStatus(); } @@ -115,68 +105,75 @@ class InsuranceCardService extends BaseService { dynamic localRes; var request = GetAllSharedRecordsByStatusReq(); request.status = 0; - await baseAppClient.post(GET_SHARED_RECORD_BY_STATUS, - onSuccess: (dynamic response, int statusCode) { + await baseAppClient.post(GET_SHARED_RECORD_BY_STATUS, onSuccess: (dynamic response, int statusCode) { localRes = response; }, onFailure: (String error, int statusCode) { AppToast.showErrorToast(message: error); throw error; }, body: request.toJson()); sharedPref.setObject(FAMILY_FILE, localRes); - getAllSharedRecordsByStatusResponse = - GetAllSharedRecordsByStatusResponse.fromJson(localRes); + getAllSharedRecordsByStatusResponse = GetAllSharedRecordsByStatusResponse.fromJson(localRes); } catch (error) { print(error); throw error; } } - Future getInsuranceDetails(data) async{ + + Future getInsuranceDetails(data) async { dynamic localRes; - await baseAppClient.post(INSURANCE_DETAILS, - onSuccess: (dynamic response, int statusCode) { - localRes = response['List_InsuranceCheckList']; - }, onFailure: (String error, int statusCode) { - hasError = true; - super.error = error; - }, body:{'CompanyID': data.companyID,'SubCategoryID':data.subCategoryID },); + await baseAppClient.post( + INSURANCE_DETAILS, + onSuccess: (dynamic response, int statusCode) { + localRes = response['List_InsuranceCheckList']; + }, + onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, + body: {'CompanyID': data.companyID, 'SubCategoryID': data.subCategoryID}, + ); return Future.value(localRes); } - Future getPatientInsuranceDetails({String setupID, int projectID, String patientIdentificationID,int patientID}) async{ + Future getPatientInsuranceDetails({String setupID, int projectID, String patientIdentificationID, int patientID}) async { error = ""; hasError = false; insuranceCardDetails = null; isHaveInsuranceCard = false; - await baseAppClient.post(GET_PATIENT_INSURANCE_DETAILS, - onSuccess: (dynamic response, int statusCode) { - insuranceCardDetailsList.clear(); - isHaveInsuranceCard = true; - response['List_PatientInsuranceDetails'].forEach((item) { - insuranceCardDetailsList.add(InsuranceCardDetailsModel.fromJson(item)); - }); - }, onFailure: (String error, int statusCode) { - hasError = true; - super.error = error; - }, body:{'SetupID': setupID,'ProjectID':projectID,'PatientIdentificationID':patientIdentificationID ,'isDentalAllowedBackend':false,'PatientID':patientID},); - + await baseAppClient.post( + GET_PATIENT_INSURANCE_DETAILS, + onSuccess: (dynamic response, int statusCode) { + insuranceCardDetailsList.clear(); + isHaveInsuranceCard = true; + response['List_PatientInsuranceDetails'].forEach((item) { + insuranceCardDetailsList.add(InsuranceCardDetailsModel.fromJson(item)); + }); + }, + onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, + body: {'SetupID': setupID, 'ProjectID': projectID, 'PatientIdentificationID': patientIdentificationID, 'isDentalAllowedBackend': false, 'PatientID': patientID}, + ); } - Future uploadInsuranceCard({ String patientIdentificationID,int patientID,String image=""}) async{ + Future uploadInsuranceCard({String patientIdentificationID, int patientID, String image = ""}) async { error = ""; - Map body = Map(); - body['PatientID']=patientID; - body['PatientType']=user.patientType; - body['MobileNo']=user.mobileNumber; - body['PatientIdentificationID']=patientIdentificationID; - body['InsuranceCardImage']= image; - - await baseAppClient.post(UPLOAD_INSURANCE_CARD, - onSuccess: (dynamic response, int statusCode) { - - }, onFailure: (String error, int statusCode) { - hasError = true; - super.error = error; - }, body:body,); - + Map body = Map(); + body['PatientID'] = patientID; + body['PatientType'] = user.patientType; + body['MobileNo'] = user.mobileNumber; + body['PatientIdentificationID'] = patientIdentificationID; + body['InsuranceCardImage'] = image; + + await baseAppClient.post( + UPLOAD_INSURANCE_CARD, + onSuccess: (dynamic response, int statusCode) {}, + onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, + body: body, + ); } } diff --git a/lib/pages/AlHabibMedicalService/h2o/h20_setting.dart b/lib/pages/AlHabibMedicalService/h2o/h20_setting.dart index 4acc7eaf..b8be6539 100644 --- a/lib/pages/AlHabibMedicalService/h2o/h20_setting.dart +++ b/lib/pages/AlHabibMedicalService/h2o/h20_setting.dart @@ -14,6 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/painting.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; +import 'package:manage_calendar_events/manage_calendar_events.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'Dialog/setting_page_radio_button_list_dialog.dart'; @@ -53,14 +54,14 @@ class _H2oSettingState extends State { void initState() { super.initState(); _userDetailModel = widget.userDetailModel; - _heightValue = _userDetailModel.height; - _weightValue = _userDetailModel.weight; + _heightValue = _userDetailModel?.height ?? 100; + _weightValue = _userDetailModel?.weight ?? 50; _heightController.text = _heightValue.toStringAsFixed(0); _weightController.text = _weightValue.toStringAsFixed(0); _nameController.text = _userDetailModel.firstName; - _isWeightKG = _userDetailModel.isWeightInKG; - _isHeightCM = _userDetailModel.isHeightInCM; - _isGenderMale = _userDetailModel.gender == "M" ? true : false; + _isWeightKG = _userDetailModel?.isWeightInKG ?? true; + _isHeightCM = _userDetailModel?.isHeightInCM ?? true; + _isGenderMale = (_userDetailModel?.gender ?? "M") == "M" ? true : false; _dobDate = DateUtil.convertStringToDate(_userDetailModel.dOB); _selectedActiveLevel = _userDetailModel.activityID ?? 1; readPrefs(); @@ -70,6 +71,7 @@ class _H2oSettingState extends State { void readPrefs() async { prefs = await SharedPreferences.getInstance(); _isUnitML = (prefs.getString(H2O_UNIT) ?? "ml") == "ml" ? true : false; + _selectedRemindedTime = prefs.getInt(H2O_REMINDER) ?? 0; setState(() {}); } @@ -450,14 +452,35 @@ class _H2oSettingState extends State { _userDetailModel.dOB = tempDate; _userDetailModel.activityID = _selectedActiveLevel; GifLoaderDialogUtils.showMyDialog(context); - await prefs.setString(H2O_UNIT, _isUnitML ? "ml" : "l"); - await widget.viewModel.updateUserDetail(_userDetailModel, (tag) { + await widget.viewModel.updateUserDetail(_userDetailModel, (tag) async { if (tag) { AppToast.showSuccessToast(message: TranslationBase.of(context).success); + await prefs.setString(H2O_UNIT, _isUnitML ? "ml" : "l"); + int _tempRemindTime = prefs.getInt(H2O_REMINDER) ?? _selectedRemindedTime; + if (_tempRemindTime != _selectedRemindedTime) { + await prefs.setInt(H2O_REMINDER, _selectedRemindedTime); + _addReminderToCalender(_selectedRemindedTime); + } } GifLoaderDialogUtils.hideDialog(context); }); Navigator.pop(context); } + + final CalendarPlugin _myPlugin = CalendarPlugin(); + void _addReminderToCalender(int _selectedRemindedTime) async { + bool _calendarPermission = await _myPlugin.hasPermissions(); + if (_calendarPermission) { + } else { + await _myPlugin.requestPermissions(); + } + _myPlugin.hasPermissions().then((value) { + if (!value) { + _myPlugin.requestPermissions(); + } else { + _myPlugin.getCalendars().then((value) => {print(value.length)}); + } + }); + } } diff --git a/lib/pages/insurance/insurance_approval_screen.dart b/lib/pages/insurance/insurance_approval_screen.dart index d81e704e..7283abf8 100644 --- a/lib/pages/insurance/insurance_approval_screen.dart +++ b/lib/pages/insurance/insurance_approval_screen.dart @@ -24,23 +24,13 @@ class _InsuranceApprovalState extends State { @override Widget build(BuildContext context) { - imagesInfo.add(ImagesInfo( - imageEn: - 'https://hmgwebservices.com/Images/MobileApp/imges-info/apporvals/en/0.png', - imageAr: - 'https://hmgwebservices.com/Images/MobileApp/imges-info/apporvals/ar/0.png')); - imagesInfo.add(ImagesInfo( - imageEn: - 'https://hmgwebservices.com/Images/MobileApp/imges-info/apporvals/en/1.png', - imageAr: - 'https://hmgwebservices.com/Images/MobileApp/imges-info/apporvals/ar/1.png')); + imagesInfo + .add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/apporvals/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/apporvals/ar/0.png')); + imagesInfo + .add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/apporvals/en/1.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/apporvals/ar/1.png')); return BaseView( - onModelReady: widget.appointmentNo != null - ? (model) => - model.getInsuranceApproval(appointmentNo: widget.appointmentNo) - : (model) => model.getInsuranceApproval(), - builder: (BuildContext context, InsuranceViewModel model, Widget child) => - AppScaffold( + onModelReady: widget.appointmentNo != null ? (model) => model.getInsuranceApproval(appointmentNo: widget.appointmentNo) : (model) => model.getInsuranceApproval(), + builder: (BuildContext context, InsuranceViewModel model, Widget child) => AppScaffold( isShowAppBar: true, baseViewModel: model, appBarTitle: TranslationBase.of(context).approvals, @@ -65,153 +55,121 @@ class _InsuranceApprovalState extends State { children: [ Texts( TranslationBase.of(context).totalApproval, - color: Color(0xff60688B), - fontSize: 19.0, - fontWeight: FontWeight.w600, + color: Color(0xff60688B), + fontSize: 19.0, + fontWeight: FontWeight.w600, ), if (model.insuranceApproval.length > 0) Container( width: 60, height: 40, - decoration: BoxDecoration( - color: Theme.of(context).primaryColor, - borderRadius: BorderRadius.circular(19.0)), + decoration: BoxDecoration(color: Theme.of(context).primaryColor, borderRadius: BorderRadius.circular(19.0)), child: Center( child: Texts( - model.insuranceApproval[0].unUsedCount - .toString(), - color: Colors.white, fontSize: 17.0, + model.insuranceApproval[0].unUsedCount.toString(), + color: Colors.white, + fontSize: 17.0, ), )) ], )), - ...List.generate( - model.insuranceApproval.length, - (index) => RoundedContainer( - backgroundColor: Colors.white, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - ExpansionTile( - title: Container( - //height: 120.0, - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - model.insuranceApproval[index].patientDescription == "In Patient" - ? Container( - decoration: BoxDecoration( - color: Theme.of(context).primaryColor, - borderRadius: - BorderRadius.circular( - 16.0)), - width: 115.0, - padding: - EdgeInsets.only(left: 11.5), - child: Center( - child: Texts( - TranslationBase.of(context).inPatient, - color: Colors.white, - ), - ), - ) - : Container( - decoration: BoxDecoration( - color: Color(0xff505A5D), - borderRadius: - BorderRadius.circular( - 16.0)), - width: 115.0, - padding: - EdgeInsets.only(left: 11.5), - child: Center( - child: Texts( - TranslationBase.of(context).outpatient, - color: Colors.white, - ), - ), - ), - Padding( - padding: EdgeInsets.symmetric( - vertical: 10.0), - child: Texts( - model.insuranceApproval[index] - .clinicName, - fontSize: 20.0, - color: Color(0xff60686B), - fontWeight: FontWeight.w600, - ), + ...List.generate(model.insuranceApproval.length, (index) { + print(model.insuranceApproval[index].isLiveCareAppointment); + return RoundedContainer( + backgroundColor: Colors.white, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ExpansionTile( + title: Container( + //height: 120.0, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + model.insuranceApproval[index].isLiveCareAppointment + ? sideBadge(TranslationBase.of(context).liveCare, 0xffA9A089) + : model.insuranceApproval[index].isInOutPatient + ? sideBadge(TranslationBase.of(context).outpatient, 0xff505a5d) + : sideBadge(TranslationBase.of(context).inPatient, 0xffb8372c), + Padding( + padding: EdgeInsets.symmetric(vertical: 10.0), + child: Texts( + model.insuranceApproval[index].clinicName, + fontSize: 20.0, + color: Color(0xff60686B), + fontWeight: FontWeight.w600, + ), + ), + Texts( + model.insuranceApproval[index].doctorName, + fontSize: 17.0, + ), + ], + ), + ), + children: [ + Padding( + padding: EdgeInsets.symmetric(vertical: 12.0, horizontal: 12.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Texts( + TranslationBase.of(context).approvalNo, + fontSize: 18.0, ), Texts( - model.insuranceApproval[index] - .doctorName, - fontSize: 17.0, + model.insuranceApproval[index].approvalNo.toString(), + fontSize: 18.0, + fontWeight: FontWeight.w600, ), ], ), - ), - children: [ - Padding( - padding: EdgeInsets.symmetric( - vertical: 12.0, horizontal: 12.0), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Row( - children: [ - Texts( - TranslationBase.of(context).approvalNo, - fontSize: 18.0, - ), - Texts(model.insuranceApproval[index].approvalNo.toString(), - fontSize: 18.0, - fontWeight: FontWeight.w600,), - ], - ), - Divider( - color: Colors.black, - height: 25.0, - thickness: 1.0, - ), - Row( - children: [ - Texts( - TranslationBase.of(context).procedureStatus , - fontSize: 17.5, - ), - SizedBox(width: 12,), - Texts( - model.insuranceApproval[index].approvalStatusDescption, - fontWeight: FontWeight.w600, - fontSize: 17.5, - ), - ], - ), - Divider( - color: Colors.black, - height: 25.0, - thickness: 1.0, - ), - Row( - children: [ - Texts( - TranslationBase.of(context).unusedCount, - fontSize: 17.5, - ), - Texts( - model.insuranceApproval[index].unUsedCount.toString(), - fontSize: 17.5, - fontWeight: FontWeight.w600, - ), - ], - ), - Divider( - color: Colors.black, - height: 25.0, - thickness: 1.0, - ), + Divider( + color: Colors.black, + height: 25.0, + thickness: 1.0, + ), + Row( + children: [ + Texts( + TranslationBase.of(context).procedureStatus, + fontSize: 17.5, + ), + SizedBox( + width: 12, + ), + Texts( + model.insuranceApproval[index].approvalStatusDescption, + fontWeight: FontWeight.w600, + fontSize: 17.5, + ), + ], + ), + Divider( + color: Colors.black, + height: 25.0, + thickness: 1.0, + ), + Row( + children: [ + Texts( + TranslationBase.of(context).unusedCount, + fontSize: 17.5, + ), + Texts( + model.insuranceApproval[index].unUsedCount.toString(), + fontSize: 17.5, + fontWeight: FontWeight.w600, + ), + ], + ), + Divider( + color: Colors.black, + height: 25.0, + thickness: 1.0, + ), // Text( // 'Company Name: ' + // model.insuranceApproval[index] @@ -224,190 +182,131 @@ class _InsuranceApprovalState extends State { // fontSize: 17.5, // fontWeight: FontWeight.w600), // ), - Texts( - TranslationBase.of(context).companyName, - fontWeight: FontWeight.w600, - fontSize: 17.5, - ), - - Divider( - color: Colors.black, - height: 25.0, - thickness: 1.0, - ), - Row( - children: [ - Texts( - TranslationBase.of(context).receiptOn , - fontSize: 17.5, - fontWeight: FontWeight.w600, - - ), - Texts( - convertDateFormat(model.insuranceApproval[index].rceiptOn), - fontSize: 17.5, - fontWeight: FontWeight.w600, + Texts( + TranslationBase.of(context).companyName, + fontWeight: FontWeight.w600, + fontSize: 17.5, + ), - ), - ], + Divider( + color: Colors.black, + height: 25.0, + thickness: 1.0, + ), + Row( + children: [ + Texts( + TranslationBase.of(context).receiptOn, + fontSize: 17.5, + fontWeight: FontWeight.w600, + ), + Texts( + convertDateFormat(model.insuranceApproval[index].receiptOn), + fontSize: 17.5, + fontWeight: FontWeight.w600, + ), + ], + ), + Divider( + color: Colors.black, + height: 25.0, + thickness: 1.0, + ), + Row( + children: [ + Texts( + TranslationBase.of(context).expiryDate, + fontSize: 17.5, + fontWeight: FontWeight.w600, + ), + Texts( + convertDateFormat(model.insuranceApproval[index].expiryDate), + fontSize: 17.5, + fontWeight: FontWeight.w600, + ), + ], + ), + Divider( + color: Colors.black, + height: 55.0, + thickness: 1.2, + ), + IntrinsicHeight( + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + flex: 1, + child: Column( + children: [ + Text(TranslationBase.of(context).procedureName), + Padding( + padding: EdgeInsets.only(top: SizeConfig.heightMultiplier * 3.0), + child: Text( + model.insuranceApproval[index].apporvalDetails?.procedureName ?? '', + style: TextStyle(fontWeight: FontWeight.w600, fontSize: 15.5), + ), + ), + ], + ), ), - Divider( + VerticalDivider( + width: 10.0, + thickness: 1.2, color: Colors.black, - height: 25.0, - thickness: 1.0, ), - Row( - children: [ - Texts( - TranslationBase.of(context).expiryDate, - fontSize: 17.5, - fontWeight: FontWeight.w600, - - ), - Texts( - convertDateFormat(model.insuranceApproval[index].expiryDate), - fontSize: 17.5, - fontWeight: FontWeight.w600, - - ), - ], + Expanded( + flex: 1, + child: Column( + children: [ + Text(TranslationBase.of(context).procedureStatus), + Padding( + padding: EdgeInsets.only(top: SizeConfig.heightMultiplier * 3.0), + child: Text( + model.insuranceApproval[index].apporvalDetails?.status ?? '', + style: TextStyle(fontSize: 17.5, fontWeight: FontWeight.w600), + ), + ), + ], + ), ), - Divider( - color: Colors.black, - height: 55.0, + VerticalDivider( + width: 2.3, thickness: 1.2, + color: Colors.black, ), - IntrinsicHeight( - child: Row( - crossAxisAlignment: - CrossAxisAlignment.center, + Expanded( + flex: 1, + child: Column( children: [ - Expanded( - flex: 1, - child: Column( - children: [ - Text(TranslationBase.of( - context) - .procedureName), - Padding( - padding: EdgeInsets.only( - top: SizeConfig - .heightMultiplier * - 3.0), - child: Text( - model - .insuranceApproval[ - index] - .approvalDetails == - null - ? '' - : model - .insuranceApproval[ - index] - .approvalDetails - .procedureName, - style: TextStyle( - fontWeight: - FontWeight.w600, - fontSize: 15.5), - ), - ), - ], - ), - ), - VerticalDivider( - width: 10.0, - thickness: 1.2, - color: Colors.black, - ), - Expanded( - flex: 1, - child: Column( - children: [ - Text(TranslationBase.of( - context) - .procedureStatus), - Padding( - padding: EdgeInsets.only( - top: SizeConfig - .heightMultiplier * - 3.0), - child: Text( - model - .insuranceApproval[ - index] - .approvalDetails == - null - ? '' - : model - .insuranceApproval[ - index] - .approvalDetails - .status, - style: TextStyle( - fontSize: 17.5, - fontWeight: - FontWeight - .w600), - ), - ), - ], - ), - ), - VerticalDivider( - width: 2.3, - thickness: 1.2, - color: Colors.black, - ), - Expanded( - flex: 1, - child: Column( - children: [ - Text(TranslationBase.of( - context) - .usageStatus), - Padding( - padding: EdgeInsets.only( - top: SizeConfig - .heightMultiplier * - 3.0), - child: Text( - model - .insuranceApproval[ - index] - .approvalDetails == - null - ? '' - : model - .insuranceApproval[ - index] - .approvalDetails - .isInvoicedDesc, - style: TextStyle( - fontWeight: - FontWeight.w600, - fontSize: 17.5), - ), - ), - ], + Text(TranslationBase.of(context).usageStatus), + Padding( + padding: EdgeInsets.only(top: SizeConfig.heightMultiplier * 3.0), + child: Text( + model.insuranceApproval[index].apporvalDetails?.isInvoicedDesc ?? '', + style: TextStyle(fontWeight: FontWeight.w600, fontSize: 17.5), ), ), ], ), ), - Divider( - color: Colors.black, - height: 25.0, - thickness: 1.0, - ), ], ), ), + Divider( + color: Colors.black, + height: 25.0, + thickness: 1.0, + ), ], ), - ], - ), - )), + ), + ], + ), + ], + ), + ); + }), ], ), ), @@ -416,6 +315,22 @@ class _InsuranceApprovalState extends State { ); } + Widget sideBadge(String title, int color) { + return Container( + decoration: BoxDecoration( + color: Color(color), + borderRadius: BorderRadius.circular(16.0), + ), + width: 115.0, + padding: EdgeInsets.only(top: 1, bottom: 1), + alignment: Alignment.center, + child: Texts( + title, + color: Colors.white, + ), + ); + } + convertDateFormat(String Date) { const start = "/Date("; const end = "+0300)"; @@ -423,13 +338,8 @@ class _InsuranceApprovalState extends State { final startIndex = Date.indexOf(start); final endIndex = Date.indexOf(end, startIndex + start.length); - var date = new DateTime.fromMillisecondsSinceEpoch( - int.parse(Date.substring(startIndex + start.length, endIndex))); - String newDate = date.year.toString() + - "-" + - date.month.toString().padLeft(2, '0') + - "-" + - date.day.toString().padLeft(2, '0'); + var date = new DateTime.fromMillisecondsSinceEpoch(int.parse(Date.substring(startIndex + start.length, endIndex))); + String newDate = date.year.toString() + "-" + date.month.toString().padLeft(2, '0') + "-" + date.day.toString().padLeft(2, '0'); return newDate.toString(); } diff --git a/lib/services/authentication/auth_provider.dart b/lib/services/authentication/auth_provider.dart index 43fdc456..3ad128d4 100644 --- a/lib/services/authentication/auth_provider.dart +++ b/lib/services/authentication/auth_provider.dart @@ -117,8 +117,8 @@ class AuthProvider with ChangeNotifier { var imei = await sharedPref.getString(PUSH_TOKEN); // if (!request.) { newRequest.iMEI = imei; //imei!=null ? imei : ''; - newRequest.firstName = request.firstName + " " + request.lastName; - newRequest.firstNameN = request.firstNameN + " " + request.lastNameN; + newRequest.firstName = request.firstName??"" + " " + request.lastName??""; + newRequest.firstNameN = request.firstNameN??"" + " " + request.lastNameN??""; newRequest.lastNameN = request.lastNameN ?? ""; newRequest.outSA = request.outSA == 1 ? true : false; newRequest.biometricEnabled = false; From 213d104d57b2121a89a2e5ff7258eb45688d7136 Mon Sep 17 00:00:00 2001 From: Haroon Amjad Date: Sun, 1 Aug 2021 10:32:17 +0300 Subject: [PATCH 41/59] Covid test procedure selection implemented --- lib/config/config.dart | 3 + lib/config/localized_values.dart | 6 +- .../CovidTestProceduresResponse.dart | 32 +++++ .../Covid-DriveThru/Covid-TimeSlots.dart | 22 +-- .../covid-drivethru-location.dart | 127 +++++------------- .../covid-payment-details.dart | 113 +++++++++++++++- lib/pages/landing/home_page.dart | 6 +- .../appointment_services/GetDoctorsList.dart | 3 +- .../covid-drivethru/covid-drivethru.dart | 39 +++++- lib/uitl/translations_delegate_base.dart | 4 +- 10 files changed, 240 insertions(+), 115 deletions(-) create mode 100644 lib/models/CovidDriveThru/CovidTestProceduresResponse.dart diff --git a/lib/config/config.dart b/lib/config/config.dart index 40e0a300..62fedb16 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -370,6 +370,9 @@ const CHECK_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = const GET_COVID_DRIVETHRU_PROJECT_LIST = 'Services/Doctors.svc/REST/COVID19_ProjectDriveThroughTestingCenter'; +const GET_COVID_DRIVETHRU_PROCEDURES_LIST = + 'Services/Doctors.svc/REST/COVID19_GetTestProcedures'; + const GET_COVID_DRIVETHRU_PAYMENT_INFO = 'Services/Doctors.svc/REST/COVID19_GetPatientPaymentInormation'; diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 534c0cc6..f1ad075f 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -2019,5 +2019,9 @@ const Map localizedValues = { "ar": "علاقة الطالب" }, "newReferral": {"en": "New Referral", "ar": "إحالة جديدة"}, - "searchForReferrals": {"en": "Search For Referrals", "ar": "ابحث عن الإحالات"} + "searchForReferrals": {"en": "Search For Referrals", "ar": "ابحث عن الإحالات"}, + "covid-select-procedure": { + "en": "Please select the procedure:", + "ar": "الرجاء تحديد الإجراء:" + } }; diff --git a/lib/models/CovidDriveThru/CovidTestProceduresResponse.dart b/lib/models/CovidDriveThru/CovidTestProceduresResponse.dart new file mode 100644 index 00000000..c104a1fc --- /dev/null +++ b/lib/models/CovidDriveThru/CovidTestProceduresResponse.dart @@ -0,0 +1,32 @@ +class CovidTestProceduresResponse { + String procedureID; + String procedureName; + String procedureNameN; + int projectID; + String setupID; + + CovidTestProceduresResponse( + {this.procedureID, + this.procedureName, + this.procedureNameN, + this.projectID, + this.setupID}); + + CovidTestProceduresResponse.fromJson(Map json) { + procedureID = json['ProcedureID']; + procedureName = json['ProcedureName']; + procedureNameN = json['ProcedureNameN']; + projectID = json['ProjectID']; + setupID = json['SetupID']; + } + + Map toJson() { + final Map data = new Map(); + data['ProcedureID'] = this.procedureID; + data['ProcedureName'] = this.procedureName; + data['ProcedureNameN'] = this.procedureNameN; + data['ProjectID'] = this.projectID; + data['SetupID'] = this.setupID; + return data; + } +} diff --git a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart index 04a7178f..c12dd877 100644 --- a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart +++ b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart @@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart import 'package:diplomaticquarterapp/models/Appointments/FreeSlot.dart'; import 'package:diplomaticquarterapp/models/Appointments/PatientShareResposne.dart'; import 'package:diplomaticquarterapp/models/Appointments/timeSlot.dart'; +import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidTestProceduresResponse.dart'; import 'package:diplomaticquarterapp/pages/Covid-DriveThru/covid-payment-alert.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/services/covid-drivethru/covid-drivethru.dart'; @@ -27,6 +28,7 @@ class CovidTimeSlots extends StatefulWidget { static DateTime selectedAppoDateTime; static String selectedDate; static String selectedTime; + CovidTestProceduresResponse selectedProcedure; int selectedClinicID; int selectedDoctorID; @@ -35,7 +37,7 @@ class CovidTimeSlots extends StatefulWidget { PatientShareResponse patientShareResponse; - CovidTimeSlots({@required this.projectID}); + CovidTimeSlots({@required this.projectID, @required this.selectedProcedure}); @override _CovidTimeSlotsState createState() => _CovidTimeSlotsState(); @@ -94,10 +96,12 @@ class _CovidTimeSlotsState extends State super.dispose(); } - void _onDaySelected(DateTime day, List events, ProjectViewModel projectViewModel) { + void _onDaySelected( + DateTime day, List events, ProjectViewModel projectViewModel) { final DateFormat formatter = DateFormat('yyyy-MM-dd'); setState(() { - this.selectedDate = DateUtil.getWeekDayMonthDayYearDateFormatted(day, projectViewModel.isArabic ? "ar" : "en"); + this.selectedDate = DateUtil.getWeekDayMonthDayYearDateFormatted( + day, projectViewModel.isArabic ? "ar" : "en"); openTimeSlotsPickerForDate(day, docFreeSlots); CovidTimeSlots.selectedDate = formatter.format(day); print(CovidTimeSlots.selectedDate); @@ -260,7 +264,8 @@ class _CovidTimeSlotsState extends State onPressed: () { bookCovidTestAppointment(); }, - child: Text(TranslationBase.of(context).bookNow, style: TextStyle(fontSize: 18.0)), + child: Text(TranslationBase.of(context).bookNow, + style: TextStyle(fontSize: 18.0)), ), ), ), @@ -355,11 +360,7 @@ class _CovidTimeSlotsState extends State }, ), onDaySelected: (date, event, _) { - _onDaySelected( - date, - event, - projectViewModel - ); + _onDaySelected(date, event, projectViewModel); _animationController.forward(from: 0.0); }, onVisibleDaysChanged: _onVisibleDaysChanged, @@ -494,7 +495,8 @@ class _CovidTimeSlotsState extends State docObject.projectID, CovidTimeSlots.selectedTime, CovidTimeSlots.selectedDate, - context) + context, + widget.selectedProcedure.procedureID) .then((res) { if (res['MessageStatus'] == 1) { AppToast.showSuccessToast(message: "Appointment Booked Successfully"); diff --git a/lib/pages/Covid-DriveThru/covid-drivethru-location.dart b/lib/pages/Covid-DriveThru/covid-drivethru-location.dart index 749d9140..9bccd300 100644 --- a/lib/pages/Covid-DriveThru/covid-drivethru-location.dart +++ b/lib/pages/Covid-DriveThru/covid-drivethru-location.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidPaymentInfoResponse.dart'; +import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidTestProceduresResponse.dart'; import 'package:diplomaticquarterapp/models/CovidDriveThru/DriveThroughTestingCenterModel.dart'; import 'package:diplomaticquarterapp/pages/Covid-DriveThru/covid-payment-details.dart'; import 'package:diplomaticquarterapp/routes.dart'; @@ -22,6 +23,7 @@ class CovidDrivethruLocation extends StatefulWidget { class _CovidDrivethruLocationState extends State { String projectDropdownValue; List projectsList = []; + List proceduresList = []; bool isLocationSelected = false; String projectLat = ""; String projectLong = ""; @@ -35,7 +37,10 @@ class _CovidDrivethruLocationState extends State { @override void initState() { WidgetsBinding.instance.addPostFrameCallback((_) { - if (projectViewModel.isLogin) getProjectsList(context); + if (projectViewModel.isLogin) { + getProjectsList(context); + getTestProcedures(context); + } }); super.initState(); } @@ -241,91 +246,6 @@ class _CovidDrivethruLocationState extends State { ), ), ), - // bottomSheet: Container( - // height: MediaQuery.of(context).size.height * 0.15, - // width: double.infinity, - // child: Column( - // children: [ - // Container( - // margin: EdgeInsets.only(top: 10.0), - // child: ButtonTheme( - // shape: RoundedRectangleBorder( - // borderRadius: BorderRadius.circular(10.0), - // ), - // minWidth: MediaQuery.of(context).size.width * 0.91, - // height: 45.0, - // child: RaisedButton( - // color: new Color(0xFFc5272d), - // textColor: Colors.white, - // disabledTextColor: Colors.white, - // disabledColor: Colors.red[300], - // onPressed: () { - // getDirections(); - // }, - // child: Text(TranslationBase.of(context).getDirections, - // style: TextStyle(fontSize: 18.0)), - // ), - // ), - // ), - // Container( - // margin: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0), - // child: Flex( - // direction: Axis.horizontal, - // children: [ - // Expanded( - // flex: 1, - // child: Container( - // margin: EdgeInsets.fromLTRB(10.0, 0.0, 5.0, 0.0), - // child: ButtonTheme( - // shape: RoundedRectangleBorder( - // borderRadius: BorderRadius.circular(10.0), - // ), - // minWidth: MediaQuery.of(context).size.width * 0.7, - // height: 45.0, - // child: RaisedButton( - // color: new Color(0xFF60686b), - // textColor: Colors.white, - // disabledTextColor: Colors.white, - // disabledColor: Colors.grey[500], - // onPressed: () { - // back(); - // }, - // child: Text(TranslationBase.of(context).back, - // style: TextStyle(fontSize: 18.0)), - // ), - // ), - // ), - // ), - // Expanded( - // flex: 1, - // child: Container( - // margin: EdgeInsets.fromLTRB(10.0, 0.0, 5.0, 0.0), - // child: ButtonTheme( - // shape: RoundedRectangleBorder( - // borderRadius: BorderRadius.circular(10.0), - // ), - // minWidth: MediaQuery.of(context).size.width * 0.7, - // height: 45.0, - // child: RaisedButton( - // color: new Color(0xFF60686b), - // textColor: Colors.white, - // disabledTextColor: Colors.white, - // disabledColor: Colors.grey[500], - // onPressed: () { - // next(); - // }, - // child: Text(TranslationBase.of(context).next, - // style: TextStyle(fontSize: 18.0)), - // ), - // ), - // ), - // ), - // ], - // ), - // ), - // ], - // ), - // ), ); } @@ -368,21 +288,18 @@ class _CovidDrivethruLocationState extends State { getPaymentInfo(BuildContext context, String projectID) { CovidDriveThruService service = new CovidDriveThruService(); - CovidPaymentInfoResponse covidPaymentInfoResponse = new CovidPaymentInfoResponse(); - GifLoaderDialogUtils.showMyDialog(context); - service - .getCovidPaymentInformation(context, int.parse(projectID)) + .getCovidPaymentInformation( + context, int.parse(projectID), proceduresList[0].procedureID) .then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { covidPaymentInfoResponse = CovidPaymentInfoResponse.fromJson(res['COVID19_PatientShare']); - print(covidPaymentInfoResponse.procedureNameField); }); Navigator.push( context, @@ -390,6 +307,7 @@ class _CovidDrivethruLocationState extends State { page: CovidPaymentDetails( covidPaymentInfoResponse: covidPaymentInfoResponse, projectID: int.parse(projectID), + proceduresList: proceduresList, ))); } else {} }).catchError((err) { @@ -397,13 +315,36 @@ class _CovidDrivethruLocationState extends State { }); } + getTestProcedures(BuildContext context) { + CovidDriveThruService service = new CovidDriveThruService(); + GifLoaderDialogUtils.showMyDialog(context); + + CovidTestProceduresResponse covidTestProceduresResponse = + new CovidTestProceduresResponse(); + + service.getCovidTestProceduresList(context).then((res) { + if (res['MessageStatus'] == 1) { + print(res); + setState(() { + res['COVID19_TestProceduresList'].forEach((v) { + proceduresList.add(new CovidTestProceduresResponse.fromJson(v)); + }); + }); + print(proceduresList.length); + print(proceduresList[0].procedureName); + GifLoaderDialogUtils.hideDialog(context); + } else {} + }).catchError((err) { + GifLoaderDialogUtils.hideDialog(context); + print(err); + }); + } + getProjectsList(BuildContext context) { CovidDriveThruService service = new CovidDriveThruService(); GifLoaderDialogUtils.showMyDialog(context); service.getCovidProjectsList(context).then((res) { - print(res); if (res['MessageStatus'] == 1) { - print(res); setState(() { res['List_COVID19_ProjectDriveThroughTestingCenter'].forEach((v) { projectsList.add(new DriveThroughTestingCenterModel.fromJson(v)); diff --git a/lib/pages/Covid-DriveThru/covid-payment-details.dart b/lib/pages/Covid-DriveThru/covid-payment-details.dart index edf5e612..488dd3bf 100644 --- a/lib/pages/Covid-DriveThru/covid-payment-details.dart +++ b/lib/pages/Covid-DriveThru/covid-payment-details.dart @@ -1,5 +1,8 @@ import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidPaymentInfoResponse.dart'; +import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidTestProceduresResponse.dart'; import 'package:diplomaticquarterapp/pages/Covid-DriveThru/Covid-TimeSlots.dart'; +import 'package:diplomaticquarterapp/services/covid-drivethru/covid-drivethru.dart'; +import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; @@ -10,9 +13,13 @@ import 'package:flutter_svg/flutter_svg.dart'; class CovidPaymentDetails extends StatefulWidget { CovidPaymentInfoResponse covidPaymentInfoResponse; int projectID; + List proceduresList; + CovidTestProceduresResponse selectedProcedure; CovidPaymentDetails( - {@required this.covidPaymentInfoResponse, @required this.projectID}); + {@required this.covidPaymentInfoResponse, + @required this.projectID, + @required this.proceduresList}); @override _CovidPaymentDetailsState createState() => _CovidPaymentDetailsState(); @@ -21,6 +28,13 @@ class CovidPaymentDetails extends StatefulWidget { class _CovidPaymentDetailsState extends State { bool isAgree = false; + @override + void initState() { + print(widget.proceduresList[0].procedureName); + widget.selectedProcedure = widget.proceduresList[0]; + super.initState(); + } + @override Widget build(BuildContext context) { return AppScaffold( @@ -28,7 +42,7 @@ class _CovidPaymentDetailsState extends State { isShowAppBar: true, body: SingleChildScrollView( child: Container( - margin: EdgeInsets.fromLTRB(15.0, 15.0, 15.0, 0.0), + margin: EdgeInsets.fromLTRB(15.0, 15.0, 15.0, 100.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -82,13 +96,75 @@ class _CovidPaymentDetailsState extends State { borderRadius: BorderRadius.circular(10.0), color: Colors.white), margin: EdgeInsets.fromLTRB(0.0, 30.0, 0.0, 5.0), - padding: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 20.0), + padding: EdgeInsets.fromLTRB(10.0, 0.0, 10.0, 20.0), child: Column( children: [ Container( alignment: Alignment.center, margin: - EdgeInsets.only(left: 0.0, right: 20.0, top: 30.0), + EdgeInsets.only(left: 0.0, right: 20.0, top: 10.0), + child: Text( + TranslationBase.of(context).covidSelectProcedure, + style: TextStyle( + color: Colors.black, + fontSize: 20.0, + fontWeight: FontWeight.bold)), + ), + ...List.generate( + widget.proceduresList.length, + (index) => Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 1, + ), + Row( + children: [ + Expanded( + flex: 1, + child: InkWell( + onTap: () { + setState(() { + widget.selectedProcedure = + widget.proceduresList[index]; + }); + }, + child: ListTile( + title: Text( + widget.proceduresList[index] + .procedureName, + style: TextStyle(fontSize: 14.0)), + leading: Radio( + value: widget.proceduresList[index], + groupValue: widget.selectedProcedure, + activeColor: Colors.red[800], + toggleable: true, + onChanged: (value) { + setState(() { + widget.selectedProcedure = value; + print(widget + .selectedProcedure.procedureName); + getPaymentInfo( + context, + widget.projectID.toString(), + widget.selectedProcedure + .procedureID); + }); + }, + ), + ), + ), + ) + ], + ), + ], + ), + ), + Divider(), + Container( + alignment: Alignment.center, + margin: + EdgeInsets.only(left: 0.0, right: 20.0, top: 10.0), child: Text(TranslationBase.of(context).testFee, style: TextStyle( color: Colors.black, @@ -238,6 +314,7 @@ class _CovidPaymentDetailsState extends State { FadePage( page: CovidTimeSlots( projectID: widget.projectID, + selectedProcedure: widget.selectedProcedure, ))); } @@ -245,6 +322,34 @@ class _CovidPaymentDetailsState extends State { Navigator.pop(context); } + getPaymentInfo( + BuildContext context, String projectID, String selectedProcedureID) { + CovidDriveThruService service = new CovidDriveThruService(); + GifLoaderDialogUtils.showMyDialog(context); + service + .getCovidPaymentInformation( + context, int.parse(projectID), selectedProcedureID) + .then((res) { + GifLoaderDialogUtils.hideDialog(context); + if (res['MessageStatus'] == 1) { + setState(() { + widget.covidPaymentInfoResponse = + CovidPaymentInfoResponse.fromJson(res['COVID19_PatientShare']); + }); + // Navigator.push( + // context, + // FadePage( + // page: CovidPaymentDetails( + // covidPaymentInfoResponse: covidPaymentInfoResponse, + // projectID: int.parse(projectID), + // proceduresList: proceduresList, + // ))); + } else {} + }).catchError((err) { + print(err); + }); + } + _getNormalText(text) { return Container( margin: EdgeInsets.only(top: 20.0, right: 10.0), diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index cab34c08..1804e274 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -115,8 +115,8 @@ class _HomePageState extends State { ), child: SvgPicture.asset( 'assets/images/new-design/covid-19-car.svg', - width: 45.0, - height: 45.0), + width: 35.0, + height: 35.0), ), Container( margin: EdgeInsets.only( @@ -144,7 +144,7 @@ class _HomePageState extends State { context) .size .width * - 0.14, + 0.1, height: 25.0, child: RaisedButton( color: Colors diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index 65fe2b04..4bb5a6ac 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -321,7 +321,7 @@ class DoctorsListService extends BaseService { } Future insertAppointment(int docID, int clinicID, int projectID, - String selectedTime, String selectedDate, BuildContext context) async { + String selectedTime, String selectedDate, BuildContext context, [String procedureID]) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -341,6 +341,7 @@ class DoctorsListService extends BaseService { "StartTime": selectedTime, "SelectedTime": selectedTime, "EndTime": selectedTime, + "ProcedureID": procedureID, "InitialSlotDuration": 0, "StrAppointmentDate": selectedDate, "IsVirtual": false, diff --git a/lib/services/covid-drivethru/covid-drivethru.dart b/lib/services/covid-drivethru/covid-drivethru.dart index 3943a8b3..35e8fb2f 100644 --- a/lib/services/covid-drivethru/covid-drivethru.dart +++ b/lib/services/covid-drivethru/covid-drivethru.dart @@ -50,7 +50,43 @@ class CovidDriveThruService extends BaseService { return Future.value(localRes); } - Future getCovidPaymentInformation(BuildContext context, int projectID) async { + Future getCovidTestProceduresList(BuildContext context) async { + Map request; + + if (await this.sharedPref.getObject(USER_PROFILE) != null) { + var data = AuthenticatedUser.fromJson( + await this.sharedPref.getObject(USER_PROFILE)); + authUser = data; + } + + var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); + Request req = appGlobal.getPublicRequest(); + request = { + "LanguageID": languageID == 'ar' ? 1 : 2, + "IPAdress": "10.20.10.20", + "VersionID": req.VersionID, + "Channel": req.Channel, + "generalid": 'Cs2020@2016\$2958', + "PatientOutSA": authUser.outSA, + "TokenID": "", + "DeviceTypeID": req.DeviceTypeID, + "SessionID": "YckwoXhUmWBsnHKEKig", + "PatientID": authUser.patientID != null ? authUser.patientID : 0, + "License": true + }; + + dynamic localRes; + + await baseAppClient.post(GET_COVID_DRIVETHRU_PROCEDURES_LIST, + onSuccess: (response, statusCode) async { + localRes = response; + }, onFailure: (String error, int statusCode) { + throw error; + }, body: request); + return Future.value(localRes); + } + + Future getCovidPaymentInformation(BuildContext context, int projectID, String procedureID) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -65,6 +101,7 @@ class CovidDriveThruService extends BaseService { "LanguageID": languageID == 'ar' ? 1 : 2, "IPAdress": "10.20.10.20", "ProjectID": projectID, + "ProcedureId": procedureID, "VersionID": req.VersionID, "Channel": req.Channel, "generalid": 'Cs2020@2016\$2958', diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index fa6374ec..ce1905bc 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -1632,8 +1632,8 @@ class TranslationBase { String get newReferral => localizedValues["newReferral"][locale.languageCode]; String get searchForReferrals => localizedValues["searchForReferrals"][locale.languageCode]; - - + String get covidSelectProcedure => + localizedValues["covid-select-procedure"][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate { From dbf525c4848400e31d37e5f90a6b06ba49222af0 Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Sun, 1 Aug 2021 12:39:37 +0300 Subject: [PATCH 42/59] no message --- ios/Podfile | 1 + lib/analytics/analytic-events.dart | 69 +++++++++++++++++++++++ lib/analytics/google-analytics.dart | 85 +++++++++++++++++++++++++++++ lib/main.dart | 22 +++++--- lib/pages/landing/landing_page.dart | 6 ++ lib/splashPage.dart | 3 + lib/uitl/utils.dart | 19 +++++++ pubspec.yaml | 1 + 8 files changed, 197 insertions(+), 9 deletions(-) create mode 100644 lib/analytics/analytic-events.dart create mode 100644 lib/analytics/google-analytics.dart diff --git a/ios/Podfile b/ios/Podfile index d68afba2..89424e2a 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -3,6 +3,7 @@ # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' +$FirebaseAnalyticsWithoutAdIdSupport = true project 'Runner', { 'Debug' => :debug, diff --git a/lib/analytics/analytic-events.dart b/lib/analytics/analytic-events.dart new file mode 100644 index 00000000..3e107d95 --- /dev/null +++ b/lib/analytics/analytic-events.dart @@ -0,0 +1,69 @@ +import 'package:diplomaticquarterapp/uitl/utils.dart'; + +class _Event{ + String name; + String description; + bool active; + _Event(dynamic map){ + name = map['name']; + description = map['description']; + active = map['active']; + } + + flutterName() => 'f: $name'; +} + +class AnalyticEvents{ + static _Event get(String key) { + var e = _Event(mapping[key]); + if(e == null){ + var label = labelFrom(className: key); // Convert Class Name in to Label (HomeCare -> Home Care) + e = _Event({"name": label, "active":true, "description":key}); + } + return e; + } + + static var mapping = const { + "HomeHealthCarePage" : { + "active" : true, + "name" : "Home Health Care Page", + "description" : "", + }, + "SplashScreen" : { + "active" : true, + "name" : "Splash Screen", + "description" : "", + }, + "LandingPage" : { + "active" : true, + "name" : "Landing Page", + "description" : "", + }, + "WelcomeLogin" : { + "active" : true, + "name" : "Welcome Login", + "description" : "", + }, + "LoginType" : { + "active" : true, + "name" : "Login Type", + "description" : "", + }, + "Login" : { + "active" : true, + "name" : "Login", + "description" : "", + }, + "ForgotPassword" : { + "active" : true, + "name" : "Forgot Password", + "description" : "", + }, + "" : { + "active" : true, + "name" : "", + "description" : "", + }, + }; +} + diff --git a/lib/analytics/google-analytics.dart b/lib/analytics/google-analytics.dart new file mode 100644 index 00000000..f4bf8b72 --- /dev/null +++ b/lib/analytics/google-analytics.dart @@ -0,0 +1,85 @@ +import 'package:diplomaticquarterapp/analytics/analytic-events.dart'; +import 'package:diplomaticquarterapp/routes.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; +import 'package:firebase_analytics/firebase_analytics.dart'; +import 'package:firebase_analytics/observer.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + +class Singleton { + const Singleton(); //Constant constructor + + void hello() { print('Hello world'); } +} + +var analytics = FirebaseAnalytics(); + +class GAnalytics{ + const GAnalytics(); + static GAnalytics shared = const GAnalytics(); + NavObserver navObserver() => NavObserver(); +} +// adb shell setprop debug.firebase.analytics.app com.ejada.hmg -> Android +class NavObserver extends RouteObserver>{ + + _sendScreenView(PageRoute route) async{ + + + log(String className){ + var event = AnalyticEvents.get(className); + if(event.active){ + analytics.setCurrentScreen(screenName: event.flutterName(), screenClassOverride: className).catchError( (Object error) { + debugPrint('$FirebaseAnalyticsObserver: $error'); + }, + test: (Object error) { + return error is PlatformException; + }, + ); + } + } + + if(route.settings.name != null && route.settings.name.isNotEmpty && route.settings.name != "null"){ + var class_ = routes[route.settings.name](0); + if(class_ != null) + log(class_.toStringShort()); + + }else if(route is FadePage){ + var class_ = route.page; + if(class_ != null) + log(class_.toStringShort()); + + }else if(route is MaterialPageRoute){ + var class_ = route.builder(null); + if (class_ != null) + log(class_.toStringShort()); + + }else{ + print(""); + } + + } + + @override + void didPush(Route route, Route previousRoute) { + super.didPush(route, previousRoute); + if (route is PageRoute) { + _sendScreenView(route); + } + } + + @override + void didReplace({Route newRoute, Route oldRoute}) { + super.didReplace(newRoute: newRoute, oldRoute: oldRoute); + if (newRoute is PageRoute) { + _sendScreenView(newRoute); + } + } + + @override + void didPop(Route route, Route previousRoute) { + super.didPop(route, previousRoute); + // if (previousRoute is PageRoute && route is PageRoute) { + // _sendScreenView(previousRoute); + // } + } +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 70ca9d71..bf090720 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,30 +1,29 @@ +import 'package:diplomaticquarterapp/analytics/google-analytics.dart'; import 'package:diplomaticquarterapp/theme/theme_notifier.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart'; import 'package:diplomaticquarterapp/services/robo_search/search_provider.dart'; import 'package:diplomaticquarterapp/theme/theme_value.dart'; -import 'package:diplomaticquarterapp/uitl/HMG_Geofence.dart'; import 'package:diplomaticquarterapp/uitl/LocalNotification.dart'; import 'package:diplomaticquarterapp/uitl/PlatformBridge.dart'; -import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:firebase_analytics/firebase_analytics.dart'; +import 'package:firebase_analytics/observer.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; -import 'package:hexcolor/hexcolor.dart'; import 'package:provider/provider.dart'; - -import 'Constants.dart'; -import 'config/shared_pref_kay.dart'; import 'config/size_config.dart'; -import 'core/model/geofencing/requests/GeoZonesRequestModel.dart'; -import 'core/service/geofencing/GeofencingServices.dart'; import 'core/viewModels/project_view_model.dart'; import 'locator.dart'; import 'pages/pharmacies/compare-list.dart'; +import 'package:firebase_core/firebase_core.dart'; + void main() async { + WidgetsFlutterBinding.ensureInitialized(); + FirebaseApp defaultApp = await Firebase.initializeApp(); + setupLocator(); runApp(MyApp()); } @@ -35,6 +34,7 @@ class MyApp extends StatefulWidget { } class _MyApp extends State { + @override void initState() { // ProjectViewModel projectProvider; @@ -52,6 +52,7 @@ class _MyApp extends State { .showNow(title: "Payload", subtitle: payload, payload: payload); }); + // final themeNotifier = Provider.of(context); precacheImage(AssetImage('assets/images/powerd-by.jpg'), context); return LayoutBuilder( @@ -82,6 +83,9 @@ class _MyApp extends State { ], child: Consumer( builder: (context, projectProvider, child) => MaterialApp( + navigatorObservers: [ + GAnalytics.shared.navObserver() + ], showSemanticsDebugger: false, title: 'Diplomatic Quarter App', locale: projectProvider.appLocal, diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index c55b685b..405bac25 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:diplomaticquarterapp/analytics/google-analytics.dart'; import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/model/geofencing/requests/GeoZonesRequestModel.dart'; @@ -31,9 +32,11 @@ import 'package:diplomaticquarterapp/widgets/buttons/floatingActionButton.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; import 'package:diplomaticquarterapp/widgets/drawer/app_drawer_widget.dart'; +import 'package:firebase_analytics/observer.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:provider/provider.dart'; @@ -95,6 +98,8 @@ class _LandingPageState extends State with WidgetsBindingObserver { }); } + + @override void didChangeAppLifecycleState(AppLifecycleState state) { super.didChangeAppLifecycleState(state); @@ -188,6 +193,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { // if (results[Permission.calendar].isGranted) ; }); requestPermissions(); + // }); // // //_firebase Background message handler diff --git a/lib/splashPage.dart b/lib/splashPage.dart index ef5db7f5..f75680ef 100644 --- a/lib/splashPage.dart +++ b/lib/splashPage.dart @@ -3,9 +3,12 @@ import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; +import 'package:firebase_analytics/observer.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; +import 'analytics/google-analytics.dart'; import 'config/shared_pref_kay.dart'; import 'config/size_config.dart'; import 'core/service/AuthenticatedUserObject.dart'; diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index 67e5c6b9..2d03137d 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -616,6 +616,25 @@ openAppStore({String androidPackageName, String iOSAppID}) async{ launch("https://itunes.apple.com/kr/app/apple-store/$iOSAppID)"); } } + +String labelFrom({@required String className}){ + RegExp exp = RegExp(r'(?<=[a-z])[A-Z]'); + + String result = className.replaceAllMapped(exp, (m) { + var str = m.group(0); + if(str != null){ + return ('_' + str); + } + return ""; + }); + + if(result.isEmpty) + return className; + + result = result.replaceAll("_", " "); + return result; +} + /* userBoard.asMap().map((i, element) => MapEntry(i, Stack( GestureDetector(onTap: () { diff --git a/pubspec.yaml b/pubspec.yaml index c109bd0a..55694840 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -52,6 +52,7 @@ dependencies: shared_preferences: ^0.5.8 flutter_flexible_toast: ^0.1.4 firebase_messaging: ^7.0.3 + firebase_analytics: ^6.3.0 cloud_firestore: ^0.14.3 android_intent: ^0.3.7+7 # Progress bar From 2fda47baf6ea2a63baaa2d2c387e9c9a76c7afed Mon Sep 17 00:00:00 2001 From: "Mirza.Shafique" Date: Sun, 1 Aug 2021 15:04:06 +0300 Subject: [PATCH 43/59] Medical Profile Buttons Lock --- lib/config/localized_values.dart | 1 + .../ActiveMedicationsPage.dart | 24 +- lib/uitl/utils.dart | 553 +++++++++--------- .../LabResult/laboratory_result_widget.dart | 2 +- .../medical/medical_profile_item.dart | 76 ++- 5 files changed, 336 insertions(+), 320 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 96820fb1..ae840303 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1089,6 +1089,7 @@ const Map localizedValues = { }, "MoreDetails": {"en": "More details", "ar": " المزيد من التفاصيل "}, "SendCopy": {"en": "Send Copy", "ar": "ارسال نسخة"}, + "ResendOrder": {"en": "Resend order & deliver", "ar": "إعادة طلب و توصيل"}, "Ports": {"en": "Ports", "ar": "المنافذ"}, "Way": {"en": "Way", "ar": "الطزيقة"}, diff --git a/lib/pages/medical/active_medications/ActiveMedicationsPage.dart b/lib/pages/medical/active_medications/ActiveMedicationsPage.dart index 5bc9618d..a6fc5fef 100644 --- a/lib/pages/medical/active_medications/ActiveMedicationsPage.dart +++ b/lib/pages/medical/active_medications/ActiveMedicationsPage.dart @@ -49,7 +49,8 @@ class ActiveMedicationsPage extends StatelessWidget { height: 5, ), Texts( - TranslationBase.of(context).expDate+' :' + + TranslationBase.of(context).expDate + + ' :' + DateUtil.getDayMonthYearDateFormatted(model .activePrescriptionReport[index].orderDate), ), @@ -57,21 +58,24 @@ class ActiveMedicationsPage extends StatelessWidget { height: 5, ), Texts( - TranslationBase.of(context).route+ ' :' + + TranslationBase.of(context).route + + ' :' + model.activePrescriptionReport[index].route, ), SizedBox( height: 5, ), Texts( - TranslationBase.of(context).frequency+ ' :' + + TranslationBase.of(context).frequency + + ' :' + model.activePrescriptionReport[index].frequency, ), SizedBox( height: 5, ), Texts( - TranslationBase.of(context).dailyQuantity + ' :${model.activePrescriptionReport[index].doseDailyQuantity}', + TranslationBase.of(context).dailyQuantity + + ' :${model.activePrescriptionReport[index].doseDailyQuantity}', ), ], ), @@ -86,16 +90,20 @@ class ActiveMedicationsPage extends StatelessWidget { color: Colors.red, size: 28, ), - SizedBox(height: 25,), + SizedBox( + height: 25, + ), InkWell( - onTap: (){ + onTap: () { Navigator.push( context, FadePage( page: ReminderPage( - frequency: model.activePrescriptionReport[index] + frequency: model + .activePrescriptionReport[index] .frequencyNumber, - days: model.activePrescriptionReport[index].days, + days: model + .activePrescriptionReport[index].days, itemDescription: model .activePrescriptionReport[index] .itemDescription, diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index 67e5c6b9..e081d5db 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -209,49 +209,44 @@ class Utils { bool isLogin, count}) { List medical = List(); - if (projectViewModel.havePrivilege(5)) { - medical.add(InkWell( - onTap: () { - Navigator.push( - context, - FadePage( - page: MyAppointments(), - ), - ); - }, - child: isLogin - ? Stack(children: [ - MedicalProfileItem( + + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(5) + ? Navigator.push(context, FadePage(page: MyAppointments())) + : null, + child: isLogin + ? Stack(children: [ + MedicalProfileItem( title: TranslationBase.of(context).myAppointments, imagePath: 'my_appointment_icon.png', subTitle: TranslationBase.of(context).myAppointmentsList, hasBadge: true, - ), - Positioned( - right: 0.0, - child: Badge( - toAnimate: false, - position: BadgePosition.topEnd(), - shape: BadgeShape.circle, - badgeColor: secondaryColor.withOpacity(1.0), - borderRadius: BorderRadius.circular(8), - badgeContent: Container( - padding: EdgeInsets.all(2.0), - child: Text(count.toString(), - style: - TextStyle(color: Colors.white, fontSize: 16.0)), - ), + isEnable: projectViewModel.havePrivilege(5)), + Positioned( + right: 0.0, + child: Badge( + toAnimate: false, + position: BadgePosition.topEnd(), + shape: BadgeShape.circle, + badgeColor: secondaryColor.withOpacity(1.0), + borderRadius: BorderRadius.circular(8), + badgeContent: Container( + padding: EdgeInsets.all(2.0), + child: Text(count.toString(), + style: TextStyle(color: Colors.white, fontSize: 16.0)), ), ), - ]) - : MedicalProfileItem( - title: TranslationBase.of(context).myAppointments, - imagePath: 'my_appointment_icon.png', - subTitle: TranslationBase.of(context).myAppointmentsList, - hasBadge: true, ), - )); - } + ]) + : MedicalProfileItem( + title: TranslationBase.of(context).myAppointments, + imagePath: 'my_appointment_icon.png', + subTitle: TranslationBase.of(context).myAppointmentsList, + hasBadge: true, + isEnable: projectViewModel.havePrivilege(5), + ), + )); + if (projectViewModel.havePrivilege(10)) { medical.add(InkWell( onTap: () => Navigator.push(context, FadePage(page: LabsHomePage())), @@ -263,106 +258,97 @@ class Utils { )); } - if (projectViewModel.havePrivilege(7)) { - medical.add(InkWell( - onTap: () => - Navigator.push(context, FadePage(page: RadiologyHomePage())), - child: MedicalProfileItem( - title: TranslationBase.of(context).radiology, - imagePath: 'radiology_icon.png', - subTitle: TranslationBase.of(context).radiologySubtitle, - ), - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(7) + ? Navigator.push(context, FadePage(page: RadiologyHomePage())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).radiology, + imagePath: 'radiology_icon.png', + subTitle: TranslationBase.of(context).radiologySubtitle, + isEnable: projectViewModel.havePrivilege(7), + ), + )); - if (projectViewModel.havePrivilege(12)) { - medical.add(InkWell( - onTap: () { - Navigator.push( - context, - FadePage( - page: HomePrescriptionsPage(), - ), - ); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).medicines, - imagePath: 'prescription_icon.png', - subTitle: TranslationBase.of(context).medicinesSubtitle, - ), - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(12) + ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).medicines, + imagePath: 'prescription_icon.png', + subTitle: TranslationBase.of(context).medicinesSubtitle, + isEnable: projectViewModel.havePrivilege(12), + ), + )); - if (projectViewModel.havePrivilege(25)) { - medical.add(InkWell( - onTap: () => Navigator.push( - context, - FadePage( - page: VitalSignDetailsScreen(), - ), - ), - child: MedicalProfileItem( - title: TranslationBase.of(context).vitalSigns, - imagePath: 'vital_signs.png', - subTitle: TranslationBase.of(context).vitalSignsSubtitle, - ), - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(25) + ? Navigator.push( + context, + FadePage(page: VitalSignDetailsScreen()), + ) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).vitalSigns, + imagePath: 'vital_signs.png', + subTitle: TranslationBase.of(context).vitalSignsSubtitle, + isEnable: projectViewModel.havePrivilege(25), + ), + )); - if (projectViewModel.havePrivilege(48)) { - medical.add(InkWell( - onTap: () => - Navigator.push(context, FadePage(page: ActiveMedicationsPage())), - child: MedicalProfileItem( - title: TranslationBase.of(context).myMedical, - imagePath: 'active_medications.png', - subTitle: TranslationBase.of(context).myMedicalSubtitle, - ), - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(48) + ? Navigator.push(context, FadePage(page: ActiveMedicationsPage())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).myMedical, + imagePath: 'active_medications.png', + subTitle: TranslationBase.of(context).myMedicalSubtitle, + isEnable: false, + ), + )); - if (projectViewModel.havePrivilege(6)) { - medical.add(InkWell( - onTap: () { - Navigator.push( - context, - FadePage( - page: DoctorHomePage(), - ), - ); - }, - child: MedicalProfileItem( + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(6) + ? Navigator.push( + context, + FadePage( + page: DoctorHomePage(), + ), + ) + : null, + child: MedicalProfileItem( title: TranslationBase.of(context).myDoctor, imagePath: 'doctor_icon.png', subTitle: TranslationBase.of(context).myDoctorSubtitle, - ), - )); - } + isEnable: projectViewModel.havePrivilege(6)), + )); + + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(14) + ? Navigator.push(context, FadePage(page: EyeMeasurementsPage())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).eye, + imagePath: 'eye_measurement_icon.png', + subTitle: TranslationBase.of(context).eyeSubtitle, + isEnable: projectViewModel.havePrivilege(14), + ), + )); + + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(22) + ? Navigator.push(context, FadePage(page: InsuranceCard())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).insurance, + imagePath: 'insurance_card_icon.png', + subTitle: TranslationBase.of(context).insuranceSubtitle, + isEnable: projectViewModel.havePrivilege(22), + ), + )); - if (projectViewModel.havePrivilege(14)) { - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: EyeMeasurementsPage())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).eye, - imagePath: 'eye_measurement_icon.png', - subTitle: TranslationBase.of(context).eyeSubtitle, - ), - )); - } - if (projectViewModel.havePrivilege(22)) { - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: InsuranceCard())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).insurance, - imagePath: 'insurance_card_icon.png', - subTitle: TranslationBase.of(context).insuranceSubtitle, - ), - )); - } medical.add(InkWell( onTap: () { Navigator.push(context, FadePage(page: InsuranceUpdate())); @@ -374,137 +360,132 @@ class Utils { ), )); - if (projectViewModel.havePrivilege(18)) { - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: InsuranceApproval())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).insuranceApproval, - imagePath: 'insurance_approvals_icon.png', - subTitle: TranslationBase.of(context).insuranceApprovalSubtitle, - ), - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(18) + ? Navigator.push(context, FadePage(page: InsuranceApproval())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).insuranceApproval, + imagePath: 'insurance_approvals_icon.png', + subTitle: TranslationBase.of(context).insuranceApprovalSubtitle, + isEnable: projectViewModel.havePrivilege(18), + ), + )); - if (projectViewModel.havePrivilege(23)) { - medical.add(InkWell( - onTap: () => Navigator.push(context, FadePage(page: AllergiesPage())), - child: MedicalProfileItem( - title: TranslationBase.of(context).allergies, - imagePath: 'my_allergies_icon.png', - subTitle: TranslationBase.of(context).allergiesSubtitle, - ), - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(23) + ? Navigator.push(context, FadePage(page: AllergiesPage())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).allergies, + imagePath: 'my_allergies_icon.png', + subTitle: TranslationBase.of(context).allergiesSubtitle, + isEnable: projectViewModel.havePrivilege(23), + ), + )); - if (projectViewModel.havePrivilege(26)) { - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: MyVaccines())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).myVaccines, - imagePath: 'my_vaccines_icon.png', - subTitle: TranslationBase.of(context).myVaccinesSubtitle, - ), - )); - } - if (projectViewModel.havePrivilege(20)) - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: HomeReportPage())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).medical, - imagePath: 'medical_reports_icon.png', - subTitle: TranslationBase.of(context).medicalSubtitle, - ), - )); + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(26) + ? Navigator.push(context, FadePage(page: MyVaccines())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).myVaccines, + imagePath: 'my_vaccines_icon.png', + subTitle: TranslationBase.of(context).myVaccinesSubtitle, + isEnable: projectViewModel.havePrivilege(26), + ), + )); - if (projectViewModel.havePrivilege(19)) { - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: MonthlyReportsPage())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).monthly, - imagePath: 'monthly_reports_icon.png', - subTitle: TranslationBase.of(context).monthlySubtitle, - ), - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(20) + ? Navigator.push(context, FadePage(page: HomeReportPage())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).medical, + imagePath: 'medical_reports_icon.png', + subTitle: TranslationBase.of(context).medicalSubtitle, + isEnable: projectViewModel.havePrivilege(20), + ), + )); - if (projectViewModel.havePrivilege(16)) { - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: PatientSickLeavePage())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).sick, - imagePath: 'sick_leaves_icons.png', - subTitle: TranslationBase.of(context).sickSubtitle, - ), - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(19) + ? Navigator.push(context, FadePage(page: MonthlyReportsPage())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).monthly, + imagePath: 'monthly_reports_icon.png', + subTitle: TranslationBase.of(context).monthlySubtitle, + isEnable: projectViewModel.havePrivilege(19), + ), + )); - if (projectViewModel.havePrivilege(47)) { - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: MyBalancePage())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).myBalance, - imagePath: 'check-in.png', - subTitle: TranslationBase.of(context).myBalanceSubtitle, - ), - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(16) + ? Navigator.push(context, FadePage(page: PatientSickLeavePage())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).sick, + imagePath: 'sick_leaves_icons.png', + subTitle: TranslationBase.of(context).sickSubtitle, + isEnable: projectViewModel.havePrivilege(16), + ), + )); - if (projectViewModel.havePrivilege(61)) { - medical.add(MedicalProfileItem( - title: TranslationBase.of(context).patientCall, - imagePath: 'medical_history_icon.png', - subTitle: TranslationBase.of(context).patientCallSubtitle, - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(47) + ? Navigator.push(context, FadePage(page: MyBalancePage())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).myBalance, + imagePath: 'check-in.png', + subTitle: TranslationBase.of(context).myBalanceSubtitle, + isEnable: projectViewModel.havePrivilege(47), + ), + )); - if (projectViewModel.havePrivilege(24)) { - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: MyTrackers())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).myTrackers, - imagePath: 'my_tracker_icon.png', - subTitle: TranslationBase.of(context).myTrackersSubtitle, - ), - )); - } - if (projectViewModel.havePrivilege(30)) - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: SmartWatchInstructions())); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).smartWatches, - imagePath: 'smartwatch_icon.png', - subTitle: TranslationBase.of(context).smartWatchesSubtitle, - ), - )); + medical.add(MedicalProfileItem( + title: TranslationBase.of(context).patientCall, + imagePath: 'medical_history_icon.png', + subTitle: TranslationBase.of(context).patientCallSubtitle, + isEnable: projectViewModel.havePrivilege(61), + )); - if (projectViewModel.havePrivilege(28)) { - medical.add(InkWell( - onTap: () { - Navigator.push(context, FadePage(page: AskDoctorHomPage())); - }, - child: MedicalProfileItem( + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(24) + ? Navigator.push(context, FadePage(page: MyTrackers())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).myTrackers, + imagePath: 'my_tracker_icon.png', + subTitle: TranslationBase.of(context).myTrackersSubtitle, + isEnable: projectViewModel.havePrivilege(24), + ), + )); + + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(30) + ? Navigator.push(context, FadePage(page: SmartWatchInstructions())) + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).smartWatches, + imagePath: 'smartwatch_icon.png', + subTitle: TranslationBase.of(context).smartWatchesSubtitle, + isEnable: projectViewModel.havePrivilege(30), + ), + )); + + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(28) + ? Navigator.push(context, FadePage(page: AskDoctorHomPage())) + : null, + child: MedicalProfileItem( title: TranslationBase.of(context).askYour, imagePath: 'ask_doctor_icon.png', subTitle: TranslationBase.of(context).askYourSubtitle, - ), - )); - } + isEnable: projectViewModel.havePrivilege(28)), + )); + if (projectViewModel.havePrivilege(32) || true) { medical.add(InkWell( onTap: () { @@ -536,43 +517,46 @@ class Utils { )); } - if (projectViewModel.havePrivilege(40)) { - medical.add(InkWell( - onTap: () { - launch('whatsapp://send?phone=18885521858&text='); - }, - child: MedicalProfileItem( - title: TranslationBase.of(context).chatbot, - imagePath: 'insurance_approvals_icon.png', - subTitle: TranslationBase.of(context).chatbotSubtitle, - ), - )); - } + medical.add(InkWell( + onTap: () => projectViewModel.havePrivilege(40) + ? launch('whatsapp://send?phone=18885521858&text=') + : null, + child: MedicalProfileItem( + title: TranslationBase.of(context).chatbot, + imagePath: 'insurance_approvals_icon.png', + subTitle: TranslationBase.of(context).chatbotSubtitle, + isEnable: projectViewModel.havePrivilege(40), + ), + )); return medical; } - static Widget loadNetworkImage({@required String url, BoxFit fitting = BoxFit.cover}){ + static Widget loadNetworkImage( + {@required String url, BoxFit fitting = BoxFit.cover}) { return CachedNetworkImage( - placeholderFadeInDuration: Duration(milliseconds: 250), - fit: fitting, - imageUrl: url, - placeholder: (context, url) => Container( - child: Center( - child: CircularProgressIndicator() - ) - ), - errorWidget: (context, url, error){ - return Icon(Icons.error, color: Colors.red, size: 50,); - } - ); + placeholderFadeInDuration: Duration(milliseconds: 250), + fit: fitting, + imageUrl: url, + placeholder: (context, url) => + Container(child: Center(child: CircularProgressIndicator())), + errorWidget: (context, url, error) { + return Icon( + Icons.error, + color: Colors.red, + size: 50, + ); + }); } } - - - -Widget applyShadow({ Color color = Colors.grey, double shadowOpacity = 0.5, double spreadRadius = 2, double blurRadius = 7, Offset offset = const Offset(2, 2), @required Widget child}){ +Widget applyShadow( + {Color color = Colors.grey, + double shadowOpacity = 0.5, + double spreadRadius = 2, + double blurRadius = 7, + Offset offset = const Offset(2, 2), + @required Widget child}) { return Container( decoration: BoxDecoration( boxShadow: [ @@ -588,7 +572,6 @@ Widget applyShadow({ Color color = Colors.grey, double shadowOpacity = 0.5, doub ); } - Future userData() async { var userData = AuthenticatedUser.fromJson( await AppSharedPreferences().getObject(MAIN_USER)); @@ -603,15 +586,15 @@ extension IndexedIterable on Iterable { } } -openAppStore({String androidPackageName, String iOSAppID}) async{ - if(Platform.isAndroid){ - assert(!(androidPackageName == null), "Should have valid value in androidPackageName parameter"); - if((await FlutterHmsGmsAvailability.isGmsAvailable)) +openAppStore({String androidPackageName, String iOSAppID}) 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)) + if ((await FlutterHmsGmsAvailability.isHmsAvailable)) launch("appmarket://details?id=com.ejada.hmg"); - - }else if(Platform.isIOS){ + } 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/data_display/medical/LabResult/laboratory_result_widget.dart b/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart index 09306441..7b49559c 100644 --- a/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart +++ b/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart @@ -103,7 +103,7 @@ class _LaboratoryResultWidgetState extends State { color: Colors.white, ), Texts( - TranslationBase.of(context).sendCopy, + TranslationBase.of(context).sendEmail, color: Colors.white, ) ], diff --git a/lib/widgets/data_display/medical/medical_profile_item.dart b/lib/widgets/data_display/medical/medical_profile_item.dart index c7e47dd9..bbc92db1 100644 --- a/lib/widgets/data_display/medical/medical_profile_item.dart +++ b/lib/widgets/data_display/medical/medical_profile_item.dart @@ -8,16 +8,19 @@ import '../../../Constants.dart'; import '../text.dart'; class MedicalProfileItem extends StatelessWidget { - MedicalProfileItem( - {@required this.imagePath, - @required this.title, - @required this.subTitle, - hasBadge}); - final String imagePath; final String title; final String subTitle; final bool hasBadge = false; + bool isEnable; + + MedicalProfileItem({ + @required this.imagePath, + @required this.title, + @required this.subTitle, + hasBadge, + this.isEnable = true, + }); @override Widget build(BuildContext context) { @@ -26,27 +29,48 @@ class MedicalProfileItem extends StatelessWidget { height: MediaQuery.of(context).size.height * 0.14, margin: EdgeInsets.all(5), decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white - ), - padding: EdgeInsets.all(10), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Texts(title, - fontSize: 1.5 * SizeConfig.textMultiplier, - color: secondaryColor, - fontWeight: FontWeight.bold), - Texts(subTitle,fontSize: 1.4 * SizeConfig.textMultiplier,), - Align( - alignment:projectViewModel.isArabic ? Alignment.bottomLeft : Alignment.bottomRight, - child: Image.asset( - "assets/images/medical/$imagePath", - height: SizeConfig.heightMultiplier * 5, - width: SizeConfig.heightMultiplier * 5, + borderRadius: BorderRadius.circular(10), color: Colors.white), + clipBehavior: Clip.antiAlias, + child: Stack( + children: [ + Padding( + padding: EdgeInsets.all(10), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Texts(title, + fontSize: 1.5 * SizeConfig.textMultiplier, + color: secondaryColor, + fontWeight: FontWeight.bold), + Texts( + subTitle, + fontSize: 1.4 * SizeConfig.textMultiplier, + ), + Align( + alignment: projectViewModel.isArabic + ? Alignment.bottomLeft + : Alignment.bottomRight, + child: Image.asset( + "assets/images/medical/$imagePath", + height: SizeConfig.heightMultiplier * 5, + width: SizeConfig.heightMultiplier * 5, + ), + ) + ], ), - ) + ), + isEnable + ? Container() + : Container( + width: double.infinity, + height: double.infinity, + color: Colors.grey.withOpacity(0.7), + child: Icon( + Icons.lock_outline, + size: 40, + ), + ) ], ), ); From f830bfdb19d4e215016b9994023f04ca1fbe39fa Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Mon, 2 Aug 2021 10:22:26 +0300 Subject: [PATCH 44/59] PAP-722 : fix send email --- lib/core/service/medical/BloodPressureService.dart | 2 +- lib/core/service/medical/BloodSugarService.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/core/service/medical/BloodPressureService.dart b/lib/core/service/medical/BloodPressureService.dart index 82130750..7a849808 100644 --- a/lib/core/service/medical/BloodPressureService.dart +++ b/lib/core/service/medical/BloodPressureService.dart @@ -73,7 +73,7 @@ class BloodPressureService extends BaseService { super.error = ""; Map body = Map(); body['isDentalAllowedBackend'] = false; - body['to'] = user.emailAddress; + body['To'] = user.emailAddress; await baseAppClient.post(SEND_AVERAGE_BLOOD_PRESSURE_REPORT, onSuccess: (response, statusCode) async {}, onFailure: (String error, int statusCode) { diff --git a/lib/core/service/medical/BloodSugarService.dart b/lib/core/service/medical/BloodSugarService.dart index e8e2fabf..4de444ea 100644 --- a/lib/core/service/medical/BloodSugarService.dart +++ b/lib/core/service/medical/BloodSugarService.dart @@ -114,7 +114,7 @@ class BloodSugarService extends BaseService { super.error = ""; Map body = Map(); body['isDentalAllowedBackend'] = false; - body['to'] = user.emailAddress; + body['To'] = user.emailAddress; await baseAppClient.post(SEND_AVERAGE_BLOOD_SUGAR_REPORT, onSuccess: (response, statusCode) async {}, onFailure: (String error, int statusCode) { From f92567f877406eb600a9974acfafcb7d956c1f43 Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Mon, 2 Aug 2021 11:26:30 +0300 Subject: [PATCH 45/59] PAP-718 : fix show data after save --- .../blood_suger/AddBloodSugarPage.dart | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart b/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart index 6f186104..6d4755dc 100644 --- a/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart +++ b/lib/pages/medical/my_trackers/blood_suger/AddBloodSugarPage.dart @@ -282,11 +282,11 @@ class _AddBloodSugarPageState extends State { label: TranslationBase.of(context).save.toUpperCase(), textColor: Colors.white, color: isButtonDisabled ? Colors.grey[900] : Colors.grey, - onTap: () { + onTap: () async { if (_bloodSugarValueController.text.isNotEmpty) { if (widget.isUpdate) { GifLoaderDialogUtils.showMyDialog(context); - widget.bloodSugarViewMode + await widget.bloodSugarViewMode .updateDiabtecResult( month: bloodSugarDate, hour: timeSugarDate, @@ -294,8 +294,8 @@ class _AddBloodSugarPageState extends State { measuredTime: measuredTime, lineItemNo: widget.lineItemNo, bloodSugerResult: - _bloodSugarValueController.text.toString()) - .then((value) { + _bloodSugarValueController.text.toString()); + GifLoaderDialogUtils.hideDialog(context); if (widget.bloodSugarViewMode.state == ViewState.ErrorLocal) @@ -303,9 +303,10 @@ class _AddBloodSugarPageState extends State { message: widget.bloodSugarViewMode.error); else Navigator.pop(context); - }); - } else - widget.bloodSugarViewMode + + } else { + GifLoaderDialogUtils.showMyDialog(context); + await widget.bloodSugarViewMode .addDiabtecResult( diabtecUnit: measureUnitSelectedType, measuredTime: measuredTime, @@ -313,15 +314,17 @@ class _AddBloodSugarPageState extends State { _bloodSugarValueController.text.toString(), bloodSugerDateChart: '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', - ) - .then((value) { + ); + GifLoaderDialogUtils.hideDialog(context); if (widget.bloodSugarViewMode.state == ViewState.Error) AppToast.showErrorToast( message: widget.bloodSugarViewMode.error); else Navigator.pop(context); - }); + + } + } }), ), From f824063e8266b53b8bb48260f0eb22435ecc9b4d Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Mon, 2 Aug 2021 12:11:51 +0300 Subject: [PATCH 46/59] PAP-726 : fix show Arabic values for the select Arm --- .../my_trackers/blood_pressure/AddBloodPressurePage.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart index 8bd180fa..9bc6c9a8 100644 --- a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart +++ b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart @@ -151,7 +151,7 @@ class _AddBloodPressurePageState extends State { ), InkWell( onTap: () { - confirmSelectMeasureTimeDialog(projectViewModel.isArabic + confirmSelectMeasureTimeDialog(!projectViewModel.isArabic ? measureTimeEnList : measureTimeArList); }, From 52816a9cfefdd4a9ad6cd65371af1a1c7019313e Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Mon, 2 Aug 2021 14:03:28 +0300 Subject: [PATCH 47/59] PAP-723 : system should display the empty graph in the blood pressure screen. --- .../my_trackers/blood_pressure/BloodPressureMonthly.dart | 9 +++++---- .../my_trackers/blood_pressure/BloodPressureYeaPage.dart | 9 +++++---- .../blood_pressure/bloodPressureWeeklyPage.dart | 9 +++++---- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/pages/medical/my_trackers/blood_pressure/BloodPressureMonthly.dart b/lib/pages/medical/my_trackers/blood_pressure/BloodPressureMonthly.dart index 04853689..6d4f02d8 100644 --- a/lib/pages/medical/my_trackers/blood_pressure/BloodPressureMonthly.dart +++ b/lib/pages/medical/my_trackers/blood_pressure/BloodPressureMonthly.dart @@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; @@ -21,7 +22,7 @@ class BloodPressureMonthlyPage extends StatelessWidget { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( - body: model.weighMonthTimeSeriesDataTop.isEmpty? Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),):ListView( + body: ListView( children: [ Container( margin: EdgeInsets.only(top: 12, left: 8, right: 8), @@ -29,8 +30,8 @@ class BloodPressureMonthlyPage extends StatelessWidget { child: MonthCurvedChartBloodPressure( horizontalInterval: 20.0, title: TranslationBase.of(context).bloodPressure, - timeSeries1: model.weighMonthTimeSeriesDataTop, - timeSeries2: model.weighMonthTimeSeriesDataLow, + timeSeries1: model.weighMonthTimeSeriesDataTop.isEmpty?[TimeSeriesSales3(0,0.0)]:model.weighMonthTimeSeriesDataTop, + timeSeries2: model.weighMonthTimeSeriesDataLow.isEmpty?[TimeSeriesSales3(0,0.0)]:model.weighMonthTimeSeriesDataLow, indexes: model.weightWeekTimeSeriesDataLow.length ~/ 5.5, ), ), @@ -47,7 +48,7 @@ class BloodPressureMonthlyPage extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Table( + model.weighMonthTimeSeriesDataTop.isEmpty? Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),):Table( border: TableBorder.symmetric( inside: BorderSide(width: 2.0, color: Colors.grey[300]), ), diff --git a/lib/pages/medical/my_trackers/blood_pressure/BloodPressureYeaPage.dart b/lib/pages/medical/my_trackers/blood_pressure/BloodPressureYeaPage.dart index b5b01f06..68172354 100644 --- a/lib/pages/medical/my_trackers/blood_pressure/BloodPressureYeaPage.dart +++ b/lib/pages/medical/my_trackers/blood_pressure/BloodPressureYeaPage.dart @@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/CurvedChartBloodPressure.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; @@ -18,7 +19,7 @@ class BloodPressureYearPage extends StatelessWidget { Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( - body: model.weightYearTimeSeriesDataTop.isEmpty? Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),):ListView( + body:ListView( children: [ Container( margin: EdgeInsets.only(top: 12, left: 8, right: 8), @@ -26,8 +27,8 @@ class BloodPressureYearPage extends StatelessWidget { child: CurvedChartBloodPressure( horizontalInterval: 3.0,// model.weightWeekTimeSeriesDataLow.length==1 ?1 :20.0, title: TranslationBase.of(context).bloodPressure, - timeSeries1: model.weightYearTimeSeriesDataTop, - timeSeries2: model.weightYearTimeSeriesDataLow, + timeSeries1: model.weightYearTimeSeriesDataTop.isEmpty?[TimeSeriesSales2(DateTime.now(),0.0)]:model.weightYearTimeSeriesDataTop, + timeSeries2: model.weightYearTimeSeriesDataLow.isEmpty?[TimeSeriesSales2(DateTime.now(),0.0)]:model.weightYearTimeSeriesDataLow, indexes: model.weightWeekTimeSeriesDataLow.length ~/ 5.5, ), ), @@ -44,7 +45,7 @@ class BloodPressureYearPage extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Table( + model.weightYearTimeSeriesDataTop.isEmpty? Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),):Table( border: TableBorder.symmetric( inside: BorderSide(width: 2.0, color: Colors.grey[300]), ), diff --git a/lib/pages/medical/my_trackers/blood_pressure/bloodPressureWeeklyPage.dart b/lib/pages/medical/my_trackers/blood_pressure/bloodPressureWeeklyPage.dart index e4ff7332..1929d836 100644 --- a/lib/pages/medical/my_trackers/blood_pressure/bloodPressureWeeklyPage.dart +++ b/lib/pages/medical/my_trackers/blood_pressure/bloodPressureWeeklyPage.dart @@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/CurvedChartBloodPressure.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; @@ -21,7 +22,7 @@ class BloodPressureWeeklyPage extends StatelessWidget { Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( - body: model.weightWeekTimeSeriesDataTop.isEmpty? Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),): ListView( + body: ListView( children: [ Container( margin: EdgeInsets.only(top: 12, left: 8, right: 8), @@ -29,8 +30,8 @@ class BloodPressureWeeklyPage extends StatelessWidget { child: CurvedChartBloodPressure( horizontalInterval:3.0, title: TranslationBase.of(context).bloodPressure, - timeSeries1: model.weightWeekTimeSeriesDataTop, - timeSeries2: model.weightWeekTimeSeriesDataLow, + timeSeries1: model.weightWeekTimeSeriesDataTop.isEmpty?[TimeSeriesSales2(DateTime.now(),0.0)]:model.weightWeekTimeSeriesDataTop, + timeSeries2: model.weightWeekTimeSeriesDataLow.isEmpty?[TimeSeriesSales2(DateTime.now(),0.0)]:model.weightWeekTimeSeriesDataLow, indexes: model.weightWeekTimeSeriesDataLow.length ~/ 5.5, ), ), @@ -47,7 +48,7 @@ class BloodPressureWeeklyPage extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Table( + model.weightWeekTimeSeriesDataTop.isEmpty? Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),): Table( border: TableBorder.symmetric( inside: BorderSide(width: 2.0, color: Colors.grey[300]), ), From 86414b46fd0b8ca8ee477e2a452e0517b80e33c2 Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Mon, 2 Aug 2021 15:34:02 +0300 Subject: [PATCH 48/59] PAP-304 : show CBC details --- .../viewModels/medical/labs_view_model.dart | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/core/viewModels/medical/labs_view_model.dart b/lib/core/viewModels/medical/labs_view_model.dart index 4473c117..f75abe88 100644 --- a/lib/core/viewModels/medical/labs_view_model.dart +++ b/lib/core/viewModels/medical/labs_view_model.dart @@ -122,14 +122,17 @@ class LabsViewModel extends BaseViewModel { error = _labsService.error; setState(ViewState.Error); } else { - bool isShouldClear = false; - if (_labsService.labOrdersResultsList.length == 1) { - labOrdersResultsList.forEach((element) { - if (element.resultValue.contains('/') || element.resultValue.contains('*') || element.resultValue.isEmpty) - isShouldClear = true; - }); - } - if (isShouldClear) _labsService.labOrdersResultsList.clear(); + /// commented out based on PAP-304 + // bool isShouldClear = false; + // if (_labsService.labOrdersResultsList.length == 1) { + // labOrdersResultsList.forEach((element) { + // if (element.resultValue.contains('/') || element.resultValue.contains('*') || element.resultValue.isEmpty) + // isShouldClear = true; + // }); + // } + // if (isShouldClear) + // + // _labsService.labOrdersResultsList.clear(); setState(ViewState.Idle); } } From 5d05b0934588790f9abf2ac32568888b5f67c735 Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Tue, 3 Aug 2021 15:44:51 +0300 Subject: [PATCH 49/59] PAP-712 : fixes on Blood sugar --- .../my_trackers/blood_suger/BloodMonthly.dart | 64 +++++++++++++------ .../my_trackers/blood_suger/BloodYeaPage.dart | 26 ++++---- .../blood_suger/blood_sugar_home_page.dart | 5 +- .../blood_suger/blood_sugar_weekly_page.dart | 21 +++--- .../my_trackers/widget/LineChartCurved.dart | 21 ++++-- .../widget/MonthCurvedChartBloodPressure.dart | 12 ++-- lib/uitl/translations_delegate_base.dart | 1 + 7 files changed, 94 insertions(+), 56 deletions(-) diff --git a/lib/pages/medical/my_trackers/blood_suger/BloodMonthly.dart b/lib/pages/medical/my_trackers/blood_suger/BloodMonthly.dart index 1294c5dd..a0f37c83 100644 --- a/lib/pages/medical/my_trackers/blood_suger/BloodMonthly.dart +++ b/lib/pages/medical/my_trackers/blood_suger/BloodMonthly.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/core/model/my_trakers/blood_sugar/DiabtecPatientResult.dart'; import 'package:diplomaticquarterapp/core/model/my_trakers/chartData/WeekChartDate.dart'; import 'package:diplomaticquarterapp/core/model/my_trakers/chartData/YearMonthlyChartDate.dart'; +import 'package:diplomaticquarterapp/core/viewModels/medical/blood_sugar_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/LineChartCurved.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/MonthLineChartCurved.dart'; @@ -17,25 +18,32 @@ import 'package:provider/provider.dart'; class BloodMonthlyPage extends StatelessWidget { final List diabtecPatientResult; - final List timeSeriesData ; + final List timeSeriesData; + final BloodSugarViewMode bloodSugarViewMode; - const BloodMonthlyPage({Key key, this.diabtecPatientResult, this.timeSeriesData}) + + const BloodMonthlyPage( + {Key key, this.diabtecPatientResult, this.timeSeriesData, this.bloodSugarViewMode}) : super(key: key); + @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( - body: timeSeriesData.isEmpty?Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),): ListView( + baseViewModel: bloodSugarViewMode, + body: ListView( children: [ Container( + margin: EdgeInsets.only(top: 12, left: 8, right: 8), width: double.maxFinite, color: Colors.white, child: MonthLineChartCurved( - title: 'Sugar', - timeSeries: timeSeriesData, + title: '${TranslationBase.of(context).bloodSugar}', + timeSeries: timeSeriesData.isEmpty + ? [TimeSeriesSales3(0, 0.0)] + : timeSeriesData, indexes: timeSeriesData.length ~/ 5.5, - ) - ), + )), SizedBox( height: 12, ), @@ -49,12 +57,20 @@ class BloodMonthlyPage extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Table( - border: TableBorder.symmetric( - inside: BorderSide(width: 2.0, color: Colors.grey[300]), - ), - children: fullData(context,projectViewModel), - ), + timeSeriesData.isEmpty + ? Container( + child: Center( + child: Texts( + TranslationBase.of(context).noDataAvailable), + ), + ) + : Table( + border: TableBorder.symmetric( + inside: + BorderSide(width: 2.0, color: Colors.grey[300]), + ), + children: fullData(context, projectViewModel), + ), ], ), ) @@ -63,7 +79,8 @@ class BloodMonthlyPage extends StatelessWidget { ); } - List fullData(BuildContext context,ProjectViewModel projectViewModel) { + List fullData( + BuildContext context, ProjectViewModel projectViewModel) { List tableRow = []; tableRow.add( TableRow( @@ -73,8 +90,12 @@ class BloodMonthlyPage extends StatelessWidget { decoration: BoxDecoration( color: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic? Radius.circular(0.0):Radius.circular(10.0), - topRight: projectViewModel.isArabic? Radius.circular(10.0):Radius.circular(0.0), + topLeft: projectViewModel.isArabic + ? Radius.circular(0.0) + : Radius.circular(10.0), + topRight: projectViewModel.isArabic + ? Radius.circular(10.0) + : Radius.circular(0.0), ), ), child: Center( @@ -120,8 +141,12 @@ class BloodMonthlyPage extends StatelessWidget { decoration: BoxDecoration( color: Theme.of(context).primaryColor, borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic? Radius.circular(10.0):Radius.circular(0.0), - topRight: projectViewModel.isArabic? Radius.circular(0.0):Radius.circular(10.0), + topLeft: projectViewModel.isArabic + ? Radius.circular(10.0) + : Radius.circular(0.0), + topRight: projectViewModel.isArabic + ? Radius.circular(0.0) + : Radius.circular(10.0), ), ), child: Center( @@ -133,7 +158,6 @@ class BloodMonthlyPage extends StatelessWidget { ), height: 40), ), - ], ), ); @@ -149,7 +173,7 @@ class BloodMonthlyPage extends StatelessWidget { color: Colors.white, child: Center( child: Texts( - '${projectViewModel.isArabic ? DateUtil.getMonthDayYearDateFormattedAr(diabtec.dateChart):DateUtil.getMonthDayYearDateFormatted(diabtec.dateChart)} ', + '${projectViewModel.isArabic ? DateUtil.getMonthDayYearDateFormattedAr(diabtec.dateChart) : DateUtil.getMonthDayYearDateFormatted(diabtec.dateChart)} ', textAlign: TextAlign.center, fontSize: 12, ), diff --git a/lib/pages/medical/my_trackers/blood_suger/BloodYeaPage.dart b/lib/pages/medical/my_trackers/blood_suger/BloodYeaPage.dart index 2f654526..a11b3b14 100644 --- a/lib/pages/medical/my_trackers/blood_suger/BloodYeaPage.dart +++ b/lib/pages/medical/my_trackers/blood_suger/BloodYeaPage.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/core/model/my_trakers/blood_sugar/DiabtecPatientResult.dart'; import 'package:diplomaticquarterapp/core/model/my_trakers/chartData/WeekChartDate.dart'; +import 'package:diplomaticquarterapp/core/viewModels/medical/blood_sugar_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/LineChartCurved.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; @@ -16,27 +17,24 @@ import 'package:provider/provider.dart'; class BloodYearPage extends StatelessWidget { final List diabtecPatientResult; final List timeSeriesData; + final BloodSugarViewMode bloodSugarViewMode; - const BloodYearPage({Key key, this.diabtecPatientResult, this.timeSeriesData}) : super(key: key); + const BloodYearPage({Key key, this.diabtecPatientResult, this.timeSeriesData, this.bloodSugarViewMode}) : super(key: key); @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( - body: timeSeriesData.isEmpty - ? Container( - child: Center( - child: Texts(TranslationBase.of(context).noDataAvailable), - ), - ) - : ListView( + baseViewModel: bloodSugarViewMode, + body: ListView( children: [ Container( + margin: EdgeInsets.only(top: 12, left: 8, right: 8), width: double.maxFinite, color: Colors.white, child: LineChartCurved( - title: 'Sugar', - timeSeries: timeSeriesData, + title: '${TranslationBase.of(context).bloodSugar}', + timeSeries: timeSeriesData.isEmpty?[TimeSeriesSales2(DateTime.now(),0.0)]:timeSeriesData, indexes: timeSeriesData.length ~/ 5.5 ?? 0, )), SizedBox( @@ -52,7 +50,13 @@ class BloodYearPage extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Table( + timeSeriesData.isEmpty + ? Container( + child: Center( + child: Texts(TranslationBase.of(context).noDataAvailable), + ), + ) + :Table( border: TableBorder.symmetric( inside: BorderSide(width: 2.0, color: Colors.grey[300]), ), diff --git a/lib/pages/medical/my_trackers/blood_suger/blood_sugar_home_page.dart b/lib/pages/medical/my_trackers/blood_suger/blood_sugar_home_page.dart index 7abbcceb..29989e53 100644 --- a/lib/pages/medical/my_trackers/blood_suger/blood_sugar_home_page.dart +++ b/lib/pages/medical/my_trackers/blood_suger/blood_sugar_home_page.dart @@ -75,7 +75,7 @@ class _BloodSugarHomePageState extends State ),], isShowAppBar: true, appBarTitle: TranslationBase.of(context).bloodSugar, - baseViewModel: model, + // baseViewModel: model, body: Scaffold( extendBodyBehindAppBar: true, appBar: TabBarWidget(tabController: _tabController,), @@ -93,11 +93,12 @@ class _BloodSugarHomePageState extends State ), BloodMonthlyPage( timeSeriesData: model.monthTimeSeriesData, - diabtecPatientResult: model.monthDiabtecPatientResult, + diabtecPatientResult: model.monthDiabtecPatientResult, bloodSugarViewMode: model, ), BloodYearPage( timeSeriesData: model.yearTimeSeriesData, diabtecPatientResult: model.yearDiabtecPatientResult, + bloodSugarViewMode: model, ) ], ), diff --git a/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart b/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart index 328ac246..6e1ff71b 100644 --- a/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart +++ b/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart @@ -31,20 +31,15 @@ class BloodSugarWeeklyPage extends StatelessWidget { Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return AppScaffold( - body: timeSeriesData.isEmpty - ? Container( - child: Center( - child: Texts(TranslationBase.of(context).noDataAvailable), - ), - ) - : ListView( + baseViewModel: bloodSugarViewMode, + body: ListView( children: [ Container( margin: EdgeInsets.only(top: 12, left: 8, right: 8), color: Colors.white, child: LineChartCurved( - title: 'Sugar', - timeSeries: timeSeriesData, + title: '${TranslationBase.of(context).bloodSugar}', + timeSeries: timeSeriesData.isEmpty?[TimeSeriesSales2(DateTime.now(),0.0)]:timeSeriesData, indexes: timeSeriesData.length ~/ 5.5, ), ), @@ -61,7 +56,13 @@ class BloodSugarWeeklyPage extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Table( + timeSeriesData.isEmpty + ? Container( + child: Center( + child: Texts(TranslationBase.of(context).noDataAvailable), + ), + ) + :Table( border: TableBorder.symmetric( inside: BorderSide(width: 2.0, color: Colors.grey[300]), ), diff --git a/lib/pages/medical/my_trackers/widget/LineChartCurved.dart b/lib/pages/medical/my_trackers/widget/LineChartCurved.dart index 70f10407..3cf5c94f 100644 --- a/lib/pages/medical/my_trackers/widget/LineChartCurved.dart +++ b/lib/pages/medical/my_trackers/widget/LineChartCurved.dart @@ -24,7 +24,7 @@ class LineChartCurved extends StatelessWidget { getXaxix(); getYaxix(); return AspectRatio( - aspectRatio: 1.1, + aspectRatio: 1.0, child: Container( decoration: const BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(18)), @@ -137,12 +137,19 @@ class LineChartCurved extends StatelessWidget { fontSize: 10, ), getTitles: (value) { - if (value.toInt() == 0) - return '${value.toInt()}'; - else if (value.toInt() % horizontalInterval == 0) - return '${value.toInt()}'; - else - return ''; + // if (value.toInt() == 0) + // return '${value.toInt()}'; + // else if (value.toInt() % horizontalInterval == 0) + // return '${value.toInt()}'; + // else + // return ''; + + // if (value.toInt() == 0) + // return '${value.toInt()}'; + // else if (value.toInt() % horizontalInterval == 0) + // return '${value.toInt()}'; + // else + return '${value.toInt()}';//'${(value.toInt() +(horizontalInterval - value.toInt() % horizontalInterval) )}'; }, margin: 12, ), diff --git a/lib/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart b/lib/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart index 135d0a95..dd432d3b 100644 --- a/lib/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart +++ b/lib/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart @@ -21,7 +21,7 @@ class MonthCurvedChartBloodPressure extends StatelessWidget { Widget build(BuildContext context) { getXaxix(); return AspectRatio( - aspectRatio: 1.1, + aspectRatio: 1.0, child: Container( decoration: const BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(18)), @@ -143,12 +143,12 @@ class MonthCurvedChartBloodPressure extends StatelessWidget { fontSize: 10, ), getTitles: (value) { - if (value.toInt() == 0) + // if (value.toInt() == 0) + // return '${value.toInt()}'; + // else if (value.toInt() % horizontalInterval == 0) + // return '${value.toInt()}'; + // else return '${value.toInt()}'; - else if (value.toInt() % horizontalInterval == 0) - return '${value.toInt()}'; - else - return ''; }, margin: 12, ), diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 4677302e..c3875466 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -1644,6 +1644,7 @@ class TranslationBase { localizedValues["upcoming-pay-options"][locale.languageCode]; String get pleaseAcceptTerms => localizedValues["please-accept-terms"][locale.languageCode]; + } class TranslationBaseDelegate extends LocalizationsDelegate { From 2e33c2b2404a6ffd1caa0f722013e2108f813135 Mon Sep 17 00:00:00 2001 From: mosazaid Date: Tue, 3 Aug 2021 16:56:38 +0300 Subject: [PATCH 50/59] fix bugs --- .../health_calculator/bmi.png | Bin 0 -> 4507 bytes .../health_calculator/bmr.png | Bin 0 -> 5639 bytes .../health_calculator/body-fat.png | Bin 0 -> 21021 bytes .../bmi_calculator/bmi_calculator.dart | 71 +++++++++++++----- .../health_calculator/health_calc_desc.dart | 40 ++++++++++ lib/pages/landing/landing_page.dart | 2 +- lib/uitl/utils.dart | 1 + .../bottom_navigation/bottom_nav_bar.dart | 20 +++-- pubspec.yaml | 1 + 9 files changed, 111 insertions(+), 24 deletions(-) create mode 100644 assets/images/AlHabibMedicalService/health_calculator/bmi.png create mode 100644 assets/images/AlHabibMedicalService/health_calculator/bmr.png create mode 100644 assets/images/AlHabibMedicalService/health_calculator/body-fat.png create mode 100644 lib/pages/AlHabibMedicalService/health_calculator/health_calc_desc.dart diff --git a/assets/images/AlHabibMedicalService/health_calculator/bmi.png b/assets/images/AlHabibMedicalService/health_calculator/bmi.png new file mode 100644 index 0000000000000000000000000000000000000000..6df6c9f98561949394f3489f8bd2d9ee5c8a94bd GIT binary patch literal 4507 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 literal 0 HcmV?d00001 diff --git a/assets/images/AlHabibMedicalService/health_calculator/bmr.png b/assets/images/AlHabibMedicalService/health_calculator/bmr.png new file mode 100644 index 0000000000000000000000000000000000000000..db31ed438937b33da4bacbe9dbf285b919732aa6 GIT binary patch literal 5639 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 literal 0 HcmV?d00001 diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart index 45ea16fd..ec7074c2 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart @@ -6,8 +6,10 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'dart:math'; +import '../health_calc_desc.dart'; import 'result_page.dart'; const activeCardColor = Color(0xff70777A); @@ -121,7 +123,25 @@ class _BMICalculatorState extends State { return AppScaffold( isShowAppBar: true, isShowDecPage: false, - appBarTitle: "${TranslationBase.of(context).bmi} ${TranslationBase.of(context).calcHealth}", + showHomeAppBarIcon: false, + appBarIcons: [ + IconButton( + icon: Icon(Icons.info_outline), + color: Colors.white, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => HealthDescPage( + "${TranslationBase.of(context).bmi} ${TranslationBase.of(context).calcHealth}", + TranslationBase.of(context).bmiCalcDesc, + "assets/images/AlHabibMedicalService/health_calculator/bmi.png")), + ); + }, + ) + ], + appBarTitle: + "${TranslationBase.of(context).bmi} ${TranslationBase.of(context).calcHealth}", body: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.center, @@ -158,7 +178,8 @@ class _BMICalculatorState extends State { Row( children: [ Padding( - padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0), + padding: EdgeInsets.symmetric( + vertical: 10.0, horizontal: 8.0), child: Center( child: Container( width: 60.0, @@ -179,7 +200,8 @@ class _BMICalculatorState extends State { Container( height: 38.0, child: Column( - crossAxisAlignment: CrossAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Container( @@ -261,15 +283,18 @@ class _BMICalculatorState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset(0, 3), // changes position of shadow + offset: + Offset(0, 3), // changes position of shadow ), ], color: cmCard, borderRadius: BorderRadius.circular(3.0), ), child: Padding( - padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0), - child: Center(child: Texts(TranslationBase.of(context).cm)), + padding: const EdgeInsets.symmetric( + vertical: 0.0, horizontal: 18.0), + child: Center( + child: Texts(TranslationBase.of(context).cm)), ), ), ), @@ -290,13 +315,16 @@ class _BMICalculatorState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset(0, 3), // changes position of shadow + offset: + Offset(0, 3), // changes position of shadow ), ], ), child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), - child: Center(child: Texts(TranslationBase.of(context).feet)), + padding: + const EdgeInsets.symmetric(horizontal: 16.0), + child: Center( + child: Texts(TranslationBase.of(context).feet)), ), ), ), @@ -328,7 +356,8 @@ class _BMICalculatorState extends State { Row( children: [ Padding( - padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0), + padding: EdgeInsets.symmetric( + vertical: 10.0, horizontal: 8.0), child: Center( child: Container( width: 60.0, @@ -349,7 +378,8 @@ class _BMICalculatorState extends State { Container( height: 38.0, child: Column( - crossAxisAlignment: CrossAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Container( @@ -431,15 +461,18 @@ class _BMICalculatorState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset(0, 3), // changes position of shadow + offset: + Offset(0, 3), // changes position of shadow ), ], color: kgCard, borderRadius: BorderRadius.circular(3.0), ), child: Padding( - padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0), - child: Center(child: Texts(TranslationBase.of(context).kg)), + padding: const EdgeInsets.symmetric( + vertical: 0.0, horizontal: 18.0), + child: Center( + child: Texts(TranslationBase.of(context).kg)), ), ), ), @@ -460,13 +493,17 @@ class _BMICalculatorState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset(0, 3), // changes position of shadow + offset: + Offset(0, 3), // changes position of shadow ), ], ), child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), - child: Center(child: Texts(TranslationBase.of(context).pound)), + padding: + const EdgeInsets.symmetric(horizontal: 16.0), + child: Center( + child: + Texts(TranslationBase.of(context).pound)), ), ), ), diff --git a/lib/pages/AlHabibMedicalService/health_calculator/health_calc_desc.dart b/lib/pages/AlHabibMedicalService/health_calculator/health_calc_desc.dart new file mode 100644 index 00000000..19f8e986 --- /dev/null +++ b/lib/pages/AlHabibMedicalService/health_calculator/health_calc_desc.dart @@ -0,0 +1,40 @@ +import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:flutter/material.dart'; + +class HealthDescPage extends StatelessWidget { + final String title; + final String desc; + final String icon; + + HealthDescPage(this.title, this.desc, this.icon); + + @override + Widget build(BuildContext context) { + return AppScaffold( + isShowAppBar: true, + isShowDecPage: false, + appBarTitle: title, + body: Container( + margin: EdgeInsets.all(8.0), + child: Row( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 8), + child: Image.asset( + icon, + fit: BoxFit.cover, + height: 80, + ), + ), + Expanded( + child: Text( + desc, + style: TextStyle(fontSize: 18.0), + ), + ) + ], + ), + ), + ); + } +} diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index 35a248ae..211e1933 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -558,7 +558,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { changeIndex: _changeCurrentTab, index: currentTab, ), - floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, + floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked , floatingActionButton: (projectViewModel.havePrivilege(34) && currentTab == 0) ? FloatingButton( diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index e081d5db..a9f035f5 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -444,6 +444,7 @@ class Utils { ), )); + // TODO mosa check it medical.add(MedicalProfileItem( title: TranslationBase.of(context).patientCall, imagePath: 'medical_history_icon.png', diff --git a/lib/widgets/bottom_navigation/bottom_nav_bar.dart b/lib/widgets/bottom_navigation/bottom_nav_bar.dart index efca856b..76819533 100644 --- a/lib/widgets/bottom_navigation/bottom_nav_bar.dart +++ b/lib/widgets/bottom_navigation/bottom_nav_bar.dart @@ -97,14 +97,22 @@ class _BottomNavBarState extends State { ), if (widget.index != 0 && projectViewModel.havePrivilege(34)) BottomNavigationItem( - icon: EvaIcons.calendar, - activeIcon: EvaIcons.calendar, + icon: Icons.home_outlined, + activeIcon: Icons.home_outlined, changeIndex: _changeIndex, - index: _index, - currentIndex: 2, - name: TranslationBase.of(context).bookAppo, + index: widget.index, + currentIndex: 0, + name: TranslationBase.of(context).home, ), - if (widget.index == 0 && projectViewModel.havePrivilege(34)) + // BottomNavigationItem( + // icon: EvaIcons.calendar, + // activeIcon: EvaIcons.calendar, + // changeIndex: _changeIndex, + // index: _index, + // currentIndex: 2, + // name: TranslationBase.of(context).bookAppo, + // ), + if (/*widget.index == 0 && */projectViewModel.havePrivilege(34)) BottomNavigationItem( icon: EvaIcons.calendar, activeIcon: EvaIcons.calendar, diff --git a/pubspec.yaml b/pubspec.yaml index c109bd0a..f06257a9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -217,6 +217,7 @@ flutter: - assets/images/svg/ - assets/tracker/ - assets/images/AlHabibMedicalService/ + - assets/images/AlHabibMedicalService/health_calculator/ - assets/images/pharmacy_module/ - assets/images/gif/ - assets/images/pharmacy_module/payment/ From 4abdd9bde7f35211ea2416bb6dfc05ef0ae665f2 Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Tue, 3 Aug 2021 18:01:44 +0300 Subject: [PATCH 51/59] no message --- android/app/build.gradle | 2 +- android/app/google-services.json | 2 +- lib/config/localized_values.dart | 2 + .../health-calculator/bariatrics-service.dart | 30 ++++--- .../Bariatrics-viewmodel.dart | 5 +- .../all_habib_medical_service_page.dart | 11 ++- .../bmi_calculator/bariatrics-screen.dart | 20 +---- .../health_calculator/doctor_list.dart | 6 +- lib/pages/ErService/ErOptions.dart | 26 +++++- lib/pages/ErService/widgets/card_common.dart | 87 ++++++++++++------- lib/pages/ToDoList/ToDo.dart | 53 +++++------ lib/pages/landing/landing_page.dart | 28 ++++-- lib/pages/login/login.dart | 8 ++ lib/uitl/translations_delegate_base.dart | 2 + .../bottom_navigation/bottom_nav_bar.dart | 8 +- 15 files changed, 167 insertions(+), 123 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index d88df7fe..336e8e53 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -40,7 +40,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // applicationId "com.cloud.diplomaticquarterapp" - applicationId "com.ejada.hmg" + applicationId "com.ejada.hmg.uat" minSdkVersion 21 targetSdkVersion 30 versionCode flutterVersionCode.toInteger() diff --git a/android/app/google-services.json b/android/app/google-services.json index dd4038cf..6d1d75a9 100755 --- a/android/app/google-services.json +++ b/android/app/google-services.json @@ -10,7 +10,7 @@ "client_info": { "mobilesdk_app_id": "1:815750722565:android:62281cd3e5df4063", "android_client_info": { - "package_name": "com.ejada.hmg" + "package_name": "com.ejada.hmg.uat" } }, "oauth_client": [ diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index fed1b69a..dc8749da 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1264,6 +1264,8 @@ const Map localizedValues = { "stretcher": {"en": "Stretcher", "ar": "نقالة"}, "none": {"en": "None", "ar": "لا شيء"}, "RRT-Summary": {"en": "Summary", "ar": "ملخص الطلب"}, + "Rapid-Response-Team": {"en": "Rapid Response Team", "ar": "فريق الاستجابة السريع"}, + "rrtService": {"en": "RRT Service", "ar": "خدمة RRT"}, "bill-amount": {"en": "Bill Amount", "ar": "مبلغ الفاتورة"}, "transport-method": {"en": "Transportation Method", "ar": "طريقة النقل"}, "directions": {"en": "Directions", "ar": "الاتجاهات"}, diff --git a/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart b/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart index 37fdae75..4b38ef65 100644 --- a/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart +++ b/lib/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart @@ -7,6 +7,7 @@ import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_by_ import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_list_calcolation_model.dart'; import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_list_calcolation_request_model.dart'; import 'package:diplomaticquarterapp/core/service/base_service.dart'; +import 'package:flutter/cupertino.dart'; class BariatricsService extends BaseService { List clinicCategoryList = []; @@ -75,19 +76,24 @@ class BariatricsService extends BaseService { }, body: body); } - Future getDoctorList() async { + Future getDoctorList({@required DiseasesByClinic disease}) async { hasError = false; - DoctorListByTimeRequestModel _doctorListReq = DoctorListByTimeRequestModel(); - _doctorListReq.isGetNearAppointment = false; - _doctorListReq.continueDentalPlan = false; - _doctorListReq.isSearchAppointmnetByClinicID = true; - _doctorListReq.latitude = 0; - _doctorListReq.longitude = 0; - _doctorListReq.license = true; - _doctorListReq.clinicID = 108; - _doctorListReq.patientID = 0; + var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); - //body['ClinicID'] = 108; // hint: it is static depend on IONIC project + Map body = Map(); + body['ClinicID'] = 108; // hint: it is static depend on IONIC project + body['ContinueDentalPlan'] = false; + body['IsGetNearAppointment'] = false; + body['IsSearchAppointmnetByClinicID'] = true; + body['LanguageID'] = languageID == 'ar' ? 1 : 2; + body['Latitude'] = 0; + body['License'] = true; + body['Longitude'] = 0; + body['PatientID'] = 0; + body['isDentalAllowedBackend'] = false; + + if(disease != null) + body['DiseaseID'] = disease.diseasesID; await baseAppClient.post(GET_DOCTOR_LIST_BY_TIME, onSuccess: (dynamic response, int statusCode) { doctorListByTime.clear(); @@ -98,6 +104,6 @@ class BariatricsService extends BaseService { }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; - }, body: _doctorListReq.toJson()); + }, body: body); } } diff --git a/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart b/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart index 609e5424..53b39025 100644 --- a/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart +++ b/lib/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart @@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_by_ import 'package:diplomaticquarterapp/core/model/health_calcolator/get_doctor_list_calcolation_model.dart'; import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/health-calculator/bariatrics-service.dart'; import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; +import 'package:flutter/cupertino.dart'; import '../../../../locator.dart'; @@ -52,9 +53,9 @@ class BariatricsViewModel extends BaseViewModel { } } - void getDoctorList() async { + void getDoctorList({@required DiseasesByClinic disease}) async { setState(ViewState.Busy); - await _service.getDoctorList(); + await _service.getDoctorList(disease:disease); if (_service.hasError) { error = _service.error; setState(ViewState.Error); diff --git a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart index 21f277d9..355300c4 100644 --- a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart +++ b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart @@ -17,6 +17,7 @@ import 'package:diplomaticquarterapp/pages/DrawerPages/family/my-family.dart'; import 'package:diplomaticquarterapp/pages/ErService/ErOptions.dart'; import 'package:diplomaticquarterapp/pages/ToDoList/ToDo.dart'; import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart'; +import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart'; import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart'; import 'package:diplomaticquarterapp/pages/symptom-checker/info.dart'; @@ -281,12 +282,10 @@ class _AllHabibMedicalServiceState extends State { title: TranslationBase.of(context).childVaccine, ), ServicesContainer( - onTap: () => Navigator.push( - context, - FadePage( - page: ToDo(isShowAppBar: true), - ), - ), + onTap: (){ + Navigator.pop(context); + LandingPage.shared.switchToDoFromHMGServices(); + }, imageLocation: 'assets/images/new-design/upcoming_icon_bottom_bar.png', title: TranslationBase.of(context).todoList, diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart index a3d67613..c71a0c87 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart @@ -99,17 +99,8 @@ class _BariatricsPageState extends State { handler: () async { Navigator.push( context, - FadePage(page: DoctorList()), + FadePage(page: DoctorList(diseaseByClinic: _selectedDisease,)), ); - // await model.searchDoctorsByTime(_selectedDisease); - // if (model.state == ViewState.ErrorLocal) { - // AppToast.showErrorToast(message: model.error); - // } else {} - - // Navigator.push( - // context, - // MaterialPageRoute(builder: (context) => BariatricsPage()), - // ); }, ), ), @@ -131,15 +122,6 @@ class _BariatricsPageState extends State { context, FadePage(page: DoctorList()), ); - await model.searchDoctorsByTime(_selectedDisease); - if (model.state == ViewState.ErrorLocal) { - AppToast.showErrorToast(message: model.error); - } - - // Navigator.push( - // context, - // MaterialPageRoute(builder: (context) => BariatricsPage()), - // ); }, ), ), diff --git a/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart b/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart index b7d50303..4a24ecc2 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HealthCalculator/DiseasesByClinic.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; @@ -8,13 +9,14 @@ import 'package:flutter/material.dart'; import 'package:rating_bar/rating_bar.dart'; class DoctorList extends StatelessWidget { - const DoctorList({Key key}) : super(key: key); + DiseasesByClinic diseaseByClinic; + DoctorList({Key key, this.diseaseByClinic}) : super(key: key); @override Widget build(BuildContext context) { return BaseView( allowAny: true, - onModelReady: (model) => model.getDoctorList(), + onModelReady: (model) => model.getDoctorList(disease: diseaseByClinic), builder: (BuildContext context, BariatricsViewModel model, Widget child) => AppScaffold( isShowDecPage: false, isShowAppBar: true, diff --git a/lib/pages/ErService/ErOptions.dart b/lib/pages/ErService/ErOptions.dart index e0ff3ed4..a6a61749 100644 --- a/lib/pages/ErService/ErOptions.dart +++ b/lib/pages/ErService/ErOptions.dart @@ -1,8 +1,12 @@ +import 'dart:convert'; + +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/uitl/location_util.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import '../../uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/pages/ErService/widgets/card_common.dart'; @@ -23,6 +27,7 @@ class ErOptions extends StatefulWidget { class _ErOptionsState extends State { LocationUtils locationUtils; + ProjectViewModel projectViewModel; @override void initState() { @@ -35,6 +40,9 @@ class _ErOptionsState extends State { } @override Widget build(BuildContext context) { + projectViewModel = Provider.of(context); + final rrtLocked = !projectViewModel.havePrivilege(68); + return AppScaffold( isShowAppBar: widget.isAppbar, appBarTitle: TranslationBase.of(context).bookAppo, @@ -45,6 +53,7 @@ class _ErOptionsState extends State { children: [ Container( + height: 170, margin: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0), child: Row( mainAxisSize: MainAxisSize.max, @@ -82,6 +91,7 @@ class _ErOptionsState extends State { ), Container( margin: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0), + height: 170, child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, @@ -94,14 +104,24 @@ class _ErOptionsState extends State { onTap: (){ Navigator.push( context, - FadePage( - page: DdServicesPage())); + FadePage(page: DdServicesPage()) + ); }, ), ), Expanded( - child: Container(), + child: CardCommonEr( + locked: rrtLocked, + image: 'assets/images/new-design/AM.PNG', + text: TranslationBase.of(context).rrtService, + subText: TranslationBase.of(context).RapidResponseTeam, + onTap:(){ + Navigator.push( + context, + FadePage( + page: NearestEr())); + }), ) ], ), diff --git a/lib/pages/ErService/widgets/card_common.dart b/lib/pages/ErService/widgets/card_common.dart index 6b396dc9..cd0dfaa9 100644 --- a/lib/pages/ErService/widgets/card_common.dart +++ b/lib/pages/ErService/widgets/card_common.dart @@ -10,51 +10,72 @@ class CardCommonEr extends StatelessWidget { final image; final text; final subText; + final bool locked; final Function onTap; const CardCommonEr( - {@required this.image, - @required this.text, - @required this.subText, - @required this.onTap}); + { + this.locked = false, + @required this.image, + @required this.text, + @required this.subText, + @required this.onTap, + }); @override Widget build(BuildContext context) { return GestureDetector( - onTap: () => onTap(), - child: Container( - margin: EdgeInsets.fromLTRB(9.0, 9.0, 9.0, 9.0), - decoration: BoxDecoration(boxShadow: [ - BoxShadow(color: Colors.grey[400], blurRadius: 2.0, spreadRadius: 0.0) - ], borderRadius: BorderRadius.circular(10), color: Colors.white), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ + onTap: locked ? null : onTap, + child: Opacity( + opacity: locked ? 0.25 : 1.0, + child: Stack( + children: [ Container( - margin: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 0.0), - child: Text(this.text, - overflow: TextOverflow.clip, - style: TextStyle( - color: new Color(0xFFc5272d), - letterSpacing: 1.0, - fontSize: 20.0)), + margin: EdgeInsets.fromLTRB(9.0, 9.0, 9.0, 9.0), + decoration: BoxDecoration(boxShadow: [ + BoxShadow(color: Colors.grey[400], blurRadius: 2.0, spreadRadius: 0.0) + ], borderRadius: BorderRadius.circular(10), color: Colors.white), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + margin: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 0.0), + child: Text(this.text, + overflow: TextOverflow.clip, + style: TextStyle( + color: new Color(0xFFc5272d), + letterSpacing: 1.0, + fontSize: 20.0)), + ), + Container( + margin: EdgeInsets.fromLTRB(10.0, 0.0, 10.0, 0.0), + child: Text(this.subText, + overflow: TextOverflow.clip, + style: TextStyle( + color: Colors.black, letterSpacing: 1.0, fontSize: 15.0)), + ), + Spacer(), + Container( + alignment: Alignment.bottomRight, + margin: EdgeInsets.fromLTRB(0.0, 0.0, 10.0, 8.0), + child: Image.asset(this.image, width: 60.0, height: 60.0), + ), + ], ), - Container( - margin: EdgeInsets.fromLTRB(10.0, 0.0, 10.0, 0.0), - child: Text(this.subText, - overflow: TextOverflow.clip, - style: TextStyle( - color: Colors.black, letterSpacing: 1.0, fontSize: 15.0)), - ), - Container( - alignment: Alignment.bottomRight, - margin: EdgeInsets.fromLTRB(0.0, 0.0, 10.0, 8.0), - child: Image.asset(this.image, width: 60.0, height: 60.0), - ), - ], + ), + if(locked) + Align( + alignment: Alignment.center, + child: lock() + ) + ] , ), ), ); } + Widget lock(){ + return Container(child: Icon(Icons.lock_rounded, size: 80),); + } + } diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart index 319221d5..febbdf0f 100644 --- a/lib/pages/ToDoList/ToDo.dart +++ b/lib/pages/ToDoList/ToDo.dart @@ -101,6 +101,7 @@ class _ToDoState extends State { return Container( margin: EdgeInsets.all(10.0), child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( child: Card( @@ -372,44 +373,32 @@ class _ToDoState extends State { color: Color(0xff20bc44), ), height: 30.0, - margin: projectViewModel.isArabic - ? EdgeInsets.fromLTRB(160.0, 0.0, 30.0, 0.0) - : EdgeInsets.fromLTRB(20.0, 0.0, 160.0, 0.0), + padding: EdgeInsets.only(right:15), + margin: EdgeInsets.symmetric(horizontal:20), transform: Matrix4.translationValues(0.0, -8.0, 0.0), child: Row( + mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.start, children: [ widget.appoList[index].isLiveCareAppointment - ? Container( - margin: EdgeInsets.fromLTRB( - 5.0, 0.0, 5.0, 0.0), - child: Image.asset( - "assets/images/new-design/video.png"), - ) - : Container( - margin: EdgeInsets.fromLTRB( - 5.0, 0.0, 5.0, 0.0), - child: Image.asset( - "assets/images/new-design/walkin.png"), - ), + ? Image.asset( + "assets/images/new-design/video.png") + : Image.asset( + "assets/images/new-design/walkin.png"), widget.appoList[index].isLiveCareAppointment - ? Container( - child: Text( - TranslationBase.of(context).videoAppo, - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - fontSize: 11.0)), - ) - : Container( - child: Text( - TranslationBase.of(context) - .walkinAppo, - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - fontSize: 11.0)), - ) + ? Text( + TranslationBase.of(context).videoAppo, + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 11.0)) + : Text( + TranslationBase.of(context) + .walkinAppo, + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 11.0)) ], ), ), diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index fb2f14ee..72ca904d 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -46,12 +46,22 @@ import '../../routes.dart'; import 'home_page.dart'; class LandingPage extends StatefulWidget { + static LandingPage shared; + _LandingPageState state; + LandingPage() { + LandingPage.shared = this; + } + static bool isOpenCallPage = false; static IncomingCallData incomingCallData = new IncomingCallData(); @override - _LandingPageState createState() => _LandingPageState(); + _LandingPageState createState() => state = _LandingPageState(); + + switchToDoFromHMGServices(){ + state.changeCurrentTab(4); + } } class _LandingPageState extends State with WidgetsBindingObserver { @@ -87,15 +97,17 @@ class _LandingPageState extends State with WidgetsBindingObserver { bool isPageNavigated = false; LocationUtils locationUtils; - _changeCurrentTab(int tab) { + changeCurrentTab(int tab) { setState(() { - currentTab = tab; - if (tab != 0) + if(currentTab > 0 && tab == 2) + pageController.jumpToPage(0); + else if (tab != 0) pageController.jumpToPage(tab); else { IS_VOICE_COMMAND_CLOSED = false; pageController.jumpToPage(tab); } + currentTab = tab; }); } @@ -373,7 +385,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { checkValue(projectProvider) { if (projectProvider.searchValue != null) { - _changeCurrentTab(2); + changeCurrentTab(2); } } @@ -551,7 +563,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { children: [ HomePage( goToMyProfile: () { - _changeCurrentTab(1); + changeCurrentTab(1); }, ), MedicalProfilePage(), @@ -561,7 +573,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { ], // Please do not remove the BookingOptions from this array ), bottomNavigationBar: BottomNavBar( - changeIndex: _changeCurrentTab, + changeIndex: changeCurrentTab, index: currentTab, ), floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, @@ -570,7 +582,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { ? FloatingButton( elevation: true, onTap: () { - _changeCurrentTab(2); + changeCurrentTab(2); }) : null); } diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index 7f2877ee..c5da90d5 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; @@ -40,6 +41,7 @@ class Login extends StatefulWidget { class _Login extends State { final util = Utils(); final nationalIDorFile = TextEditingController(); + final mobileNumberController = TextEditingController(); final int loginType = LoginType.loginType; String mobileNo; String countryCode = '966'; @@ -62,6 +64,11 @@ class _Login extends State { void initState() { // getDeviceToken(); super.initState(); + + if(BASE_URL.contains("uat.")){ + nationalIDorFile.text = "1231755"; + mobileNumberController.text = mobileNo = "537503378"; + } } getDeviceToken() async { @@ -102,6 +109,7 @@ class _Login extends State { Directionality( textDirection: TextDirection.ltr, child: MobileNo( + controller: mobileNumberController, onNumberChange: (value) => {mobileNo = value, validateForm()}, onCountryChange: (value) => countryCode = value)), diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index c3875466..2a966715 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -1159,6 +1159,8 @@ class TranslationBase { String get stretcher => localizedValues['stretcher'][locale.languageCode]; String get none => localizedValues['none'][locale.languageCode]; String get RRTSummary => localizedValues['RRT-Summary'][locale.languageCode]; + String get RapidResponseTeam => localizedValues['Rapid-Response-Team'][locale.languageCode]; + String get rrtService => localizedValues['rrtService'][locale.languageCode]; String get billAmount => localizedValues['bill-amount'][locale.languageCode]; String get transportMethod => localizedValues['transport-method'][locale.languageCode]; diff --git a/lib/widgets/bottom_navigation/bottom_nav_bar.dart b/lib/widgets/bottom_navigation/bottom_nav_bar.dart index efca856b..3d278174 100644 --- a/lib/widgets/bottom_navigation/bottom_nav_bar.dart +++ b/lib/widgets/bottom_navigation/bottom_nav_bar.dart @@ -97,14 +97,14 @@ class _BottomNavBarState extends State { ), if (widget.index != 0 && projectViewModel.havePrivilege(34)) BottomNavigationItem( - icon: EvaIcons.calendar, - activeIcon: EvaIcons.calendar, + icon: EvaIcons.home, + activeIcon: EvaIcons.home, changeIndex: _changeIndex, index: _index, currentIndex: 2, - name: TranslationBase.of(context).bookAppo, + name: TranslationBase.of(context).home, ), - if (widget.index == 0 && projectViewModel.havePrivilege(34)) + if (projectViewModel.havePrivilege(34)) BottomNavigationItem( icon: EvaIcons.calendar, activeIcon: EvaIcons.calendar, From 981e78936e16b144b0b91c63b401204b7c15c268 Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Wed, 4 Aug 2021 09:11:03 +0300 Subject: [PATCH 52/59] jira bugs --- lib/config/config.dart | 393 +++++------- lib/core/service/client/base_app_client.dart | 226 +++---- lib/pages/landing/home_page.dart | 561 +++++++----------- .../my_trackers/Weight/WeightMonthlyPage.dart | 11 +- .../my_trackers/Weight/WeightWeeklyPage.dart | 7 +- .../my_trackers/Weight/WeightYeaPage.dart | 11 +- .../blood_pressure/AddBloodPressurePage.dart | 153 ++--- .../my_trackers/widget/LineChartCurved.dart | 20 +- .../widget/MonthLineChartCurved.dart | 20 +- .../clinic_services/get_clinic_service.dart | 44 +- lib/uitl/utils.dart | 96 ++- 11 files changed, 586 insertions(+), 956 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index 27facf1c..f4c5e559 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -33,8 +33,7 @@ const GET_GEO_ZONES = 'Services/Patients.svc/REST/GeoF_GetAllPoints'; const LOG_GEO_ZONES = 'Services/Patients.svc/REST/GeoF_InsertPatientFileInfo'; // Delivery Driver -const DRIVER_LOCATION = - 'Services/Patients.svc/REST/PatientER_GetDriverLocation'; +const DRIVER_LOCATION = 'Services/Patients.svc/REST/PatientER_GetDriverLocation'; //weather const WEATHER_INDICATOR = 'Services/Weather.svc/REST/GetCityInfo'; @@ -42,51 +41,36 @@ const WEATHER_INDICATOR = 'Services/Weather.svc/REST/GetCityInfo'; const GET_PRIVILEGE = 'Services/Patients.svc/REST/Service_Privilege'; // Wifi Credentials -const WIFI_CREDENTIALS = - "Services/Patients.svc/Hmg_SMS_Get_By_ProjectID_And_PatientID"; +const WIFI_CREDENTIALS = "Services/Patients.svc/Hmg_SMS_Get_By_ProjectID_And_PatientID"; ///Doctor -const GET_MY_DOCTOR = - 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; +const GET_MY_DOCTOR = 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; const GET_DOCTOR_PROFILE = 'Services/Doctors.svc/REST/GetDocProfiles'; -const GET_DOCTOR_RATING_NOTES = - 'Services/Doctors.svc/REST/dr_GetNotesDoctorRating'; -const GET_DOCTOR_RATING_DETAILS = - 'Services/Doctors.svc/REST/dr_GetDoctorRatingDetails'; +const GET_DOCTOR_RATING_NOTES = 'Services/Doctors.svc/REST/dr_GetNotesDoctorRating'; +const GET_DOCTOR_RATING_DETAILS = 'Services/Doctors.svc/REST/dr_GetDoctorRatingDetails'; const GET_DOCTOR_RATING = 'Services/Doctors.svc/REST/dr_GetAvgDoctorRating'; ///Prescriptions const PRESCRIPTIONS = 'Services/Patients.svc/REST/GetPrescriptionApptList'; -const GET_PRESCRIPTIONS_ALL_ORDERS = - 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const GET_PRESCRIPTION_REPORT = - 'Services/Patients.svc/REST/INP_GetPrescriptionReport'; -const SEND_PRESCRIPTION_EMAIL = - 'Services/Notifications.svc/REST/SendPrescriptionEmail'; -const GET_PRESCRIPTION_REPORT_ENH = - 'Services/Patients.svc/REST/GetPrescriptionReport_enh'; +const GET_PRESCRIPTIONS_ALL_ORDERS = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const GET_PRESCRIPTION_REPORT = 'Services/Patients.svc/REST/INP_GetPrescriptionReport'; +const SEND_PRESCRIPTION_EMAIL = 'Services/Notifications.svc/REST/SendPrescriptionEmail'; +const GET_PRESCRIPTION_REPORT_ENH = 'Services/Patients.svc/REST/GetPrescriptionReport_enh'; ///Lab Order const GET_Patient_LAB_ORDERS = 'Services/Patients.svc/REST/GetPatientLabOrders'; -const GET_Patient_LAB_SPECIAL_RESULT = - 'Services/Patients.svc/REST/GetPatientLabSpecialResults'; -const SEND_LAB_RESULT_EMAIL = - 'Services/Notifications.svc/REST/SendLabReportEmail'; -const GET_Patient_LAB_RESULT = - 'Services/Patients.svc/REST/GetPatientLabResults'; -const GET_Patient_LAB_ORDERS_RESULT = - 'Services/Patients.svc/REST/GetPatientLabOrdersResults'; +const GET_Patient_LAB_SPECIAL_RESULT = 'Services/Patients.svc/REST/GetPatientLabSpecialResults'; +const SEND_LAB_RESULT_EMAIL = 'Services/Notifications.svc/REST/SendLabReportEmail'; +const GET_Patient_LAB_RESULT = 'Services/Patients.svc/REST/GetPatientLabResults'; +const GET_Patient_LAB_ORDERS_RESULT = 'Services/Patients.svc/REST/GetPatientLabOrdersResults'; /// const GET_PATIENT_ORDERS = 'Services/Patients.svc/REST/GetPatientRadOrders'; -const GET_PATIENT_LAB_ORDERS_BY_APPOINTMENT = - 'Services/Patients.svc/REST/GetPatientLabResultsByAppointmentNo'; +const GET_PATIENT_LAB_ORDERS_BY_APPOINTMENT = 'Services/Patients.svc/REST/GetPatientLabResultsByAppointmentNo'; -const GET_PATIENT_ORDERS_DETAILS = - 'Services/Patients.svc/REST/Rad_UpdatePatientRadOrdersToRead'; +const GET_PATIENT_ORDERS_DETAILS = 'Services/Patients.svc/REST/Rad_UpdatePatientRadOrdersToRead'; const GET_RAD_IMAGE_URL = 'Services/Patients.svc/Rest/GetRadImageURL'; -const SEND_RAD_REPORT_EMAIL = - 'Services/Notifications.svc/REST/SendRadReportEmail'; +const SEND_RAD_REPORT_EMAIL = 'Services/Notifications.svc/REST/SendRadReportEmail'; ///Feedback const SEND_FEEDBACK = 'Services/COCWS.svc/REST/InsertCOCItemInSPList'; @@ -95,32 +79,23 @@ const GET_PATIENT_AppointmentHistory = 'Services' '/Doctors.svc/REST/PateintHasAppoimentHistory'; ///VITAL SIGN -const GET_PATIENT_VITAL_SIGN = - 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign'; +const GET_PATIENT_VITAL_SIGN = 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign'; ///Er Nearest -const GET_NEAREST_HOSPITAL = - 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime'; +const GET_NEAREST_HOSPITAL = 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime'; ///ED Online -const ER_GET_VISUAL_TRIAGE_QUESTIONS = - "services/Doctors.svc/REST/ER_GetVisualTriageQuestions"; -const ER_SAVE_TRIAGE_INFORMATION = - "services/Doctors.svc/REST/ER_SaveTriageInformation"; +const ER_GET_VISUAL_TRIAGE_QUESTIONS = "services/Doctors.svc/REST/ER_GetVisualTriageQuestions"; +const ER_SAVE_TRIAGE_INFORMATION = "services/Doctors.svc/REST/ER_SaveTriageInformation"; const ER_GetPatientPaymentInformationForERClinic = "services/Doctors.svc/REST/ER_GetPatientPaymentInformationForERClinic"; ///Er Nearest -const GET_AMBULANCE_REQUEST = - 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod'; -const GET_PATIENT_ALL_PRES_ORDERS = - 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID = - 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID'; -const UPDATE_PRESS_ORDER = - 'Services/Patients.svc/REST/PatientER_UpdatePresOrder'; -const INSERT_ER_INERT_PRES_ORDER = - 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; +const GET_AMBULANCE_REQUEST = 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod'; +const GET_PATIENT_ALL_PRES_ORDERS = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID = 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID'; +const UPDATE_PRESS_ORDER = 'Services/Patients.svc/REST/PatientER_UpdatePresOrder'; +const INSERT_ER_INERT_PRES_ORDER = 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; ///FindUs const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations'; @@ -129,15 +104,13 @@ const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations'; const GET_LIVECHAT_REQUEST = 'Services/Patients.svc/REST/GetPatientICProjects'; ///babyInformation -const GET_BABYINFORMATION_REQUEST = - 'Services/Community.svc/REST/GetBabyByUserID'; +const GET_BABYINFORMATION_REQUEST = 'Services/Community.svc/REST/GetBabyByUserID'; ///Get Baby By User ID const GET_BABY_BY_USER_ID = 'Services/Community.svc/REST/GetBabyByUserID'; ///userInformation -const GET_USERINFORMATION_REQUEST = - 'Services/Community.svc/REST/GetUserInformation_New'; +const GET_USERINFORMATION_REQUEST = 'Services/Community.svc/REST/GetUserInformation_New'; ///Update email const UPDATE_PATENT_EMAIL = 'Services/Patients.svc/REST/UpdatePateintEmail'; @@ -159,29 +132,21 @@ const GET_TABLE_REQUEST = 'Services/Community.svc/REST/CreateVaccinationTable'; const GET_CITIES_REQUEST = 'Services/Lists.svc/REST/GetAllCities'; ///BloodDetails -const GET_BLOOD_REQUEST = - 'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails'; +const GET_BLOOD_REQUEST = 'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails'; -const SAVE_BLOOD_REQUEST = - 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; +const SAVE_BLOOD_REQUEST = 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; -const GET_BLOOD_AGREEMENT = - 'Services/PatientVarification.svc/REST/CheckUserAgreementForBloodDonation'; -const SAVE_BLOOD_AGREEMENT = - 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; +const GET_BLOOD_AGREEMENT = 'Services/PatientVarification.svc/REST/CheckUserAgreementForBloodDonation'; +const SAVE_BLOOD_AGREEMENT = 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; ///Reports const REPORTS = 'Services/Doctors.svc/REST/GetPatientMedicalReportStatusInfo'; -const INSERT_REQUEST_FOR_MEDICAL_REPORT = - 'Services/Doctors.svc/REST/InsertRequestForMedicalReport'; -const SEND_MEDICAL_REPORT_EMAIL = - 'Services/Notifications.svc/REST/SendMedicalReportEmail'; +const INSERT_REQUEST_FOR_MEDICAL_REPORT = 'Services/Doctors.svc/REST/InsertRequestForMedicalReport'; +const SEND_MEDICAL_REPORT_EMAIL = 'Services/Notifications.svc/REST/SendMedicalReportEmail'; ///Rate -const IS_LAST_APPOITMENT_RATED = - 'Services/Doctors.svc/REST/IsLastAppoitmentRated'; -const GET_APPOINTMENT_DETAILS_BY_NO = - 'Services/MobileNotifications.svc/REST/GetAppointmentDetailsByApptNo'; +const IS_LAST_APPOITMENT_RATED = 'Services/Doctors.svc/REST/IsLastAppoitmentRated'; +const GET_APPOINTMENT_DETAILS_BY_NO = 'Services/MobileNotifications.svc/REST/GetAppointmentDetailsByApptNo'; const GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID'; @@ -193,8 +158,7 @@ const GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID'; const GET_CLINICS_LIST_URL = "Services/lists.svc/REST/GetClinicCentralized"; //URL to get active appointment list -const GET_ACTIVE_APPOINTMENTS_LIST_URL = - "Services/Doctors.svc/Rest/Dr_GetAppointmentActiveNumber"; +const GET_ACTIVE_APPOINTMENTS_LIST_URL = "Services/Doctors.svc/Rest/Dr_GetAppointmentActiveNumber"; //URL to get projects list const GET_PROJECTS_LIST = 'Services/Lists.svc/REST/GetProject'; @@ -203,118 +167,87 @@ const GET_PROJECTS_LIST = 'Services/Lists.svc/REST/GetProject'; const GET_DOCTORS_LIST_URL = "Services/Doctors.svc/REST/SearchDoctorsByTime"; //URL to dental doctors list -const GET_DENTAL_DOCTORS_LIST_URL = - "Services/Doctors.svc/REST/Dental_DoctorChiefComplaintMapping"; +const GET_DENTAL_DOCTORS_LIST_URL = "Services/Doctors.svc/REST/Dental_DoctorChiefComplaintMapping"; //URL to get doctor free slots const GET_DOCTOR_FREE_SLOTS = "Services/Doctors.svc/REST/GetDoctorFreeSlots"; //URL to insert appointment -const INSERT_SPECIFIC_APPOINTMENT = - "Services/Doctors.svc/REST/InsertSpecificAppointment"; +const INSERT_SPECIFIC_APPOINTMENT = "Services/Doctors.svc/REST/InsertSpecificAppointment"; //URL to get patient share -const GET_PATIENT_SHARE = - "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNO"; +const GET_PATIENT_SHARE = "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNO"; //URL to get patient appointment history -const GET_PATIENT_APPOINTMENT_HISTORY = - "Services/Doctors.svc/REST/PateintHasAppoimentHistory"; +const GET_PATIENT_APPOINTMENT_HISTORY = "Services/Doctors.svc/REST/PateintHasAppoimentHistory"; -const SEND_REPORT_EYE_EMAIL = - "Services/Notifications.svc/REST/SendGlassesPrescriptionEmail"; +const SEND_REPORT_EYE_EMAIL = "Services/Notifications.svc/REST/SendGlassesPrescriptionEmail"; -const SEND_CONTACT_LENS_PRESCRIPTION_EMAIL = - "Services/Notifications.svc/REST/SendContactLensPrescriptionEmail"; +const SEND_CONTACT_LENS_PRESCRIPTION_EMAIL = "Services/Notifications.svc/REST/SendContactLensPrescriptionEmail"; //URL to get patient appointment curfew history -const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = - "Services/Doctors.svc/REST/AppoimentHistoryForCurfew"; +const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = "Services/Doctors.svc/REST/AppoimentHistoryForCurfew"; //URL to confirm appointment -const CONFIRM_APPOINTMENT = - "Services/MobileNotifications.svc/REST/ConfirmAppointment"; +const CONFIRM_APPOINTMENT = "Services/MobileNotifications.svc/REST/ConfirmAppointment"; -const INSERT_VIDA_REQUEST = - "Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart"; +const INSERT_VIDA_REQUEST = "Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart"; //URL to cancel appointment const CANCEL_APPOINTMENT = "Services/Doctors.svc/REST/CancelAppointment"; //URL get appointment QR -const GENERATE_QR_APPOINTMENT = - "Services/Doctors.svc/REST/GenerateQRAppointmentNo"; +const GENERATE_QR_APPOINTMENT = "Services/Doctors.svc/REST/GenerateQRAppointmentNo"; //URL send email appointment QR -const EMAIL_QR_APPOINTMENT = - "Services/Notifications.svc/REST/sendEmailForOnLineCheckin"; +const EMAIL_QR_APPOINTMENT = "Services/Notifications.svc/REST/sendEmailForOnLineCheckin"; //URL check payment status -const CHECK_PAYMENT_STATUS = - "Services/PayFort_Serv.svc/REST/GetRequestStatusByRequestID"; +const CHECK_PAYMENT_STATUS = "Services/PayFort_Serv.svc/REST/GetRequestStatusByRequestID"; //URL create advance payment const CREATE_ADVANCE_PAYMENT = "Services/Doctors.svc/REST/CreateAdvancePayment"; -const HIS_CREATE_ADVANCE_PAYMENT = - "Services/Patients.svc/REST/HIS_CreateAdvancePayment"; +const HIS_CREATE_ADVANCE_PAYMENT = "Services/Patients.svc/REST/HIS_CreateAdvancePayment"; -const ADD_ADVANCE_NUMBER_REQUEST = - 'Services/PayFort_Serv.svc/REST/AddAdvancedNumberRequest'; +const ADD_ADVANCE_NUMBER_REQUEST = 'Services/PayFort_Serv.svc/REST/AddAdvancedNumberRequest'; -const IS_ALLOW_ASK_DOCTOR = - 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; -const GET_CALL_REQUEST_TYPE = - 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; -const ADD_VIDA_REQUEST = - 'Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart'; +const IS_ALLOW_ASK_DOCTOR = 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; +const GET_CALL_REQUEST_TYPE = 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; +const ADD_VIDA_REQUEST = 'Services/ER_VirtualCall.svc/REST/PatientER_VidaRequestInseart'; const SEND_CALL_REQUEST = 'Services/Doctors.svc/REST/InsertCallInfo'; -const GET_LIVECARE_CLINICS = - 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinics'; +const GET_LIVECARE_CLINICS = 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinics'; -const GET_LIVECARE_SCHEDULE_CLINICS = - 'Services/Doctors.svc/REST/PatientER_GetClinicsHaveSchedule'; +const GET_LIVECARE_SCHEDULE_CLINICS = 'Services/Doctors.svc/REST/PatientER_GetClinicsHaveSchedule'; -const GET_LIVECARE_SCHEDULE_CLINIC_DOCTOR_LIST = - 'Services/Doctors.svc/REST/PatientER_GetDoctorByClinicID'; +const GET_LIVECARE_SCHEDULE_CLINIC_DOCTOR_LIST = 'Services/Doctors.svc/REST/PatientER_GetDoctorByClinicID'; -const GET_LIVECARE_SCHEDULE_DOCTOR_TIME_SLOTS = - 'Services/Doctors.svc/REST/PatientER_GetDoctorFreeSlots'; +const GET_LIVECARE_SCHEDULE_DOCTOR_TIME_SLOTS = 'Services/Doctors.svc/REST/PatientER_GetDoctorFreeSlots'; -const INSERT_LIVECARE_SCHEDULE_APPOINTMENT = - 'Services/Doctors.svc/REST/InsertSpecificAppoitmentForSchedule'; +const INSERT_LIVECARE_SCHEDULE_APPOINTMENT = 'Services/Doctors.svc/REST/InsertSpecificAppoitmentForSchedule'; const GET_PATIENT_SHARE_LIVECARE = "Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNOForLiveCare"; -const GET_LIVECARE_CLINIC_TIMING = - 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinicsServiceTimingsSchedule'; +const GET_LIVECARE_CLINIC_TIMING = 'Services/ER_VirtualCall.svc/REST/PatientER_GetClinicsServiceTimingsSchedule'; -const GET_ER_APPOINTMENT_FEES = - 'Services/DoctorApplication.svc/REST/GetERAppointmentFees'; +const GET_ER_APPOINTMENT_FEES = 'Services/DoctorApplication.svc/REST/GetERAppointmentFees'; const GET_ER_APPOINTMENT_TIME = 'Services/ER_VirtualCall.svc/REST/GetRestTime'; -const ADD_NEW_CALL_FOR_PATIENT_ER = - 'Services/DoctorApplication.svc/REST/NewCallForPatientER'; +const ADD_NEW_CALL_FOR_PATIENT_ER = 'Services/DoctorApplication.svc/REST/NewCallForPatientER'; -const GET_LIVECARE_HISTORY = - 'Services/ER_VirtualCall.svc/REST/GetPatientErVirtualHistory'; -const CANCEL_LIVECARE_REQUEST = - 'Services/ER_VirtualCall.svc/REST/DeleteErRequest'; -const SEND_LIVECARE_INVOICE_EMAIL = - 'Services/Notifications.svc/REST/SendInvoiceForLiveCare'; +const GET_LIVECARE_HISTORY = 'Services/ER_VirtualCall.svc/REST/GetPatientErVirtualHistory'; +const CANCEL_LIVECARE_REQUEST = 'Services/ER_VirtualCall.svc/REST/DeleteErRequest'; +const SEND_LIVECARE_INVOICE_EMAIL = 'Services/Notifications.svc/REST/SendInvoiceForLiveCare'; const GET_USER_TERMS = 'Services/Patients.svc/REST/GetUserTermsAndConditions'; -const UPDATE_HEALTH_TERMS = - 'services/Patients.svc/REST/UpdatePateintHealthSummaryReport'; +const UPDATE_HEALTH_TERMS = 'services/Patients.svc/REST/UpdatePateintHealthSummaryReport'; -const GET_PATIENT_HEALTH_STATS = - 'Services/Patients.svc/REST/Med_GetTransactionsSts'; +const GET_PATIENT_HEALTH_STATS = 'Services/Patients.svc/REST/Med_GetTransactionsSts'; -const SEND_CHECK_IN_NFC_REQUEST = - 'Services/Patients.svc/REST/Patient_CheckAppointmentValidation_ForNFC'; +const SEND_CHECK_IN_NFC_REQUEST = 'Services/Patients.svc/REST/Patient_CheckAppointmentValidation_ForNFC'; //URL to get medicine and pharmacies list const CHANNEL = 3; @@ -335,21 +268,16 @@ var DeviceTypeID = Platform.isIOS ? 1 : 2; const LANGUAGE_ID = 2; const GET_PHARMCY_ITEMS = "Services/Lists.svc/REST/GetPharmcyItems_Region"; const GET_PHARMACY_LIST = "Services/Patients.svc/REST/GetPharmcyList"; -const GET_PAtIENTS_INSURANCE = - "Services/Patients.svc/REST/Get_PatientInsuranceDetails"; -const GET_PAtIENTS_INSURANCE_UPDATED = - "Services/Patients.svc/REST/PatientER_GetPatientInsuranceCardUpdateHistory"; +const GET_PAtIENTS_INSURANCE = "Services/Patients.svc/REST/Get_PatientInsuranceDetails"; +const GET_PAtIENTS_INSURANCE_UPDATED = "Services/Patients.svc/REST/PatientER_GetPatientInsuranceCardUpdateHistory"; const INSURANCE_DETAILS = "Services/Patients.svc/REST/Get_InsuranceCheckList"; -const GET_PATIENT_INSURANCE_DETAILS = - "Services/Patients.svc/REST/PatientER_GetPatientInsuranceDetails"; -const UPLOAD_INSURANCE_CARD = - 'Services/Patients.svc/REST/PatientER_PatientInfoForInsuranceCardUpdate'; +const GET_PATIENT_INSURANCE_DETAILS = "Services/Patients.svc/REST/PatientER_GetPatientInsuranceDetails"; +const UPLOAD_INSURANCE_CARD = 'Services/Patients.svc/REST/PatientER_PatientInfoForInsuranceCardUpdate'; const GET_VACCINES = "Services/Patients.svc/REST/GetDoneVaccinesByPatientID"; const GET_VACCINES_EMAIL = "Services/Notifications.svc/REST/SendVaccinesEmail"; -const GET_PAtIENTS_INSURANCE_APPROVALS = - "Services/Patients.svc/REST/GetApprovalStatus"; +const GET_PAtIENTS_INSURANCE_APPROVALS = "Services/Patients.svc/REST/GetApprovalStatus"; const SEARCH_BOT = 'HabibiChatBotApi/BotInterface/GetVoiceCommandResponse'; const GET_VACCINATIONS_ITEMS = "/Services/ERP.svc/REST/GET_VACCINATIONS_ITEMS"; @@ -359,81 +287,54 @@ const GET_PATIENT_SICK_LEAVE = 'Services/Patients.svc/REST/GetPatientSickLeave'; const SendSickLeaveEmail = 'Services/Notifications.svc/REST/SendSickLeaveEmail'; -const GET_PATIENT_AdVANCE_BALANCE_AMOUNT = - 'Services/Patients.svc/REST/GetPatientAdvanceBalanceAmount'; -const GET_PATIENT_INFO_BY_ID = - 'Services/Doctors.svc/REST/GetPatientInfoByPatientID'; +const GET_PATIENT_AdVANCE_BALANCE_AMOUNT = 'Services/Patients.svc/REST/GetPatientAdvanceBalanceAmount'; +const GET_PATIENT_INFO_BY_ID = 'Services/Doctors.svc/REST/GetPatientInfoByPatientID'; const GET_PATIENT_INFO_BY_ID_AND_MOBILE_NUMBER = 'Services/Patients.svc/REST/AP_GetPatientInfoByPatientIDandMobileNumber'; -const SEND_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = - 'Services/Authentication.svc/REST/SendActivationCodeForAdvancePayment'; +const SEND_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/REST/SendActivationCodeForAdvancePayment'; const CHECK_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/REST/CheckActivationCodeForAdvancePayment'; -const GET_COVID_DRIVETHRU_PROJECT_LIST = - 'Services/Doctors.svc/REST/COVID19_ProjectDriveThroughTestingCenter'; +const GET_COVID_DRIVETHRU_PROJECT_LIST = 'Services/Doctors.svc/REST/COVID19_ProjectDriveThroughTestingCenter'; -const GET_COVID_DRIVETHRU_PAYMENT_INFO = - 'Services/Doctors.svc/REST/COVID19_GetPatientPaymentInormation'; +const GET_COVID_DRIVETHRU_PAYMENT_INFO = 'Services/Doctors.svc/REST/COVID19_GetPatientPaymentInormation'; -const GET_COVID_DRIVETHRU_FREE_SLOTS = - 'Services/Doctors.svc/REST/COVID19_GetFreeSlots'; +const GET_COVID_DRIVETHRU_FREE_SLOTS = 'Services/Doctors.svc/REST/COVID19_GetFreeSlots'; ///Smartwatch Integration Services -const GET_PATIENT_LAST_RECORD = - 'Services/Patients.svc/REST/Med_GetPatientLastRecord'; +const GET_PATIENT_LAST_RECORD = 'Services/Patients.svc/REST/Med_GetPatientLastRecord'; ///My Trackers -const GET_DIABETIC_RESULT_AVERAGE = - 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage'; -const GET_DIABTEC_RESULT = - 'Services/Patients.svc/REST/Patient_GetDiabtecResults'; -const ADD_DIABTEC_RESULT = - 'Services/Patients.svc/REST/Patient_AddDiabtecResult'; - -const GET_BLOOD_PRESSURE_RESULT_AVERAGE = - 'Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage'; -const GET_BLOOD_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_GetBloodPressureResult'; -const ADD_BLOOD_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_AddBloodPressureResult'; - -const GET_WEIGHT_PRESSURE_RESULT_AVERAGE = - 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage'; -const GET_WEIGHT_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResult'; -const ADD_WEIGHT_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_AddWeightMeasurementResult'; +const GET_DIABETIC_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage'; +const GET_DIABTEC_RESULT = 'Services/Patients.svc/REST/Patient_GetDiabtecResults'; +const ADD_DIABTEC_RESULT = 'Services/Patients.svc/REST/Patient_AddDiabtecResult'; + +const GET_BLOOD_PRESSURE_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage'; +const GET_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_GetBloodPressureResult'; +const ADD_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_AddBloodPressureResult'; + +const GET_WEIGHT_PRESSURE_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage'; +const GET_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResult'; +const ADD_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_AddWeightMeasurementResult'; const ADD_ACTIVE_PRESCRIPTIONS_REPORT_BY_PATIENT_ID = 'Services/Patients.svc/Rest/GetActivePrescriptionReportByPatientID'; -const GET_CALL_INFO_HOURS_RESULT = - 'Services/Doctors.svc/REST/GetCallInfoHoursResult'; -const GET_CALL_REQUEST_TYPE_LOV = - 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; - -const UPDATE_DIABETIC_RESULT = - 'Services/Patients.svc/REST/Patient_UpdateDiabeticResult'; - -const SEND_AVERAGE_BLOOD_SUGAR_REPORT = - 'Services/Notifications.svc/REST/SendAverageBloodSugarReport'; -const DEACTIVATE_DIABETIC_STATUS = - 'services/Patients.svc/REST/Patient_DeactivateDiabeticStatus'; -const DEACTIVATE_BLOOD_PRESSURES_STATUS = - 'services/Patients.svc/REST/Patient_DeactivateBloodPressureStatus'; - -const UPDATE_BLOOD_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_UpdateBloodPressureResult'; -const SEND_AVERAGE_BLOOD_WEIGHT_REPORT = - 'Services/Notifications.svc/REST/SendAverageBodyWeightReport'; -const SEND_AVERAGE_BLOOD_PRESSURE_REPORT = - 'Services/Notifications.svc/REST/SendAverageBloodPressureReport'; - -const UPDATE_WEIGHT_PRESSURE_RESULT = - 'Services/Patients.svc/REST/Patient_UpdateWeightMeasurementResult'; -const DEACTIVATE_WEIGHT_PRESSURE_RESULT = - 'services/Patients.svc/REST/Patient_DeactivateWeightMeasurementStatus'; +const GET_CALL_INFO_HOURS_RESULT = 'Services/Doctors.svc/REST/GetCallInfoHoursResult'; +const GET_CALL_REQUEST_TYPE_LOV = 'Services/Doctors.svc/REST/GetCallRequestType_LOV'; + +const UPDATE_DIABETIC_RESULT = 'Services/Patients.svc/REST/Patient_UpdateDiabeticResult'; + +const SEND_AVERAGE_BLOOD_SUGAR_REPORT = 'Services/Notifications.svc/REST/SendAverageBloodSugarReport'; +const DEACTIVATE_DIABETIC_STATUS = 'services/Patients.svc/REST/Patient_DeactivateDiabeticStatus'; +const DEACTIVATE_BLOOD_PRESSURES_STATUS = 'services/Patients.svc/REST/Patient_DeactivateBloodPressureStatus'; + +const UPDATE_BLOOD_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_UpdateBloodPressureResult'; +const SEND_AVERAGE_BLOOD_WEIGHT_REPORT = 'Services/Notifications.svc/REST/SendAverageBodyWeightReport'; +const SEND_AVERAGE_BLOOD_PRESSURE_REPORT = 'Services/Notifications.svc/REST/SendAverageBloodPressureReport'; + +const UPDATE_WEIGHT_PRESSURE_RESULT = 'Services/Patients.svc/REST/Patient_UpdateWeightMeasurementResult'; +const DEACTIVATE_WEIGHT_PRESSURE_RESULT = 'services/Patients.svc/REST/Patient_DeactivateWeightMeasurementStatus'; const GET_DOCTOR_RESPONSE = 'Services/Patients.svc/REST/GetDoctorResponse'; const UPDATE_READ_STATUS = 'Services/Patients.svc/REST/UpdateReadStatus'; const INSERT_CALL_INFO = 'Services/Doctors.svc/REST/InsertCallInfo'; @@ -441,35 +342,25 @@ const INSERT_CALL_INFO = 'Services/Doctors.svc/REST/InsertCallInfo'; const GET_PATIENT_ALLERGIES = 'Services/Patients.svc/REST/GetPatientAllergies'; // H2O -const H2O_GET_USER_PROGRESS = - "Services/H2ORemainder.svc/REST/H2O_GetUserProgress"; -const H2O_INSERT_USER_ACTIVITY = - "Services/H2ORemainder.svc/REST/H2O_InsertUserActivity"; -const H2O_GET_USER_DETAIL = - "Services/H2ORemainder.svc/REST/H2O_GetUserDetails_New"; -const H2O_UPDATE_USER_DETAIL = - "Services/H2ORemainder.svc/REST/H2O_UpdateUserDetails_New"; -const H2O_UNDO_USER_ACTIVITY = - "Services/H2ORemainder.svc/REST/H2o_UndoUserActivity"; +const H2O_GET_USER_PROGRESS = "Services/H2ORemainder.svc/REST/H2O_GetUserProgress"; +const H2O_INSERT_USER_ACTIVITY = "Services/H2ORemainder.svc/REST/H2O_InsertUserActivity"; +const H2O_GET_USER_DETAIL = "Services/H2ORemainder.svc/REST/H2O_GetUserDetails_New"; +const H2O_UPDATE_USER_DETAIL = "Services/H2ORemainder.svc/REST/H2O_UpdateUserDetails_New"; +const H2O_UNDO_USER_ACTIVITY = "Services/H2ORemainder.svc/REST/H2o_UndoUserActivity"; //E_Referral Services -const GET_ALL_RELATIONSHIP_TYPES = - "Services/Patients.svc/REST/GetAllRelationshipTypes"; -const SEND_ACTIVATION_CODE_FOR_E_REFERRAL = - 'Services/Authentication.svc/REST/SendActivationCodeForEReferral'; -const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL = - 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral'; +const GET_ALL_RELATIONSHIP_TYPES = "Services/Patients.svc/REST/GetAllRelationshipTypes"; +const SEND_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/SendActivationCodeForEReferral'; +const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral'; const GET_ALL_CITIES = 'services/Lists.svc/rest/GetAllCities'; const CREATE_E_REFERRAL = "Services/Patients.svc/REST/CreateEReferral"; const GET_E_REFERRALS = "Services/Patients.svc/REST/GetEReferrals"; // Encillary Orders -const GET_ANCILLARY_ORDERS = - 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderList'; +const GET_ANCILLARY_ORDERS = 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderList'; -const GET_ANCILLARY_ORDERS_DETAILS = - 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderProcList'; +const GET_ANCILLARY_ORDERS_DETAILS = 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderProcList'; //Pharmacy wishlist // const GET_WISHLIST = "http://swd-pharapp-01:7200/api/shopping_cart_items/"; @@ -501,50 +392,34 @@ const GET_SHIPPING_OPTIONS = "get_shipping_option/"; const DELETE_SHOPPING_CART = "delete_shopping_cart_items/"; const DELETE_SHOPPING_CART_ALL = "delete_shopping_cart_item_by_customer/"; const ORDER_SHOPPING_CART = "orders"; -const GET_LACUM_ACCOUNT_INFORMATION = - "Services/Patients.svc/REST/GetLakumAccountInformation"; -const GET_LACUM_GROUP_INFORMATION = - "Services/Patients.svc/REST/GetlakumInQueryInfoGrouping"; -const LACUM_ACCOUNT_ACTIVATE = - "Services/Patients.svc/REST/LakumAccountActivation"; -const LACUM_ACCOUNT_DEACTIVATE = - "Services/Patients.svc/REST/LakumAccountDeactivation"; -const CREATE_LAKUM_ACCOUNT = - "Services/Patients.svc/REST/PHR_CreateLakumAccount"; -const TRANSFER_YAHALA_LOYALITY_POINTS = - "Services/Patients.svc/REST/TransferYaHalaLoyaltyPoints"; -const LAKUM_GET_USER_TERMS_AND_CONDITIONS = - "Services/ERP.svc/REST/GetUserTermsAndConditionsForEPharmcy"; +const GET_LACUM_ACCOUNT_INFORMATION = "Services/Patients.svc/REST/GetLakumAccountInformation"; +const GET_LACUM_GROUP_INFORMATION = "Services/Patients.svc/REST/GetlakumInQueryInfoGrouping"; +const LACUM_ACCOUNT_ACTIVATE = "Services/Patients.svc/REST/LakumAccountActivation"; +const LACUM_ACCOUNT_DEACTIVATE = "Services/Patients.svc/REST/LakumAccountDeactivation"; +const CREATE_LAKUM_ACCOUNT = "Services/Patients.svc/REST/PHR_CreateLakumAccount"; +const TRANSFER_YAHALA_LOYALITY_POINTS = "Services/Patients.svc/REST/TransferYaHalaLoyaltyPoints"; +const LAKUM_GET_USER_TERMS_AND_CONDITIONS = "Services/ERP.svc/REST/GetUserTermsAndConditionsForEPharmcy"; const PRESCRIPTION = 'Services/Patients.svc/REST/GetPrescriptionApptList'; const GET_RECOMMENDED_PRODUCT = 'alsoProduct/'; const GET_MOST_VIEWED_PRODUCTS = "mostview?"; const GET_NEW_PRODUCTS = "newproducts?"; // Home Health Care -const HHC_GET_ALL_SERVICES = - "Services/Patients.svc/REST/PatientER_HHC_GetAllServices"; -const HHC_GET_ALL_CMC_SERVICES = - "Services/Patients.svc/REST/PatientER_CMC_GetAllServices"; -const PATIENT_ER_UPDATE_PRES_ORDER = - "Services/Patients.svc/REST/PatientER_UpdatePresOrder"; -const GET_ORDER_DETAIL_BY_ID = - "Services/Patients.svc/REST/PatientER_HHC_GetTransactionsForOrder"; -const GET_CMC_ORDER_DETAIL_BY_ID = - "Services/Patients.svc/REST/PatientER_CMC_GetTransactionsForOrder"; +const HHC_GET_ALL_SERVICES = "Services/Patients.svc/REST/PatientER_HHC_GetAllServices"; +const HHC_GET_ALL_CMC_SERVICES = "Services/Patients.svc/REST/PatientER_CMC_GetAllServices"; +const PATIENT_ER_UPDATE_PRES_ORDER = "Services/Patients.svc/REST/PatientER_UpdatePresOrder"; +const GET_ORDER_DETAIL_BY_ID = "Services/Patients.svc/REST/PatientER_HHC_GetTransactionsForOrder"; +const GET_CMC_ORDER_DETAIL_BY_ID = "Services/Patients.svc/REST/PatientER_CMC_GetTransactionsForOrder"; const GET_CHECK_UP_ITEMS = "Services/Patients.svc/REST/GetCheckUpItems"; const PUSH_NOTIFICATION_GET_ALL_NOTIFICATIONS = 'Services/MobileNotifications.svc/REST/PushNotification_GetAllNotifications'; const PUSH_NOTIFICATION_SET_MESSAGES_FROM_POOL_AS_READ = 'Services/MobileNotifications.svc/REST/PushNotification_SetMessagesFromPoolAsRead'; -const GET_PATIENT_ALL_PRES_ORD = - 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; -const PATIENT_ER_INSERT_PRES_ORDER = - 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; +const GET_PATIENT_ALL_PRES_ORD = 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders'; +const PATIENT_ER_INSERT_PRES_ORDER = 'Services/Patients.svc/REST/PatientER_InsertPresOrder'; const PHARMACY_MAKE_REVIEW = 'epharmacy/api/insertreviews'; -const BLOOD_DONATION_REGISTER_BLOOD_TYPE = - 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; -const ADD_USER_AGREEMENT_FOR_BLOOD_DONATION = - 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; +const BLOOD_DONATION_REGISTER_BLOOD_TYPE = 'Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType'; +const ADD_USER_AGREEMENT_FOR_BLOOD_DONATION = 'Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation'; //Pharmacy wishlist const GET_WISHLIST = "shopping_cart_items/"; @@ -577,8 +452,7 @@ const GET_SUB_PRODUCTS = 'products?categoryid='; const GET_FINAL_PRODUCTS = 'products?fields=id,reviews,discount_ids,name,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage&CategoryId='; const GET_CLINIC_CATEGORY = 'Services/Doctors.svc/REST/DP_GetClinicCategory'; -const GET_DISEASE_BY_CLINIC_ID = - 'Services/Doctors.svc/REST/DP_GetDiseasesByClinicID'; +const GET_DISEASE_BY_CLINIC_ID = 'Services/Doctors.svc/REST/DP_GetDiseasesByClinicID'; const SEARCH_DOCTOR_BY_TIME = 'Services/Doctors.svc/REST/SearchDoctorsByTime'; const TIMER_MIN = 10; @@ -594,8 +468,7 @@ const SCAN_QR_CODE = 'productbysku/'; const FILTERED_PRODUCTS = 'products?categoryids='; -const GET_DOCTOR_LIST_CALCULATION = - "Services/Doctors.svc/REST/GetCallculationDoctors"; +const GET_DOCTOR_LIST_CALCULATION = "Services/Doctors.svc/REST/GetCallculationDoctors"; class AppGlobal { static var context; diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index 03f12df1..43c39fec 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -29,8 +29,7 @@ AppSharedPreferences sharedPref = new AppSharedPreferences(); /// onFailure: (String error, int statusCode) {}, /// body: Map(); /// -AuthenticatedUserObject authenticatedUserObject = - locator(); +AuthenticatedUserObject authenticatedUserObject = locator(); VitalSignService _vitalSignService = locator(); class BaseAppClient { @@ -50,14 +49,10 @@ class BaseAppClient { //Map profile = await sharedPref.getObj(DOCTOR_PROFILE); var pharmacyToken = await sharedPref.getString(PHARMACY_AUTORZIE_TOKEN); var user = await sharedPref.getObject(USER_PROFILE); - Map headers = { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }; + Map headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}; if (!isExternal) { String token = await sharedPref.getString(TOKEN); - var languageID = - await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); + var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); if (body.containsKey('SetupID')) { body['SetupID'] = body.containsKey('SetupID') ? body['SetupID'] != null @@ -72,19 +67,13 @@ class BaseAppClient { body['IPAdress'] = IP_ADDRESS; body['generalid'] = GENERAL_ID; - body['PatientOutSA'] = body.containsKey('PatientOutSA') - ? body['PatientOutSA'] != null - ? body['PatientOutSA'] - : PATIENT_OUT_SA - : PATIENT_OUT_SA; if (body.containsKey('isDentalAllowedBackend')) { - body['isDentalAllowedBackend'] = - body.containsKey('isDentalAllowedBackend') - ? body['isDentalAllowedBackend'] != null - ? body['isDentalAllowedBackend'] - : IS_DENTAL_ALLOWED_BACKEND - : IS_DENTAL_ALLOWED_BACKEND; + body['isDentalAllowedBackend'] = body.containsKey('isDentalAllowedBackend') + ? body['isDentalAllowedBackend'] != null + ? body['isDentalAllowedBackend'] + : IS_DENTAL_ALLOWED_BACKEND + : IS_DENTAL_ALLOWED_BACKEND; } body['DeviceTypeID'] = Platform.isAndroid ? 1 : 2; @@ -107,19 +96,20 @@ class BaseAppClient { : PATIENT_TYPE_ID; if (user != 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'] != null + ? body['PatientOutSA'] + : PATIENT_OUT_SA + : PATIENT_OUT_SA; body['SessionID'] = SESSION_ID; //getSe + headers = { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': pharmacyToken, - 'Mobilenumber': user != null - ? Utils.getPhoneNumberWithoutZero( - user['MobileNumber'].toString()) - : "", + 'Mobilenumber': user != null ? Utils.getPhoneNumberWithoutZero(user['MobileNumber'].toString()) : "", 'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9', 'Username': user['PatientID'].toString(), }; @@ -131,8 +121,7 @@ class BaseAppClient { print("Body : ${json.encode(body)}"); if (await Utils.checkConnection()) { - final response = await http.post(url.trim(), - body: json.encode(body), headers: headers); + final response = await http.post(url.trim(), body: json.encode(body), headers: headers); final int statusCode = response.statusCode; print("statusCode :$statusCode"); if (statusCode < 200 || statusCode >= 400 || json == null) { @@ -144,8 +133,7 @@ class BaseAppClient { onSuccess(parsed, statusCode); } else { if (parsed['ErrorType'] == 4) { - navigateToAppUpdate( - AppGlobal.context, parsed['ErrorEndUserMessage']); + navigateToAppUpdate(AppGlobal.context, parsed['ErrorEndUserMessage']); } if (isAllowAny) { onSuccess(parsed, statusCode); @@ -160,34 +148,24 @@ class BaseAppClient { if (parsed != null) { onSuccess(parsed, statusCode); } else { - onFailure( - parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], - statusCode); + onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); logout(); } } - } else if (parsed['MessageStatus'] == 1 || - parsed['SMSLoginRequired'] == true) { + } else if (parsed['MessageStatus'] == 1 || parsed['SMSLoginRequired'] == true) { onSuccess(parsed, statusCode); - } else if (parsed['MessageStatus'] == 2 && - parsed['IsAuthenticated']) { + } else if (parsed['MessageStatus'] == 2 && parsed['IsAuthenticated']) { if (parsed['SameClinicApptList'] != null) { onSuccess(parsed, statusCode); } else { - if (parsed['message'] == null && - parsed['ErrorEndUserMessage'] == null) { + if (parsed['message'] == null && parsed['ErrorEndUserMessage'] == null) { if (parsed['ErrorSearchMsg'] == null) { - onFailure("Server Error found with no available message", - statusCode); + onFailure("Server Error found with no available message", statusCode); } else { onFailure(parsed['ErrorSearchMsg'], statusCode); } } else { - onFailure( - parsed['message'] ?? - parsed['ErrorEndUserMessage'] ?? - parsed['ErrorMessage'], - statusCode); + onFailure(parsed['message'] ?? parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); } } } else if (!parsed['IsAuthenticated']) { @@ -201,9 +179,7 @@ class BaseAppClient { if (parsed['message'] != null) { onFailure(parsed['message'] ?? parsed['message'], statusCode); } else { - onFailure( - parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], - statusCode); + onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); } } } @@ -240,16 +216,13 @@ class BaseAppClient { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': token ?? '', - 'Mobilenumber': user != null - ? Utils.getPhoneNumberWithoutZero(user['MobileNumber'].toString()) - : "", + 'Mobilenumber': user != null ? Utils.getPhoneNumberWithoutZero(user['MobileNumber'].toString()) : "", 'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9', 'Username': user != null ? user['PatientID'].toString() : "", }; if (!isExternal) { String token = await sharedPref.getString(TOKEN); - var languageID = - await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); + var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); if (body.containsKey('SetupID')) { body['SetupID'] = body.containsKey('SetupID') ? body['SetupID'] != null @@ -271,12 +244,11 @@ class BaseAppClient { : PATIENT_OUT_SA; if (body.containsKey('isDentalAllowedBackend')) { - body['isDentalAllowedBackend'] = - body.containsKey('isDentalAllowedBackend') - ? body['isDentalAllowedBackend'] != null - ? body['isDentalAllowedBackend'] - : IS_DENTAL_ALLOWED_BACKEND - : IS_DENTAL_ALLOWED_BACKEND; + body['isDentalAllowedBackend'] = body.containsKey('isDentalAllowedBackend') + ? body['isDentalAllowedBackend'] != null + ? body['isDentalAllowedBackend'] + : IS_DENTAL_ALLOWED_BACKEND + : IS_DENTAL_ALLOWED_BACKEND; } body['DeviceTypeID'] = Platform.isAndroid ? 1 : 2; @@ -299,9 +271,7 @@ class BaseAppClient { : PATIENT_TYPE_ID; if (user != 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['SessionID'] = SESSION_ID; //getSe headers = { @@ -320,8 +290,7 @@ class BaseAppClient { print("Body : ${json.encode(body)}"); if (await Utils.checkConnection()) { - final response = await http.post(url.trim(), - body: json.encode(body), headers: headers); + final response = await http.post(url.trim(), body: json.encode(body), headers: headers); final int statusCode = response.statusCode; print("statusCode :$statusCode"); if (statusCode < 200 || statusCode >= 400 || json == null) { @@ -333,8 +302,7 @@ class BaseAppClient { onSuccess(parsed, statusCode); } else { if (parsed['ErrorType'] == 4) { - navigateToAppUpdate( - AppGlobal.context, parsed['ErrorEndUserMessage']); + navigateToAppUpdate(AppGlobal.context, parsed['ErrorEndUserMessage']); } if (isAllowAny) { onSuccess(parsed, statusCode); @@ -349,34 +317,24 @@ class BaseAppClient { if (parsed != null) { onSuccess(parsed, statusCode); } else { - onFailure( - parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], - statusCode); + onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); logout(); } } - } else if (parsed['MessageStatus'] == 1 || - parsed['SMSLoginRequired'] == true) { + } else if (parsed['MessageStatus'] == 1 || parsed['SMSLoginRequired'] == true) { onSuccess(parsed, statusCode); - } else if (parsed['MessageStatus'] == 2 && - parsed['IsAuthenticated']) { + } else if (parsed['MessageStatus'] == 2 && parsed['IsAuthenticated']) { if (parsed['SameClinicApptList'] != null) { onSuccess(parsed, statusCode); } else { - if (parsed['message'] == null && - parsed['ErrorEndUserMessage'] == null) { + if (parsed['message'] == null && parsed['ErrorEndUserMessage'] == null) { if (parsed['ErrorSearchMsg'] == null) { - onFailure("Server Error found with no available message", - statusCode); + onFailure("Server Error found with no available message", statusCode); } else { onFailure(parsed['ErrorSearchMsg'], statusCode); } } else { - onFailure( - parsed['message'] ?? - parsed['ErrorEndUserMessage'] ?? - parsed['ErrorMessage'], - statusCode); + onFailure(parsed['message'] ?? parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); } } } else if (!parsed['IsAuthenticated']) { @@ -390,9 +348,7 @@ class BaseAppClient { if (parsed['message'] != null) { onFailure(parsed['message'] ?? parsed['message'], statusCode); } else { - onFailure( - parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], - statusCode); + onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); } } } @@ -408,8 +364,7 @@ class BaseAppClient { } Future navigateToAppUpdate(context, String text) async { - Navigator.pushReplacement( - context, FadePage(page: AppUpdatePage(appUpdateText: text))); + Navigator.pushReplacement(context, FadePage(page: AppUpdatePage(appUpdateText: text))); } get(String endPoint, @@ -433,10 +388,7 @@ class BaseAppClient { if (await Utils.checkConnection()) { final response = await http.get( url.trim(), - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }, + headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}, ); final int statusCode = response.statusCode; print("statusCode :$statusCode"); @@ -480,9 +432,7 @@ class BaseAppClient { 'Content-Type': 'text/html; charset=utf-8', 'Accept': 'application/json', 'Authorization': token ?? '', - 'Mobilenumber': user != null - ? Utils.getPhoneNumberWithoutZero(user['MobileNumber'].toString()) - : "", + 'Mobilenumber': user != null ? Utils.getPhoneNumberWithoutZero(user['MobileNumber'].toString()) : "", 'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9', 'Username': user != null ? user['PatientID'].toString() : "", }); @@ -491,8 +441,7 @@ class BaseAppClient { if (statusCode < 200 || statusCode >= 400 || json == null) { if (statusCode == 401) { - AppToast.showErrorToast( - message: TranslationBase.of(AppGlobal.context).pharmacyRelogin); + AppToast.showErrorToast(message: TranslationBase.of(AppGlobal.context).pharmacyRelogin); Navigator.of(AppGlobal.context).pushNamed(HOME); } else { onFailure('Error While Fetching data', statusCode); @@ -520,10 +469,7 @@ class BaseAppClient { final response = await http.post( url.trim(), body: json.encode(body), - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }, + headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}, ); final int statusCode = response.statusCode; @@ -556,10 +502,7 @@ class BaseAppClient { if (await Utils.checkConnection()) { final response = await http.get( url.trim(), - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }, + headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}, ); final int statusCode = response.statusCode; @@ -586,10 +529,7 @@ class BaseAppClient { final response = await http.put( url.trim(), body: json.encode(body), - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }, + headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}, ); final int statusCode = response.statusCode; @@ -622,10 +562,7 @@ class BaseAppClient { if (await Utils.checkConnection()) { final response = await http.delete( url.trim(), - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }, + headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}, ); final int statusCode = response.statusCode; @@ -645,10 +582,8 @@ class BaseAppClient { await sharedPref.remove(LOGIN_TOKEN_ID); await sharedPref.remove(PHARMACY_CUSTOMER_ID); await authenticatedUserObject.getUser(); - Provider.of(AppGlobal.context, listen: false).isLogin = - false; - var model = - Provider.of(AppGlobal.context, listen: false); + Provider.of(AppGlobal.context, listen: false).isLogin = false; + var model = Provider.of(AppGlobal.context, listen: false); _vitalSignService.weightKg = ""; _vitalSignService.heightCm = ""; model.setState(0, false); @@ -662,8 +597,7 @@ class BaseAppClient { static defaultHttpParameters() async { String token = await sharedPref.getString(TOKEN); - var languageID = - await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); + var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); var user = await sharedPref.getObject(USER_PROFILE); var params = {}; if (user != null) { @@ -699,8 +633,7 @@ class BaseAppClient { try { if (isExternal) { String token = await sharedPref.getString(TOKEN); - var languageID = - await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); + var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); var user = await sharedPref.getObject(USER_PROFILE); if (body.containsKey('SetupID')) { body['SetupID'] = body.containsKey('SetupID') @@ -723,12 +656,11 @@ class BaseAppClient { : PATIENT_OUT_SA; if (body.containsKey('isDentalAllowedBackend')) { - body['isDentalAllowedBackend'] = - body.containsKey('isDentalAllowedBackend') - ? body['isDentalAllowedBackend'] != null - ? body['isDentalAllowedBackend'] - : IS_DENTAL_ALLOWED_BACKEND - : IS_DENTAL_ALLOWED_BACKEND; + body['isDentalAllowedBackend'] = body.containsKey('isDentalAllowedBackend') + ? body['isDentalAllowedBackend'] != null + ? body['isDentalAllowedBackend'] + : IS_DENTAL_ALLOWED_BACKEND + : IS_DENTAL_ALLOWED_BACKEND; } body['DeviceTypeID'] = Platform.isAndroid ? 1 : 2; @@ -751,9 +683,7 @@ class BaseAppClient { : PATIENT_TYPE_ID; if (user != 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['SessionID'] = SESSION_ID; //getSessionId(token); } @@ -765,17 +695,14 @@ class BaseAppClient { var ss = json.encode(body); if (await Utils.checkConnection()) { - final response = - await http.post(url.trim(), body: json.encode(body), headers: { + final response = await http.post(url.trim(), body: json.encode(body), headers: { // 'Content-Type': 'application/json', // 'Accept': 'application/json', // 'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9', 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': token ?? '', - 'Mobilenumber': user != null - ? Utils.getPhoneNumberWithoutZero(user['MobileNumber'].toString()) - : "", + 'Mobilenumber': user != null ? Utils.getPhoneNumberWithoutZero(user['MobileNumber'].toString()) : "", 'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9', 'Username': user != null ? user['PatientID'].toString() : "", }); @@ -790,8 +717,7 @@ class BaseAppClient { onSuccess(parsed, statusCode); } else { if (parsed['ErrorType'] == 4) { - navigateToAppUpdate( - AppGlobal.context, parsed['ErrorEndUserMessage']); + navigateToAppUpdate(AppGlobal.context, parsed['ErrorEndUserMessage']); } if (isAllowAny) { onSuccess(parsed, statusCode); @@ -806,31 +732,21 @@ class BaseAppClient { if (parsed != null) { onSuccess(parsed, statusCode); } else { - onFailure( - parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], - statusCode); + onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); logout(); } } - } else if (parsed['MessageStatus'] == 1 || - parsed['SMSLoginRequired'] == true) { + } else if (parsed['MessageStatus'] == 1 || parsed['SMSLoginRequired'] == true) { onSuccess(parsed, statusCode); - } else if (parsed['MessageStatus'] == 2 && - parsed['IsAuthenticated']) { - if (parsed['message'] == null && - parsed['ErrorEndUserMessage'] == null) { + } else if (parsed['MessageStatus'] == 2 && parsed['IsAuthenticated']) { + if (parsed['message'] == null && parsed['ErrorEndUserMessage'] == null) { if (parsed['ErrorSearchMsg'] == null) { - onFailure("Server Error found with no available message", - statusCode); + onFailure("Server Error found with no available message", statusCode); } else { onFailure(parsed['ErrorSearchMsg'], statusCode); } } else { - onFailure( - parsed['message'] ?? - parsed['ErrorEndUserMessage'] ?? - parsed['ErrorMessage'], - statusCode); + onFailure(parsed['message'] ?? parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); } } else if (!parsed['IsAuthenticated']) { await logout(); @@ -843,9 +759,7 @@ class BaseAppClient { if (parsed['message'] != null) { onFailure(parsed['message'] ?? parsed['message'], statusCode); } else { - onFailure( - parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], - statusCode); + onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); } } } diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index 88600929..3e51b668 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -1,3 +1,5 @@ +import 'package:diplomaticquarterapp/config/config.dart'; +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart'; @@ -19,6 +21,7 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; +import 'package:feather_icons_flutter/feather_icons_flutter.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -37,15 +40,15 @@ class HomePage extends StatefulWidget { } class _HomePageState extends State { - PharmacyModuleViewModel pharmacyModuleViewModel = - locator(); + PharmacyModuleViewModel pharmacyModuleViewModel = locator(); @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return BaseView( - onModelReady: (model) => () { + onModelReady: (model) => () async { model.getPatientRadOrders(); + var user = await sharedPref.getObject(USER_PROFILE); }, builder: (_, model, wi) => AppScaffold( isShowDecPage: false, @@ -65,9 +68,7 @@ class _HomePageState extends State { height: 210, decoration: BoxDecoration( image: DecorationImage( - image: ExactAssetImage( - 'assets/images/dashboard_top_bg.png'), - fit: BoxFit.cover), + image: ExactAssetImage('assets/images/dashboard_top_bg.png'), fit: BoxFit.cover), ), child: Stack( children: [ @@ -76,131 +77,103 @@ class _HomePageState extends State { left: 5, right: 5, child: Container( - width: - MediaQuery.of(context).size.width * 0.8, + width: MediaQuery.of(context).size.width * 0.8, child: Row( children: [ Expanded( - child: Container( - height: 125, - padding: EdgeInsets.all(5), - margin: EdgeInsets.all(5), - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage( - "assets/images/new-design/covid_bg_transparent.png"), - fit: BoxFit.fill, - ), - color: - Colors.white.withOpacity(0.3), - borderRadius: BorderRadius.all( - Radius.circular(5))), + child: Visibility( + visible: model.user.outSA == 1 ? false : true, child: Container( - child: Column( - children: [ - Texts( - TranslationBase.of(context) - .covidTest, - color: Colors.white, - fontWeight: FontWeight.w700, + height: 125, + padding: EdgeInsets.all(5), + margin: EdgeInsets.all(5), + decoration: BoxDecoration( + image: DecorationImage( + image: + AssetImage("assets/images/new-design/covid_bg_transparent.png"), + fit: BoxFit.fill, ), - Row( - mainAxisAlignment: - MainAxisAlignment - .spaceAround, - children: [ - Container( - margin: EdgeInsets.only( - top: 15.0, + color: Colors.white.withOpacity(0.3), + borderRadius: BorderRadius.all(Radius.circular(5))), + child: Container( + child: Column( + children: [ + Texts( + TranslationBase.of(context).covidTest, + color: Colors.white, + fontWeight: FontWeight.w700, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Container( + margin: EdgeInsets.only( + top: 15.0, + ), + child: SvgPicture.asset( + 'assets/images/new-design/covid-19-car.svg', + width: 45.0, + height: 45.0), ), - child: SvgPicture.asset( - 'assets/images/new-design/covid-19-car.svg', - width: 45.0, - height: 45.0), - ), - Container( - margin: EdgeInsets.only( - top: 5.0), - child: Column( - children: [ - Texts( - TranslationBase.of( - context) - .driveThru, - fontWeight: - FontWeight.w700, - color: Colors.white, - ), - ButtonTheme( - shape: - RoundedRectangleBorder( - borderRadius: - BorderRadius - .circular( - 5.0), + Container( + margin: EdgeInsets.only(top: 5.0), + child: Column( + children: [ + Texts( + TranslationBase.of(context).driveThru, + fontWeight: FontWeight.w700, + color: Colors.white, ), - minWidth: MediaQuery.of( - context) - .size - .width * - 0.15, - height: 25.0, - child: RaisedButton( - color: Colors - .red[800], - textColor: - Colors.white, - disabledTextColor: - Colors.white, - disabledColor: - new Color( - 0xFFbcc2c4), - onPressed: () { - navigateToCovidDriveThru(); - }, - child: Center( + ButtonTheme( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5.0), + ), + minWidth: MediaQuery.of(context).size.width * 0.15, + height: 25.0, + child: RaisedButton( + color: Colors.red[800], + textColor: Colors.white, + disabledTextColor: Colors.white, + disabledColor: new Color(0xFFbcc2c4), + onPressed: () { + navigateToCovidDriveThru(); + }, child: Center( child: Center( - child: - Center( - child: - Texts( - TranslationBase.of(context) - .bookNow, - fontWeight: - FontWeight.w700, - color: Colors - .white, + child: Center( + child: Center( + child: Texts( + TranslationBase.of(context).bookNow, + fontWeight: FontWeight.w700, + color: Colors.white, + ), ), ), ), ), ), ), - ), - ], + ], + ), ), - ), - ], - ), - ], + ], + ), + ], + ), ), ), ), ), Expanded( child: InkWell( - onTap: () => Navigator.push(context, - FadePage(page: LiveCareHome())), + onTap: () => Navigator.push(context, FadePage(page: LiveCareHome())), child: Container( height: 125, padding: EdgeInsets.all(15), margin: EdgeInsets.all(5), decoration: BoxDecoration( - color: Colors.white - .withOpacity(0.3), - borderRadius: BorderRadius.all( - Radius.circular(5))), + color: Colors.white.withOpacity(0.3), + borderRadius: BorderRadius.all(Radius.circular(5))), child: SvgPicture.asset( projectViewModel.isArabic ? 'assets/images/new-design/livecare_arabic_logo.svg' @@ -216,23 +189,15 @@ class _HomePageState extends State { ], ), ), - Container( - width: double.infinity, - height: projectViewModel.isArabic ? 110 : 80) + Container(width: double.infinity, height: projectViewModel.isArabic ? 110 : 80) ], ), Positioned( top: 155, left: MediaQuery.of(context).size.width * - (MediaQuery.of(context).orientation == - Orientation.landscape - ? 0.02 - : 0.03), + (MediaQuery.of(context).orientation == Orientation.landscape ? 0.02 : 0.03), right: MediaQuery.of(context).size.width * - (MediaQuery.of(context).orientation == - Orientation.landscape - ? 0.02 - : 0.03), + (MediaQuery.of(context).orientation == Orientation.landscape ? 0.02 : 0.03), child: (!model.isLogin) ? Container( width: double.infinity, @@ -240,14 +205,10 @@ class _HomePageState extends State { decoration: BoxDecoration( color: HexColor('#A59E9E'), shape: BoxShape.rectangle, - border: Border.all( - color: Colors.transparent, width: 0.5), - borderRadius: - BorderRadius.all(Radius.circular(9)), + border: Border.all(color: Colors.transparent, width: 0.5), + borderRadius: BorderRadius.all(Radius.circular(9)), image: DecorationImage( - image: ExactAssetImage( - 'assets/images/bg_graphic.png'), - fit: BoxFit.cover)), + image: ExactAssetImage('assets/images/bg_graphic.png'), fit: BoxFit.cover)), child: Container( margin: EdgeInsets.all(5), child: Column( @@ -263,37 +224,30 @@ class _HomePageState extends State { fontSize: 23, ), Texts( - TranslationBase.of(context) - .myMedicalFileSubTitle, + TranslationBase.of(context).myMedicalFileSubTitle, color: Colors.black, fontSize: 16, ), Align( - alignment: projectViewModel.isArabic - ? Alignment.bottomLeft - : Alignment.bottomRight, + alignment: + projectViewModel.isArabic ? Alignment.bottomLeft : Alignment.bottomRight, child: InkWell( onTap: () { widget.goToMyProfile(); }, child: Container( - margin: EdgeInsets.only( - left: 15, right: 15), + margin: EdgeInsets.only(left: 15, right: 15), width: 90, height: 30, decoration: BoxDecoration( color: HexColor('#D81A2E'), shape: BoxShape.rectangle, - border: Border.all( - color: Colors.transparent, - width: 0.5), - borderRadius: BorderRadius.all( - Radius.circular(0)), + border: Border.all(color: Colors.transparent, width: 0.5), + borderRadius: BorderRadius.all(Radius.circular(0)), ), child: Center( child: Texts( - TranslationBase.of(context) - .viewMore, + TranslationBase.of(context).viewMore, color: Colors.white, fontWeight: FontWeight.w700, fontSize: 12, @@ -312,14 +266,10 @@ class _HomePageState extends State { decoration: BoxDecoration( color: HexColor('#A59E9E'), shape: BoxShape.rectangle, - border: Border.all( - color: Colors.transparent, width: 0.5), - borderRadius: - BorderRadius.all(Radius.circular(9)), + border: Border.all(color: Colors.transparent, width: 0.5), + borderRadius: BorderRadius.all(Radius.circular(9)), image: DecorationImage( - image: ExactAssetImage( - 'assets/images/bg_graphic.png'), - fit: BoxFit.cover), + image: ExactAssetImage('assets/images/bg_graphic.png'), fit: BoxFit.cover), ), child: Container( margin: EdgeInsets.all(5), @@ -327,81 +277,51 @@ class _HomePageState extends State { children: [ Row( children: [ - if (projectViewModel.user != null && - model.isLogin) + if (projectViewModel.user != null && model.isLogin) Expanded( child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, children: [ SizedBox( height: 8, ), - model.user.cRSVerificationStatus == - 2 + model.user.cRSVerificationStatus == 2 ? Row( children: [ Texts( - model.user - .firstName + - " " + - model.user - .lastName, - color: Colors - .grey[100], + model.user.firstName + " " + model.user.lastName, + color: Colors.grey[100], bold: true, fontSize: 15, ), Container( - margin: EdgeInsets - .fromLTRB( - 8.0, - 0.0, - 8.0, - 0.0), + margin: EdgeInsets.fromLTRB(8.0, 0.0, 8.0, 0.0), child: SvgPicture.asset( "assets/images/new-design/verification_check.svg"), ), ], ) - : model.user.cRSVerificationStatus == - 3 + : model.user.cRSVerificationStatus == 3 ? Row( children: [ Texts( - model.user - .firstName + - " " + - model.user - .lastName, - color: Colors - .grey[100], + model.user.firstName + " " + model.user.lastName, + color: Colors.grey[100], bold: true, fontSize: 15, ), Container( - margin: EdgeInsets - .fromLTRB( - 8.0, - 0.0, - 8.0, - 0.0), - child: SvgPicture - .asset( - "assets/images/new-design/pending.svg"), + margin: EdgeInsets.fromLTRB(8.0, 0.0, 8.0, 0.0), + child: SvgPicture.asset( + "assets/images/new-design/pending.svg"), ), ], ) : Row( children: [ Texts( - model.user - .firstName + - " " + - model.user - .lastName, - color: Colors - .grey[100], + model.user.firstName + " " + model.user.lastName, + color: Colors.grey[100], bold: true, fontSize: 15, ), @@ -435,17 +355,14 @@ class _HomePageState extends State { decoration: BoxDecoration( color: HexColor('#D81A2E'), shape: BoxShape.rectangle, - border: Border.all( - color: Colors.transparent, - width: 0.5), + border: Border.all(color: Colors.transparent, width: 0.5), borderRadius: BorderRadius.all( Radius.circular(5), ), ), child: Center( child: Texts( - TranslationBase.of(context) - .myMedicalFile, + TranslationBase.of(context).myMedicalFile, color: Colors.white, fontSize: 12, textAlign: TextAlign.center, @@ -484,10 +401,8 @@ class _HomePageState extends State { width: 25, height: 40, ), - Texts( - '${model.weightKg} ${TranslationBase.of(context).kg}', - color: Colors.white, - fontSize: 17) + Texts('${model.weightKg} ${TranslationBase.of(context).kg}', + color: Colors.white, fontSize: 17) ], ), ), @@ -502,9 +417,7 @@ class _HomePageState extends State { width: 35, height: 40, ), - Texts('${model.booldType}', - color: Colors.white, - fontSize: 17) + Texts('${model.booldType}', color: Colors.white, fontSize: 17) ], ), ), @@ -518,12 +431,10 @@ class _HomePageState extends State { ], ), Padding( - padding: - const EdgeInsets.only(bottom: 15, right: 15, left: 15), + padding: const EdgeInsets.only(bottom: 15, right: 15, left: 15), child: InkWell( onTap: () { - Navigator.of(context).push(MaterialPageRoute( - builder: (context) => PackagesHomePage())); + Navigator.of(context).push(MaterialPageRoute(builder: (context) => PackagesHomePage())); }, child: Container( decoration: BoxDecoration( @@ -551,131 +462,126 @@ class _HomePageState extends State { if (projectViewModel.havePrivilege(64) || projectViewModel.havePrivilege(65) || projectViewModel.havePrivilege(67)) - Container( - margin: EdgeInsets.only(left: 15, right: 15), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - if (projectViewModel.havePrivilege(64)) - DashboardItem( - onTap: () { - Navigator.push( - context, - FadePage( - page: HomeHealthCarePage(), - ), - ); - }, - child: Center( - child: Padding( - padding: const EdgeInsets.all(15.0), - child: Column( - children: [ - Image.asset( - 'assets/images/home_health_care_icon.png', - width: 50, - height: 50, - ), - SizedBox( - height: 10, - ), - Texts( - TranslationBase.of(context) - .homeHealthCare, - textAlign: TextAlign.center, - color: Colors.white, - fontWeight: FontWeight.w700, - fontSize: - SizeConfig.textMultiplier * 1.55, - ) - ], + if (model.user.outSA == 0) + Container( + margin: EdgeInsets.only(left: 15, right: 15), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + if (projectViewModel.havePrivilege(64)) + DashboardItem( + onTap: () { + Navigator.push( + context, + FadePage( + page: HomeHealthCarePage(), + ), + ); + }, + child: Center( + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Column( + children: [ + Image.asset( + 'assets/images/home_health_care_icon.png', + width: 50, + height: 50, + ), + SizedBox( + height: 10, + ), + Texts( + TranslationBase.of(context).homeHealthCare, + textAlign: TextAlign.center, + color: Colors.white, + fontWeight: FontWeight.w700, + fontSize: SizeConfig.textMultiplier * 1.55, + ) + ], + ), ), ), + height: MediaQuery.of(context).size.width * 0.4, + imageName: 'home_healthcare_service_bg.png', + opacity: 0.5, ), - height: MediaQuery.of(context).size.width * 0.4, - imageName: 'home_healthcare_service_bg.png', - opacity: 0.5, - ), - if (projectViewModel.havePrivilege(65)) - DashboardItem( - onTap: () => getPharmacyToken(model), - child: Center( - child: Padding( - padding: const EdgeInsets.all(15.0), - child: Column( - children: [ - Image.asset( - 'assets/images/pharmacy_logo.png', - width: 40, - height: 40, - ), - SizedBox( - height: 20, - ), - Texts( - TranslationBase.of(context) - .onlinePharmacy, - textAlign: TextAlign.center, - color: Colors.white, - fontWeight: FontWeight.w700, - fontSize: - SizeConfig.textMultiplier * 1.55, - ) - ], + if (projectViewModel.havePrivilege(65)) + DashboardItem( + onTap: () => getPharmacyToken(model), + child: Center( + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Column( + children: [ + Image.asset( + 'assets/images/pharmacy_logo.png', + width: 40, + height: 40, + ), + SizedBox( + height: 20, + ), + Texts( + TranslationBase.of(context).onlinePharmacy, + textAlign: TextAlign.center, + color: Colors.white, + fontWeight: FontWeight.w700, + fontSize: SizeConfig.textMultiplier * 1.55, + ) + ], + ), ), ), + height: MediaQuery.of(context).size.width * 0.4, + imageName: 'al-habib_onlne_pharmacy_bg.png', ), - height: MediaQuery.of(context).size.width * 0.4, - imageName: 'al-habib_onlne_pharmacy_bg.png', - ), - if (projectViewModel.havePrivilege(67)) - DashboardItem( - onTap: () { - Navigator.push( - context, - FadePage( - page: CMCPage(), - ), - ); - }, - child: Center( - child: Padding( - padding: const EdgeInsets.all(15.0), - child: Column( - children: [ - Image.asset( - 'assets/images/comprehensive_medical_checkup_logo.png', - width: 50, - height: 50, - ), - SizedBox( - height: 10, - ), - Texts( - TranslationBase.of(context).cmcHeading, - textAlign: TextAlign.center, - color: Colors.white, - fontWeight: FontWeight.w700, - fontSize: - SizeConfig.textMultiplier * 1.55, - ) - ], + if (projectViewModel.havePrivilege(67)) + DashboardItem( + onTap: () { + Navigator.push( + context, + FadePage( + page: CMCPage(), + ), + ); + }, + child: Center( + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Column( + children: [ + Image.asset( + 'assets/images/comprehensive_medical_checkup_logo.png', + width: 50, + height: 50, + ), + SizedBox( + height: 10, + ), + Texts( + TranslationBase.of(context).cmcHeading, + textAlign: TextAlign.center, + color: Colors.white, + fontWeight: FontWeight.w700, + fontSize: SizeConfig.textMultiplier * 1.55, + ) + ], + ), ), ), + height: MediaQuery.of(context).size.width * 0.4, + color: HexColor("#747C80"), + imageName: 'emergency_service_image.png', ), - height: MediaQuery.of(context).size.width * 0.4, - color: HexColor("#747C80"), - imageName: 'emergency_service_image.png', - ), - ], + ], + ), ), - ), SizedBox( height: 8, ), InkWell( - onTap: () => - Navigator.push(context, FadePage(page: PaymentService())), + onTap: () => Navigator.push(context, FadePage(page: PaymentService())), child: Container( margin: EdgeInsets.only(left: 15, right: 15), child: Row( @@ -696,8 +602,7 @@ class _HomePageState extends State { height: 5, ), Texts( - TranslationBase.of(context) - .onlinePaymentService, + TranslationBase.of(context).onlinePaymentService, textAlign: TextAlign.center, color: Colors.black87, bold: false, @@ -728,8 +633,7 @@ class _HomePageState extends State { height: 10, ), Texts( - TranslationBase.of(context) - .offersAndPackages, + TranslationBase.of(context).offersAndPackages, textAlign: TextAlign.center, color: Colors.black87, bold: false, @@ -769,13 +673,11 @@ class _HomePageState extends State { height: 10, ), Texts( - TranslationBase.of(context) - .emergencyServices, + TranslationBase.of(context).emergencyServices, textAlign: TextAlign.center, color: Colors.black87, bold: false, - fontSize: - SizeConfig.textMultiplier * 1.7, + fontSize: SizeConfig.textMultiplier * 1.7, ) ], ), @@ -813,8 +715,7 @@ class _HomePageState extends State { fontWeight: FontWeight.normal, ), Texts( - TranslationBase.of(context) - .viewAllHabibMedicalService, + TranslationBase.of(context).viewAllHabibMedicalService, color: Colors.white, fontWeight: FontWeight.normal, fontSize: 10, @@ -835,15 +736,13 @@ class _HomePageState extends State { opacity: 0.5, color: Colors.grey[700], width: MediaQuery.of(context).size.width * 0.45, - onTap: () => Navigator.push( - context, FadePage(page: AllHabibMedicalService())), + onTap: () => Navigator.push(context, FadePage(page: AllHabibMedicalService())), ), DashboardItem( onTap: () { // Navigator.push( // context, FadePage(page: FeedbackHomePage())); - Navigator.push( - context, FadePage(page: ContactUsPage())); + Navigator.push(context, FadePage(page: ContactUsPage())); }, child: Container( width: double.infinity, @@ -965,10 +864,8 @@ class DashboardItem extends StatelessWidget { ? DecorationImage( image: ExactAssetImage('assets/images/$imageName'), fit: BoxFit.cover, - colorFilter: hasColorFilter - ? new ColorFilter.mode( - Colors.black.withOpacity(0.2), BlendMode.dstIn) - : null, + colorFilter: + hasColorFilter ? new ColorFilter.mode(Colors.black.withOpacity(0.2), BlendMode.dstIn) : null, ) : null, ), diff --git a/lib/pages/medical/my_trackers/Weight/WeightMonthlyPage.dart b/lib/pages/medical/my_trackers/Weight/WeightMonthlyPage.dart index 0de0f451..e3aa9755 100644 --- a/lib/pages/medical/my_trackers/Weight/WeightMonthlyPage.dart +++ b/lib/pages/medical/my_trackers/Weight/WeightMonthlyPage.dart @@ -32,7 +32,16 @@ class WeightMonthlyPage extends StatelessWidget { body: model.weighMonthTimeSeriesData.isEmpty ? Container( child: Center( - child: Texts(TranslationBase.of(context).noDataAvailable), + child: Container( + child: Center( + child: MonthLineChartCurved( + horizontalInterval: 1.0, + title: TranslationBase.of(context).weight, + timeSeries: model.weighMonthTimeSeriesData, + indexes: model.weighMonthTimeSeriesData.length ~/ 5.5 ?? 0, + ), + ), + ), ), ) : ListView( diff --git a/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart b/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart index 47afd9fe..d0c92da1 100644 --- a/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart +++ b/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart @@ -30,7 +30,12 @@ class WeightWeeklyPage extends StatelessWidget { child: Center( child: Container( child: Center( - child: Texts(TranslationBase.of(context).noDataAvailable), + child: LineChartCurved( + horizontalInterval: 1.0, + title: TranslationBase.of(context).weight, + timeSeries: model.weightWeekTimeSeriesData, + indexes: model.weightWeekTimeSeriesData.length ~/ 5.5 ?? 0, + ), ), ), ), diff --git a/lib/pages/medical/my_trackers/Weight/WeightYeaPage.dart b/lib/pages/medical/my_trackers/Weight/WeightYeaPage.dart index a3b443d4..f8fc4dc4 100644 --- a/lib/pages/medical/my_trackers/Weight/WeightYeaPage.dart +++ b/lib/pages/medical/my_trackers/Weight/WeightYeaPage.dart @@ -31,7 +31,16 @@ class WeightYearPage extends StatelessWidget { body: model.weightYearTimeSeriesData.isEmpty ? Container( child: Center( - child: Texts(TranslationBase.of(context).noDataAvailable), + child: Container( + child: Center( + child: LineChartCurved( + horizontalInterval: 1.0, + title: TranslationBase.of(context).weight, + timeSeries: model.weightYearTimeSeriesData, + indexes: model.weightWeekTimeSeriesData.length ~/ 5.5 ?? 0, + ), + ), + ), ), ) : ListView( diff --git a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart index 8bd180fa..a88bf755 100644 --- a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart +++ b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart @@ -27,13 +27,13 @@ class AddBloodPressurePage extends StatefulWidget { const AddBloodPressurePage( {Key key, - this.bloodSugarDate, - this.measureTimeSelectedType, - this.isUpdate = false, - this.lineItemNo, - this.model, - this.bloodSystolicValue, - this.bloodDiastolicValue}) + this.bloodSugarDate, + this.measureTimeSelectedType, + this.isUpdate = false, + this.lineItemNo, + this.model, + this.bloodSystolicValue, + this.bloodDiastolicValue}) : super(key: key); @override @@ -42,15 +42,14 @@ class AddBloodPressurePage extends StatefulWidget { class _AddBloodPressurePageState extends State { TextEditingController _bloodSystolicValueController = TextEditingController(); - TextEditingController _bloodDiastolicValueController = - TextEditingController(); + TextEditingController _bloodDiastolicValueController = TextEditingController(); DateTime bloodSugarDate = DateTime.now(); DateTime timeSugarDate = DateTime.now(); int measuredArm = 1; bool isButtonDisabled = false; final List measureTimeEnList = [ - 'Left', - 'Right', + 'Left arm ', + 'Right arm', ]; final List measureTimeArList = [ 'الذراع الأيسر', @@ -81,44 +80,38 @@ class _AddBloodPressurePageState extends State { return AppScaffold( isShowAppBar: true, - appBarTitle: widget.isUpdate - ? TranslationBase.of(context).update - : TranslationBase.of(context).add, + appBarTitle: widget.isUpdate ? TranslationBase.of(context).update : TranslationBase.of(context).add, appBarIcons: widget.isUpdate - ? [ - IconButton( - icon: Icon(Icons.delete), - color: Colors.white, - onPressed: () { - ConfirmDialog dialog = new ConfirmDialog( - context: context, - confirmMessage: 'Remove this measure', - okText: TranslationBase.of(context).ok, - cancelText: TranslationBase.of(context).cancel, - okFunction: () async { - ConfirmDialog.closeAlertDialog(context); + ? [ + IconButton( + icon: Icon(Icons.delete), + color: Colors.white, + onPressed: () { + ConfirmDialog dialog = new ConfirmDialog( + context: context, + confirmMessage: 'Remove this measure', + okText: TranslationBase.of(context).ok, + cancelText: TranslationBase.of(context).cancel, + okFunction: () async { + ConfirmDialog.closeAlertDialog(context); - GifLoaderDialogUtils.showMyDialog(context); - widget.model - .deactivateDiabeticStatus( - lineItemNo: widget.lineItemNo) - .then((value) { - GifLoaderDialogUtils.hideDialog(context); - if (widget.model.state == ViewState.ErrorLocal) - AppToast.showErrorToast( - message: widget.model.error); - else - Navigator.pop(context); - }).catchError((e) { - GifLoaderDialogUtils.hideDialog(context); - AppToast.showErrorToast(message: widget.model.error); - }); - }, - cancelFunction: () => {}); - dialog.showAlertDialog(context); - }, - ) - ] + GifLoaderDialogUtils.showMyDialog(context); + widget.model.deactivateDiabeticStatus(lineItemNo: widget.lineItemNo).then((value) { + GifLoaderDialogUtils.hideDialog(context); + if (widget.model.state == ViewState.ErrorLocal) + AppToast.showErrorToast(message: widget.model.error); + else + Navigator.pop(context); + }).catchError((e) { + GifLoaderDialogUtils.hideDialog(context); + AppToast.showErrorToast(message: widget.model.error); + }); + }, + cancelFunction: () => {}); + dialog.showAlertDialog(context); + }, + ) + ] : null, body: SingleChildScrollView( physics: BouncingScrollPhysics(), @@ -151,17 +144,13 @@ class _AddBloodPressurePageState extends State { ), InkWell( onTap: () { - confirmSelectMeasureTimeDialog(projectViewModel.isArabic - ? measureTimeEnList - : measureTimeArList); + confirmSelectMeasureTimeDialog(projectViewModel.isArabic ? measureTimeArList : measureTimeEnList); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -183,22 +172,18 @@ class _AddBloodPressurePageState extends State { showTitleActions: true, minTime: DateTime(DateTime.now().year - 1, 1, 1), maxTime: DateTime.now(), onConfirm: (date) { - setState( - () { - bloodSugarDate = date; - }, - ); + setState( + () { + bloodSugarDate = date; }, - currentTime: bloodSugarDate, - locale: projectViewModel.localeType); + ); + }, currentTime: bloodSugarDate, locale: projectViewModel.localeType); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -213,30 +198,22 @@ class _AddBloodPressurePageState extends State { ), InkWell( onTap: () { - DatePicker.showTimePicker(context, showTitleActions: true, - onConfirm: (date) { - setState( - () { - timeSugarDate = date; - }, - ); + DatePicker.showTimePicker(context, showTitleActions: true, onConfirm: (date) { + setState( + () { + timeSugarDate = date; }, - currentTime: timeSugarDate, - locale: projectViewModel.localeType); + ); + }, currentTime: timeSugarDate, locale: projectViewModel.localeType); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Texts(TranslationBase.of(context).time), - Texts(getTime()) - ], + children: [Texts(TranslationBase.of(context).time), Texts(getTime())], ), ), ), @@ -254,23 +231,18 @@ class _AddBloodPressurePageState extends State { loading: widget.model.state == ViewState.BusyLocal, label: TranslationBase.of(context).save.toUpperCase(), textColor: Colors.white, - color: isButtonDisabled - ? Colors.grey[900] - : Colors.grey, + color: isButtonDisabled ? Colors.grey[900] : Colors.grey, onTap: () async { - if (_bloodSystolicValueController.text.isNotEmpty && - _bloodDiastolicValueController.text.isNotEmpty) { + if (_bloodSystolicValueController.text.isNotEmpty && _bloodDiastolicValueController.text.isNotEmpty) { GifLoaderDialogUtils.showMyDialog(context); widget.model .addORUpdateDiabtecResult( isUpdate: widget.isUpdate, bloodPressureDate: - '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', - diastolicPressure: - _bloodDiastolicValueController.text.toString(), - systolicePressure: - _bloodSystolicValueController.text.toString(), + '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', + diastolicPressure: _bloodDiastolicValueController.text.toString(), + systolicePressure: _bloodSystolicValueController.text.toString(), measuredArm: measuredArm, ) .then((value) { @@ -318,7 +290,7 @@ class _AddBloodPressurePageState extends State { } void validateForm() { - print("_bloodSystolicValueController "+_bloodSystolicValueController.text.length.toString()); + print("_bloodSystolicValueController " + _bloodSystolicValueController.text.length.toString()); if (measureTimeSelectedType != 'Left Arm' && _bloodSystolicValueController.text.length > 0 && _bloodDiastolicValueController.text.length > 0) { @@ -348,5 +320,4 @@ class _AddBloodPressurePageState extends State { // }); // } } - } diff --git a/lib/pages/medical/my_trackers/widget/LineChartCurved.dart b/lib/pages/medical/my_trackers/widget/LineChartCurved.dart index 70f10407..1182602f 100644 --- a/lib/pages/medical/my_trackers/widget/LineChartCurved.dart +++ b/lib/pages/medical/my_trackers/widget/LineChartCurved.dart @@ -10,11 +10,7 @@ class LineChartCurved extends StatelessWidget { final int indexes; final double horizontalInterval; - LineChartCurved( - {this.title, - this.timeSeries, - this.indexes, - this.horizontalInterval = 20.0}); + LineChartCurved({this.title, this.timeSeries, this.indexes, this.horizontalInterval = 20.0}); List xAxixs = List(); List yAxixs = List(); @@ -40,8 +36,7 @@ class LineChartCurved extends StatelessWidget { ), Text( title, - style: TextStyle( - color: Colors.black, fontSize: 15, letterSpacing: 2), + style: TextStyle(color: Colors.black, fontSize: 15, letterSpacing: 2), textAlign: TextAlign.center, ), SizedBox( @@ -49,8 +44,7 @@ class LineChartCurved extends StatelessWidget { ), Expanded( child: Padding( - padding: const EdgeInsets.only( - right: 18.0, left: 16.0, top: 15, bottom: 15), + padding: const EdgeInsets.only(right: 18.0, left: 16.0, top: 15, bottom: 15), child: LineChart( sampleData1(context), swapAnimationDuration: const Duration(milliseconds: 250), @@ -97,10 +91,7 @@ class LineChartCurved extends StatelessWidget { handleBuiltInTouches: true, ), gridData: FlGridData( - horizontalInterval: horizontalInterval, - show: true, - drawVerticalLine: true, - drawHorizontalLine: true), + horizontalInterval: horizontalInterval, show: true, drawVerticalLine: true, drawHorizontalLine: true), titlesData: FlTitlesData( bottomTitles: SideTitles( showTitles: true, @@ -196,6 +187,9 @@ class LineChartCurved extends StatelessWidget { List getData(context) { List spots = List(); + if (timeSeries.length == 0) { + spots.add(FlSpot(0, 0)); + } for (int index = 0; index < timeSeries.length; index++) { spots.add(FlSpot(index.toDouble(), timeSeries[index].sales)); } diff --git a/lib/pages/medical/my_trackers/widget/MonthLineChartCurved.dart b/lib/pages/medical/my_trackers/widget/MonthLineChartCurved.dart index 607f3ab0..a5c21982 100644 --- a/lib/pages/medical/my_trackers/widget/MonthLineChartCurved.dart +++ b/lib/pages/medical/my_trackers/widget/MonthLineChartCurved.dart @@ -10,11 +10,7 @@ class MonthLineChartCurved extends StatelessWidget { final int indexes; final double horizontalInterval; - MonthLineChartCurved( - {this.title, - this.timeSeries, - this.indexes, - this.horizontalInterval = 15.0}); + MonthLineChartCurved({this.title, this.timeSeries, this.indexes, this.horizontalInterval = 15.0}); List xAxixs = List(); List yAxixs = List(); @@ -40,8 +36,7 @@ class MonthLineChartCurved extends StatelessWidget { ), Text( title, - style: TextStyle( - color: Colors.black, fontSize: 15, letterSpacing: 2), + style: TextStyle(color: Colors.black, fontSize: 15, letterSpacing: 2), textAlign: TextAlign.center, ), SizedBox( @@ -49,8 +44,7 @@ class MonthLineChartCurved extends StatelessWidget { ), Expanded( child: Padding( - padding: const EdgeInsets.only( - right: 18.0, left: 16.0, top: 15, bottom: 15), + padding: const EdgeInsets.only(right: 18.0, left: 16.0, top: 15, bottom: 15), child: LineChart( sampleData1(context), swapAnimationDuration: const Duration(milliseconds: 250), @@ -97,10 +91,7 @@ class MonthLineChartCurved extends StatelessWidget { handleBuiltInTouches: true, ), gridData: FlGridData( - horizontalInterval: horizontalInterval, - show: true, - drawVerticalLine: true, - drawHorizontalLine: true), + horizontalInterval: horizontalInterval, show: true, drawVerticalLine: true, drawHorizontalLine: true), titlesData: FlTitlesData( bottomTitles: SideTitles( showTitles: true, @@ -180,6 +171,9 @@ class MonthLineChartCurved extends StatelessWidget { List getData(context) { List spots = List(); + if (timeSeries.length == 0) { + spots.add(FlSpot(0, 0)); + } for (int index = 0; index < timeSeries.length; index++) { spots.add(FlSpot(index.toDouble(), timeSeries[index].sales)); } diff --git a/lib/services/clinic_services/get_clinic_service.dart b/lib/services/clinic_services/get_clinic_service.dart index 99345030..2b2d933f 100644 --- a/lib/services/clinic_services/get_clinic_service.dart +++ b/lib/services/clinic_services/get_clinic_service.dart @@ -35,8 +35,7 @@ class ClinicListService extends BaseService { dynamic localRes; - await baseAppClient.post(GET_CLINICS_LIST_URL, - onSuccess: (response, statusCode) async { + await baseAppClient.post(GET_CLINICS_LIST_URL, onSuccess: (response, statusCode) async { localRes = response; }, onFailure: (String error, int statusCode) { throw error; @@ -54,7 +53,7 @@ class ClinicListService extends BaseService { "VersionID": req.VersionID, "Channel": req.Channel, "generalid": 'Cs2020@2016\$2958', - "PatientOutSA": 0, + "PatientOutSA": user.outSA, "TokenID": "", "IsActiveAppointment": true, "DeviceTypeID": req.DeviceTypeID, @@ -65,12 +64,11 @@ class ClinicListService extends BaseService { dynamic localRes; - await baseAppClient.post(GET_ACTIVE_APPOINTMENTS_LIST_URL, - onSuccess: (response, statusCode) async { - localRes = response; - }, onFailure: (String error, int statusCode) { - throw error; - }, body: request); + await baseAppClient.post(GET_ACTIVE_APPOINTMENTS_LIST_URL, onSuccess: (response, statusCode) async { + localRes = response; + }, onFailure: (String error, int statusCode) { + throw error; + }, body: request); return Future.value(localRes); } @@ -92,8 +90,7 @@ class ClinicListService extends BaseService { dynamic localRes; - await baseAppClient.post(GET_PROJECTS_LIST, - onSuccess: (response, statusCode) async { + await baseAppClient.post(GET_PROJECTS_LIST, onSuccess: (response, statusCode) async { localRes = response; }, onFailure: (String error, int statusCode) { throw error; @@ -101,15 +98,12 @@ class ClinicListService extends BaseService { return Future.value(localRes); } - Future getChiefComplaintsList( - int clinicID, int projectID, BuildContext context, - {doctorId}) async { + Future getChiefComplaintsList(int clinicID, int projectID, BuildContext context, {doctorId}) async { //Utils.showProgressDialog(context); Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { - var data = AuthenticatedUser.fromJson( - await this.sharedPref.getObject(USER_PROFILE)); + var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE)); authUser = data; } @@ -137,8 +131,7 @@ class ClinicListService extends BaseService { dynamic localRes; - await baseAppClient.post(GET_DOCTORS_LIST_URL, - onSuccess: (response, statusCode) async { + await baseAppClient.post(GET_DOCTORS_LIST_URL, onSuccess: (response, statusCode) async { localRes = response; }, onFailure: (String error, int statusCode) { throw error; @@ -146,19 +139,15 @@ class ClinicListService extends BaseService { return Future.value(localRes); } - Future getChiefComplaintDoctorList( - int chiefComplaintID, int projectID, BuildContext context, - {doctorId}) async { + Future getChiefComplaintDoctorList(int chiefComplaintID, int projectID, BuildContext context, {doctorId}) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { - var data = AuthenticatedUser.fromJson( - await this.sharedPref.getObject(USER_PROFILE)); + var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE)); authUser = data; } - if (await this.sharedPref.getDouble(USER_LAT) != null && - await this.sharedPref.getDouble(USER_LONG) != null) { + if (await this.sharedPref.getDouble(USER_LAT) != null && await this.sharedPref.getDouble(USER_LONG) != null) { lat = await this.sharedPref.getDouble(USER_LAT); long = await this.sharedPref.getDouble(USER_LONG); } @@ -179,13 +168,12 @@ class ClinicListService extends BaseService { "Latitude": lat.toString(), "Longitude": long.toString(), "DeviceTypeID": req.DeviceTypeID, - "IsPublicRequest" : true + "IsPublicRequest": true }; dynamic localRes; - await baseAppClient.post(GET_DENTAL_DOCTORS_LIST_URL, - onSuccess: (response, statusCode) async { + await baseAppClient.post(GET_DENTAL_DOCTORS_LIST_URL, onSuccess: (response, statusCode) async { localRes = response; }, onFailure: (String error, int statusCode) { throw error; diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index 67e5c6b9..62aefaaf 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -61,10 +61,8 @@ class Utils { /// Check The Internet Connection static Future checkConnection() async { - ConnectivityResult connectivityResult = - await (Connectivity().checkConnectivity()); - if ((connectivityResult == ConnectivityResult.mobile) || - (connectivityResult == ConnectivityResult.wifi)) { + ConnectivityResult connectivityResult = await (Connectivity().checkConnectivity()); + if ((connectivityResult == ConnectivityResult.mobile) || (connectivityResult == ConnectivityResult.wifi)) { return true; } else { return false; @@ -128,19 +126,11 @@ class Utils { } static String getAppointmentTransID(int projectID, int clinicID, int appoNo) { - return projectID.toString() + - '-' + - clinicID.toString() + - '-' + - appoNo.toString(); + return projectID.toString() + '-' + clinicID.toString() + '-' + appoNo.toString(); } static String getAdvancePaymentTransID(int projectID, int fileNumber) { - return projectID.toString() + - '-' + - fileNumber.toString() + - '-' + - DateTime.now().millisecondsSinceEpoch.toString(); + return projectID.toString() + '-' + fileNumber.toString() + '-' + DateTime.now().millisecondsSinceEpoch.toString(); } bool validateIDBox(String value, type) { @@ -151,7 +141,7 @@ class Utils { } String loginIDPattern(loginType) { - var length = loginType == 1 ? 10 : 7; + var length = loginType == 1 ? 10 : 6; return "([0-9]{" + length.toString() + "})"; } @@ -198,16 +188,10 @@ class Utils { } static validEmail(email) { - return RegExp( - r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+") - .hasMatch(email); + return RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+").hasMatch(email); } - static List myMedicalList( - {ProjectViewModel projectViewModel, - BuildContext context, - bool isLogin, - count}) { + static List myMedicalList({ProjectViewModel projectViewModel, BuildContext context, bool isLogin, count}) { List medical = List(); if (projectViewModel.havePrivilege(5)) { medical.add(InkWell( @@ -237,9 +221,7 @@ class Utils { borderRadius: BorderRadius.circular(8), badgeContent: Container( padding: EdgeInsets.all(2.0), - child: Text(count.toString(), - style: - TextStyle(color: Colors.white, fontSize: 16.0)), + child: Text(count.toString(), style: TextStyle(color: Colors.white, fontSize: 16.0)), ), ), ), @@ -265,8 +247,7 @@ class Utils { if (projectViewModel.havePrivilege(7)) { medical.add(InkWell( - onTap: () => - Navigator.push(context, FadePage(page: RadiologyHomePage())), + onTap: () => Navigator.push(context, FadePage(page: RadiologyHomePage())), child: MedicalProfileItem( title: TranslationBase.of(context).radiology, imagePath: 'radiology_icon.png', @@ -311,8 +292,7 @@ class Utils { if (projectViewModel.havePrivilege(48)) { medical.add(InkWell( - onTap: () => - Navigator.push(context, FadePage(page: ActiveMedicationsPage())), + onTap: () => Navigator.push(context, FadePage(page: ActiveMedicationsPage())), child: MedicalProfileItem( title: TranslationBase.of(context).myMedical, imagePath: 'active_medications.png', @@ -519,8 +499,7 @@ class Utils { } else { AlertDialogBox( context: context, - confirmMessage: - "Please login with your account first to use this feature", + confirmMessage: "Please login with your account first to use this feature", okText: "OK", okFunction: () { AlertDialogBox.closeAlertDialog(context); @@ -552,27 +531,29 @@ class Utils { return medical; } - static Widget loadNetworkImage({@required String url, BoxFit fitting = BoxFit.cover}){ + static Widget loadNetworkImage({@required String url, BoxFit fitting = BoxFit.cover}) { return CachedNetworkImage( - placeholderFadeInDuration: Duration(milliseconds: 250), - fit: fitting, - imageUrl: url, - placeholder: (context, url) => Container( - child: Center( - child: CircularProgressIndicator() - ) - ), - errorWidget: (context, url, error){ - return Icon(Icons.error, color: Colors.red, size: 50,); - } - ); + placeholderFadeInDuration: Duration(milliseconds: 250), + fit: fitting, + imageUrl: url, + placeholder: (context, url) => Container(child: Center(child: CircularProgressIndicator())), + errorWidget: (context, url, error) { + return Icon( + Icons.error, + color: Colors.red, + size: 50, + ); + }); } } - - - -Widget applyShadow({ Color color = Colors.grey, double shadowOpacity = 0.5, double spreadRadius = 2, double blurRadius = 7, Offset offset = const Offset(2, 2), @required Widget child}){ +Widget applyShadow( + {Color color = Colors.grey, + double shadowOpacity = 0.5, + double spreadRadius = 2, + double blurRadius = 7, + Offset offset = const Offset(2, 2), + @required Widget child}) { return Container( decoration: BoxDecoration( boxShadow: [ @@ -588,10 +569,8 @@ Widget applyShadow({ Color color = Colors.grey, double shadowOpacity = 0.5, doub ); } - Future userData() async { - var userData = AuthenticatedUser.fromJson( - await AppSharedPreferences().getObject(MAIN_USER)); + var userData = AuthenticatedUser.fromJson(await AppSharedPreferences().getObject(MAIN_USER)); return userData; } @@ -603,15 +582,12 @@ extension IndexedIterable on Iterable { } } -openAppStore({String androidPackageName, String iOSAppID}) async{ - if(Platform.isAndroid){ +openAppStore({String androidPackageName, String iOSAppID}) 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"); - - }else if(Platform.isIOS){ + if ((await FlutterHmsGmsAvailability.isGmsAvailable)) launch("market://details?id=com.ejada.hmg"); + if ((await FlutterHmsGmsAvailability.isHmsAvailable)) launch("appmarket://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)"); } From d5c76b5400a4ce6a6f76930bbe9f89d8c9dd983e Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Wed, 4 Aug 2021 10:14:07 +0300 Subject: [PATCH 53/59] jira bugs --- .../blood_pressure/AddBloodPressurePage.dart | 142 +++++++----------- lib/uitl/utils.dart | 127 ++++++---------- 2 files changed, 108 insertions(+), 161 deletions(-) diff --git a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart index beaa8c2a..98058bcf 100644 --- a/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart +++ b/lib/pages/medical/my_trackers/blood_pressure/AddBloodPressurePage.dart @@ -27,13 +27,13 @@ class AddBloodPressurePage extends StatefulWidget { const AddBloodPressurePage( {Key key, - this.bloodSugarDate, - this.measureTimeSelectedType, - this.isUpdate = false, - this.lineItemNo, - this.model, - this.bloodSystolicValue, - this.bloodDiastolicValue}) + this.bloodSugarDate, + this.measureTimeSelectedType, + this.isUpdate = false, + this.lineItemNo, + this.model, + this.bloodSystolicValue, + this.bloodDiastolicValue}) : super(key: key); @override @@ -80,44 +80,38 @@ class _AddBloodPressurePageState extends State { return AppScaffold( isShowAppBar: true, - appBarTitle: widget.isUpdate - ? TranslationBase.of(context).update - : TranslationBase.of(context).add, + appBarTitle: widget.isUpdate ? TranslationBase.of(context).update : TranslationBase.of(context).add, appBarIcons: widget.isUpdate - ? [ - IconButton( - icon: Icon(Icons.delete), - color: Colors.white, - onPressed: () { - ConfirmDialog dialog = new ConfirmDialog( - context: context, - confirmMessage: 'Remove this measure', - okText: TranslationBase.of(context).ok, - cancelText: TranslationBase.of(context).cancel, - okFunction: () async { - ConfirmDialog.closeAlertDialog(context); + ? [ + IconButton( + icon: Icon(Icons.delete), + color: Colors.white, + onPressed: () { + ConfirmDialog dialog = new ConfirmDialog( + context: context, + confirmMessage: 'Remove this measure', + okText: TranslationBase.of(context).ok, + cancelText: TranslationBase.of(context).cancel, + okFunction: () async { + ConfirmDialog.closeAlertDialog(context); - GifLoaderDialogUtils.showMyDialog(context); - widget.model - .deactivateDiabeticStatus( - lineItemNo: widget.lineItemNo) - .then((value) { - GifLoaderDialogUtils.hideDialog(context); - if (widget.model.state == ViewState.ErrorLocal) - AppToast.showErrorToast( - message: widget.model.error); - else - Navigator.pop(context); - }).catchError((e) { - GifLoaderDialogUtils.hideDialog(context); - AppToast.showErrorToast(message: widget.model.error); - }); - }, - cancelFunction: () => {}); - dialog.showAlertDialog(context); - }, - ) - ] + GifLoaderDialogUtils.showMyDialog(context); + widget.model.deactivateDiabeticStatus(lineItemNo: widget.lineItemNo).then((value) { + GifLoaderDialogUtils.hideDialog(context); + if (widget.model.state == ViewState.ErrorLocal) + AppToast.showErrorToast(message: widget.model.error); + else + Navigator.pop(context); + }).catchError((e) { + GifLoaderDialogUtils.hideDialog(context); + AppToast.showErrorToast(message: widget.model.error); + }); + }, + cancelFunction: () => {}); + dialog.showAlertDialog(context); + }, + ) + ] : null, body: SingleChildScrollView( physics: BouncingScrollPhysics(), @@ -156,9 +150,7 @@ class _AddBloodPressurePageState extends State { padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -180,22 +172,18 @@ class _AddBloodPressurePageState extends State { showTitleActions: true, minTime: DateTime(DateTime.now().year - 1, 1, 1), maxTime: DateTime.now(), onConfirm: (date) { - setState( - () { - bloodSugarDate = date; - }, - ); + setState( + () { + bloodSugarDate = date; }, - currentTime: bloodSugarDate, - locale: projectViewModel.localeType); + ); + }, currentTime: bloodSugarDate, locale: projectViewModel.localeType); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -210,30 +198,22 @@ class _AddBloodPressurePageState extends State { ), InkWell( onTap: () { - DatePicker.showTimePicker(context, showTitleActions: true, - onConfirm: (date) { - setState( - () { - timeSugarDate = date; - }, - ); + DatePicker.showTimePicker(context, showTitleActions: true, onConfirm: (date) { + setState( + () { + timeSugarDate = date; }, - currentTime: timeSugarDate, - locale: projectViewModel.localeType); + ); + }, currentTime: timeSugarDate, locale: projectViewModel.localeType); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: Colors.white), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Texts(TranslationBase.of(context).time), - Texts(getTime()) - ], + children: [Texts(TranslationBase.of(context).time), Texts(getTime())], ), ), ), @@ -251,23 +231,18 @@ class _AddBloodPressurePageState extends State { loading: widget.model.state == ViewState.BusyLocal, label: TranslationBase.of(context).save.toUpperCase(), textColor: Colors.white, - color: isButtonDisabled - ? Colors.grey[900] - : Colors.grey, + color: isButtonDisabled ? Colors.grey[900] : Colors.grey, onTap: () async { - if (_bloodSystolicValueController.text.isNotEmpty && - _bloodDiastolicValueController.text.isNotEmpty) { + if (_bloodSystolicValueController.text.isNotEmpty && _bloodDiastolicValueController.text.isNotEmpty) { GifLoaderDialogUtils.showMyDialog(context); widget.model .addORUpdateDiabtecResult( isUpdate: widget.isUpdate, bloodPressureDate: - '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', - diastolicPressure: - _bloodDiastolicValueController.text.toString(), - systolicePressure: - _bloodSystolicValueController.text.toString(), + '${bloodSugarDate.year}-${bloodSugarDate.month}-${bloodSugarDate.day} ${timeSugarDate.hour}:${timeSugarDate.minute}:00', + diastolicPressure: _bloodDiastolicValueController.text.toString(), + systolicePressure: _bloodSystolicValueController.text.toString(), measuredArm: measuredArm, ) .then((value) { @@ -315,7 +290,7 @@ class _AddBloodPressurePageState extends State { } void validateForm() { - print("_bloodSystolicValueController "+_bloodSystolicValueController.text.length.toString()); + print("_bloodSystolicValueController " + _bloodSystolicValueController.text.length.toString()); if (measureTimeSelectedType != 'Left Arm' && _bloodSystolicValueController.text.length > 0 && _bloodDiastolicValueController.text.length > 0) { @@ -345,5 +320,4 @@ class _AddBloodPressurePageState extends State { // }); // } } - } diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index 139aa093..5636de56 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -195,9 +195,7 @@ class Utils { List medical = List(); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(5) - ? Navigator.push(context, FadePage(page: MyAppointments())) - : null, + onTap: () => projectViewModel.havePrivilege(5) ? Navigator.push(context, FadePage(page: MyAppointments())) : null, child: isLogin ? Stack(children: [ MedicalProfileItem( @@ -206,26 +204,27 @@ class Utils { subTitle: TranslationBase.of(context).myAppointmentsList, hasBadge: true, isEnable: projectViewModel.havePrivilege(5)), - Positioned( - right: 0.0, - child: Badge( - toAnimate: false, - position: BadgePosition.topEnd(), - shape: BadgeShape.circle, - badgeColor: secondaryColor.withOpacity(1.0), - borderRadius: BorderRadius.circular(8), - badgeContent: Container( - padding: EdgeInsets.all(2.0), - child: Text(count.toString(), style: TextStyle(color: Colors.white, fontSize: 16.0)), - ), + Positioned( + right: 0.0, + child: Badge( + toAnimate: false, + position: BadgePosition.topEnd(), + shape: BadgeShape.circle, + badgeColor: secondaryColor.withOpacity(1.0), + borderRadius: BorderRadius.circular(8), + badgeContent: Container( + padding: EdgeInsets.all(2.0), + child: Text(count.toString(), style: TextStyle(color: Colors.white, fontSize: 16.0)), ), ), - ]) - : MedicalProfileItem( - title: TranslationBase.of(context).myAppointments, - imagePath: 'my_appointment_icon.png', - subTitle: TranslationBase.of(context).myAppointmentsList, - hasBadge: true,isEnable: projectViewModel.havePrivilege(5), + ), + ]) + : MedicalProfileItem( + title: TranslationBase.of(context).myAppointments, + imagePath: 'my_appointment_icon.png', + subTitle: TranslationBase.of(context).myAppointmentsList, + hasBadge: true, + isEnable: projectViewModel.havePrivilege(5), ), )); if (projectViewModel.havePrivilege(10)) { @@ -239,11 +238,9 @@ class Utils { )); } - - medical.add(InkWell( - onTap: () =>projectViewModel.havePrivilege(7) - ? Navigator.push(context, FadePage(page: RadiologyHomePage())) - : null, + medical.add(InkWell( + onTap: () => + projectViewModel.havePrivilege(7) ? Navigator.push(context, FadePage(page: RadiologyHomePage())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).radiology, imagePath: 'radiology_icon.png', @@ -253,9 +250,8 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(12) - ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) - : null, + onTap: () => + projectViewModel.havePrivilege(12) ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).medicines, imagePath: 'prescription_icon.png', @@ -279,11 +275,9 @@ class Utils { ), )); - - medical.add(InkWell( - onTap: () =>projectViewModel.havePrivilege(48) - ? Navigator.push(context, FadePage(page: ActiveMedicationsPage())) - : null, + medical.add(InkWell( + onTap: () => + projectViewModel.havePrivilege(48) ? Navigator.push(context, FadePage(page: ActiveMedicationsPage())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).myMedical, imagePath: 'active_medications.png', @@ -309,9 +303,8 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(14) - ? Navigator.push(context, FadePage(page: EyeMeasurementsPage())) - : null, + onTap: () => + projectViewModel.havePrivilege(14) ? Navigator.push(context, FadePage(page: EyeMeasurementsPage())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).eye, imagePath: 'eye_measurement_icon.png', @@ -321,9 +314,7 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(22) - ? Navigator.push(context, FadePage(page: InsuranceCard())) - : null, + onTap: () => projectViewModel.havePrivilege(22) ? Navigator.push(context, FadePage(page: InsuranceCard())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).insurance, imagePath: 'insurance_card_icon.png', @@ -344,9 +335,8 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(18) - ? Navigator.push(context, FadePage(page: InsuranceApproval())) - : null, + onTap: () => + projectViewModel.havePrivilege(18) ? Navigator.push(context, FadePage(page: InsuranceApproval())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).insuranceApproval, imagePath: 'insurance_approvals_icon.png', @@ -356,9 +346,7 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(23) - ? Navigator.push(context, FadePage(page: AllergiesPage())) - : null, + onTap: () => projectViewModel.havePrivilege(23) ? Navigator.push(context, FadePage(page: AllergiesPage())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).allergies, imagePath: 'my_allergies_icon.png', @@ -368,9 +356,7 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(26) - ? Navigator.push(context, FadePage(page: MyVaccines())) - : null, + onTap: () => projectViewModel.havePrivilege(26) ? Navigator.push(context, FadePage(page: MyVaccines())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).myVaccines, imagePath: 'my_vaccines_icon.png', @@ -380,9 +366,8 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(20) - ? Navigator.push(context, FadePage(page: HomeReportPage())) - : null, + onTap: () => + projectViewModel.havePrivilege(20) ? Navigator.push(context, FadePage(page: HomeReportPage())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).medical, imagePath: 'medical_reports_icon.png', @@ -392,9 +377,8 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(19) - ? Navigator.push(context, FadePage(page: MonthlyReportsPage())) - : null, + onTap: () => + projectViewModel.havePrivilege(19) ? Navigator.push(context, FadePage(page: MonthlyReportsPage())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).monthly, imagePath: 'monthly_reports_icon.png', @@ -404,9 +388,8 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(16) - ? Navigator.push(context, FadePage(page: PatientSickLeavePage())) - : null, + onTap: () => + projectViewModel.havePrivilege(16) ? Navigator.push(context, FadePage(page: PatientSickLeavePage())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).sick, imagePath: 'sick_leaves_icons.png', @@ -416,9 +399,7 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(47) - ? Navigator.push(context, FadePage(page: MyBalancePage())) - : null, + onTap: () => projectViewModel.havePrivilege(47) ? Navigator.push(context, FadePage(page: MyBalancePage())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).myBalance, imagePath: 'check-in.png', @@ -436,9 +417,7 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(24) - ? Navigator.push(context, FadePage(page: MyTrackers())) - : null, + onTap: () => projectViewModel.havePrivilege(24) ? Navigator.push(context, FadePage(page: MyTrackers())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).myTrackers, imagePath: 'my_tracker_icon.png', @@ -448,9 +427,8 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(30) - ? Navigator.push(context, FadePage(page: SmartWatchInstructions())) - : null, + onTap: () => + projectViewModel.havePrivilege(30) ? Navigator.push(context, FadePage(page: SmartWatchInstructions())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).smartWatches, imagePath: 'smartwatch_icon.png', @@ -460,9 +438,8 @@ class Utils { )); medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(28) - ? Navigator.push(context, FadePage(page: AskDoctorHomPage())) - : null, + onTap: () => + projectViewModel.havePrivilege(28) ? Navigator.push(context, FadePage(page: AskDoctorHomPage())) : null, child: MedicalProfileItem( title: TranslationBase.of(context).askYour, imagePath: 'ask_doctor_icon.png', @@ -501,9 +478,7 @@ class Utils { } medical.add(InkWell( - onTap: () => projectViewModel.havePrivilege(40) - ? launch('whatsapp://send?phone=18885521858&text=') - : null, + onTap: () => projectViewModel.havePrivilege(40) ? launch('whatsapp://send?phone=18885521858&text=') : null, child: MedicalProfileItem( title: TranslationBase.of(context).chatbot, imagePath: 'insurance_approvals_icon.png', @@ -515,8 +490,7 @@ class Utils { return medical; } - static Widget loadNetworkImage( - {@required String url, BoxFit fitting = BoxFit.cover}) { + static Widget loadNetworkImage({@required String url, BoxFit fitting = BoxFit.cover}) { return CachedNetworkImage( placeholderFadeInDuration: Duration(milliseconds: 250), fit: fitting, @@ -569,8 +543,7 @@ extension IndexedIterable on Iterable { openAppStore({String androidPackageName, String iOSAppID}) async { if (Platform.isAndroid) { - assert(!(androidPackageName == null), - "Should have valid value in androidPackageName parameter"); + assert(!(androidPackageName == null), "Should have valid value in androidPackageName parameter"); if ((await FlutterHmsGmsAvailability.isGmsAvailable)) launch("market://details?id=com.ejada.hmg"); if ((await FlutterHmsGmsAvailability.isHmsAvailable)) launch("appmarket://details?id=com.ejada.hmg"); } else if (Platform.isIOS) { From 1ed76e91aa8c71e08ffdafbe4306ca5487747e0d Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Wed, 4 Aug 2021 14:28:58 +0300 Subject: [PATCH 54/59] fixing dashboard issue --- lib/pages/landing/home_page.dart | 376 +++++++++++++++++-------------- 1 file changed, 206 insertions(+), 170 deletions(-) diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index 3e51b668..b918d487 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -81,85 +81,81 @@ class _HomePageState extends State { child: Row( children: [ Expanded( - child: Visibility( - visible: model.user.outSA == 1 ? false : true, + child: Container( + height: 125, + padding: EdgeInsets.all(5), + margin: EdgeInsets.all(5), + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage("assets/images/new-design/covid_bg_transparent.png"), + fit: BoxFit.fill, + ), + color: Colors.white.withOpacity(0.3), + borderRadius: BorderRadius.all(Radius.circular(5))), child: Container( - height: 125, - padding: EdgeInsets.all(5), - margin: EdgeInsets.all(5), - decoration: BoxDecoration( - image: DecorationImage( - image: - AssetImage("assets/images/new-design/covid_bg_transparent.png"), - fit: BoxFit.fill, + child: Column( + children: [ + Texts( + TranslationBase.of(context).covidTest, + color: Colors.white, + fontWeight: FontWeight.w700, ), - color: Colors.white.withOpacity(0.3), - borderRadius: BorderRadius.all(Radius.circular(5))), - child: Container( - child: Column( - children: [ - Texts( - TranslationBase.of(context).covidTest, - color: Colors.white, - fontWeight: FontWeight.w700, - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - Container( - margin: EdgeInsets.only( - top: 15.0, - ), - child: SvgPicture.asset( - 'assets/images/new-design/covid-19-car.svg', - width: 45.0, - height: 45.0), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Container( + margin: EdgeInsets.only( + top: 15.0, ), - Container( - margin: EdgeInsets.only(top: 5.0), - child: Column( - children: [ - Texts( - TranslationBase.of(context).driveThru, - fontWeight: FontWeight.w700, - color: Colors.white, + child: SvgPicture.asset( + 'assets/images/new-design/covid-19-car.svg', + width: 45.0, + height: 45.0), + ), + Container( + margin: EdgeInsets.only(top: 5.0), + child: Column( + children: [ + Texts( + TranslationBase.of(context).driveThru, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ButtonTheme( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5.0), ), - ButtonTheme( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(5.0), - ), - minWidth: MediaQuery.of(context).size.width * 0.15, - height: 25.0, - child: RaisedButton( - color: Colors.red[800], - textColor: Colors.white, - disabledTextColor: Colors.white, - disabledColor: new Color(0xFFbcc2c4), - onPressed: () { - navigateToCovidDriveThru(); - }, + minWidth: MediaQuery.of(context).size.width * 0.15, + height: 25.0, + child: RaisedButton( + color: Colors.red[800], + textColor: Colors.white, + disabledTextColor: Colors.white, + disabledColor: new Color(0xFFbcc2c4), + onPressed: () { + navigateToCovidDriveThru(); + }, + child: Center( child: Center( child: Center( child: Center( - child: Center( - child: Texts( - TranslationBase.of(context).bookNow, - fontWeight: FontWeight.w700, - color: Colors.white, - ), + child: Texts( + TranslationBase.of(context).bookNow, + fontWeight: FontWeight.w700, + color: Colors.white, ), ), ), ), ), ), - ], - ), + ), + ], ), - ], - ), - ], - ), + ), + ], + ), + ], ), ), ), @@ -462,121 +458,161 @@ class _HomePageState extends State { if (projectViewModel.havePrivilege(64) || projectViewModel.havePrivilege(65) || projectViewModel.havePrivilege(67)) - if (model.user.outSA == 0) - Container( - margin: EdgeInsets.only(left: 15, right: 15), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - if (projectViewModel.havePrivilege(64)) - DashboardItem( - onTap: () { - Navigator.push( - context, - FadePage( - page: HomeHealthCarePage(), - ), - ); - }, - child: Center( - child: Padding( - padding: const EdgeInsets.all(15.0), - child: Column( - children: [ - Image.asset( - 'assets/images/home_health_care_icon.png', - width: 50, - height: 50, - ), - SizedBox( - height: 10, + Container( + margin: EdgeInsets.only(left: 15, right: 15), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + if (projectViewModel.havePrivilege(64)) + DashboardItem( + onTap: (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) + ? () { + Navigator.push( + context, + FadePage( + page: HomeHealthCarePage(), ), - Texts( - TranslationBase.of(context).homeHealthCare, - textAlign: TextAlign.center, - color: Colors.white, - fontWeight: FontWeight.w700, - fontSize: SizeConfig.textMultiplier * 1.55, - ) - ], - ), - ), - ), - height: MediaQuery.of(context).size.width * 0.4, - imageName: 'home_healthcare_service_bg.png', - opacity: 0.5, - ), - if (projectViewModel.havePrivilege(65)) - DashboardItem( - onTap: () => getPharmacyToken(model), - child: Center( - child: Padding( + ); + } + : () {}, + child: Center( + child: Padding( padding: const EdgeInsets.all(15.0), - child: Column( - children: [ - Image.asset( - 'assets/images/pharmacy_logo.png', - width: 40, - height: 40, - ), - SizedBox( - height: 20, - ), - Texts( - TranslationBase.of(context).onlinePharmacy, - textAlign: TextAlign.center, - color: Colors.white, - fontWeight: FontWeight.w700, - fontSize: SizeConfig.textMultiplier * 1.55, + child: (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) + ? Column( + children: [ + Image.asset( + 'assets/images/home_health_care_icon.png', + width: 50, + height: 50, + ), + SizedBox( + height: 10, + ), + Texts( + TranslationBase.of(context).homeHealthCare, + textAlign: TextAlign.center, + color: Colors.white, + fontWeight: FontWeight.w700, + fontSize: SizeConfig.textMultiplier * 1.55, + ) + ], + ) + : Container( + width: double.infinity, + height: double.infinity, + color: Colors.grey.withOpacity(0.7), + child: Icon( + Icons.lock_outline, + size: 40, + ), + )), + ), + height: MediaQuery.of(context).size.width * 0.4, + imageName: 'home_healthcare_service_bg.png', + opacity: 0.5, + ), + if (projectViewModel.havePrivilege(65)) + DashboardItem( + onTap: () => (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) + ? getPharmacyToken(model) + : () {}, + child: Center( + child: Padding( + padding: const EdgeInsets.all(15.0), + child: (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) + ? Column( + children: [ + // if (projectViewModel.user != null && model.isLogin && model.user.outSA == 1) + // Image.asset( + // 'assets/images/lock_icon.png', + // width: 50, + // height: 50, + // ), + Image.asset( + 'assets/images/pharmacy_logo.png', + width: 40, + height: 40, + ), + SizedBox( + height: 20, + ), + Texts( + TranslationBase.of(context).onlinePharmacy, + textAlign: TextAlign.center, + color: Colors.white, + fontWeight: FontWeight.w700, + fontSize: SizeConfig.textMultiplier * 1.55, + ) + ], ) - ], - ), - ), + : Container( + width: double.infinity, + height: double.infinity, + color: Colors.grey.withOpacity(0.7), + child: Icon( + Icons.lock_outline, + size: 40, + ), + ), ), - height: MediaQuery.of(context).size.width * 0.4, - imageName: 'al-habib_onlne_pharmacy_bg.png', ), - if (projectViewModel.havePrivilege(67)) - DashboardItem( - onTap: () { - Navigator.push( - context, - FadePage( - page: CMCPage(), - ), - ); - }, - child: Center( - child: Padding( - padding: const EdgeInsets.all(15.0), - child: Column( - children: [ - Image.asset( - 'assets/images/comprehensive_medical_checkup_logo.png', - width: 50, - height: 50, - ), - SizedBox( - height: 10, + height: MediaQuery.of(context).size.width * 0.4, + imageName: 'al-habib_onlne_pharmacy_bg.png', + ), + if (projectViewModel.havePrivilege(67)) + DashboardItem( + onTap: (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) + ? () { + Navigator.push( + context, + FadePage( + page: CMCPage(), ), - Texts( - TranslationBase.of(context).cmcHeading, - textAlign: TextAlign.center, - color: Colors.white, - fontWeight: FontWeight.w700, - fontSize: SizeConfig.textMultiplier * 1.55, + ); + } + : () {}, + child: Center( + child: Padding( + padding: const EdgeInsets.all(15.0), + child: (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) + ? Column( + children: [ + Image.asset( + 'assets/images/comprehensive_medical_checkup_logo.png', + width: 50, + height: 50, + ), + SizedBox( + height: 10, + ), + Texts( + TranslationBase.of(context).cmcHeading, + textAlign: TextAlign.center, + color: Colors.white, + fontWeight: FontWeight.w700, + fontSize: SizeConfig.textMultiplier * 1.55, + ) + ], ) - ], - ), - ), + : Container( + width: double.infinity, + height: double.infinity, + color: Colors.grey.withOpacity(0.7), + child: Icon( + Icons.lock_outline, + size: 40, + ), + ), ), - height: MediaQuery.of(context).size.width * 0.4, - color: HexColor("#747C80"), - imageName: 'emergency_service_image.png', ), - ], - ), + height: MediaQuery.of(context).size.width * 0.4, + color: HexColor("#747C80"), + imageName: 'emergency_service_image.png', + ), + ], ), + ), SizedBox( height: 8, ), From 50d3a42743c0510a2d6e7e688d0df2df7e75f1a0 Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Wed, 4 Aug 2021 14:53:27 +0300 Subject: [PATCH 55/59] fixing dashboard issue --- lib/pages/landing/home_page.dart | 124 +++++++++++++++---------------- 1 file changed, 61 insertions(+), 63 deletions(-) diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index b918d487..3f25217c 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -465,21 +465,30 @@ class _HomePageState extends State { children: [ if (projectViewModel.havePrivilege(64)) DashboardItem( - onTap: (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) - ? () { + onTap: (model.user != null && model.user.outSA == 1) + ? () {} + : () { Navigator.push( context, FadePage( page: HomeHealthCarePage(), ), ); - } - : () {}, + }, child: Center( child: Padding( padding: const EdgeInsets.all(15.0), - child: (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) - ? Column( + child: (model.user != null && model.user.outSA == 1) + ? Container( + width: double.infinity, + height: double.infinity, + color: Colors.grey.withOpacity(0.7), + child: Icon( + Icons.lock_outline, + size: 40, + ), + ) + : Column( children: [ Image.asset( 'assets/images/home_health_care_icon.png', @@ -497,15 +506,6 @@ class _HomePageState extends State { fontSize: SizeConfig.textMultiplier * 1.55, ) ], - ) - : Container( - width: double.infinity, - height: double.infinity, - color: Colors.grey.withOpacity(0.7), - child: Icon( - Icons.lock_outline, - size: 40, - ), )), ), height: MediaQuery.of(context).size.width * 0.4, @@ -514,14 +514,22 @@ class _HomePageState extends State { ), if (projectViewModel.havePrivilege(65)) DashboardItem( - onTap: () => (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) - ? getPharmacyToken(model) - : () {}, + onTap: () => + (model.user != null && model.user.outSA == 1) ? () {} : getPharmacyToken(model), child: Center( child: Padding( padding: const EdgeInsets.all(15.0), - child: (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) - ? Column( + child: (model.user != null && model.user.outSA == 1) + ? Container( + width: double.infinity, + height: double.infinity, + color: Colors.grey.withOpacity(0.7), + child: Icon( + Icons.lock_outline, + size: 40, + ), + ) + : Column( children: [ // if (projectViewModel.user != null && model.isLogin && model.user.outSA == 1) // Image.asset( @@ -545,15 +553,6 @@ class _HomePageState extends State { fontSize: SizeConfig.textMultiplier * 1.55, ) ], - ) - : Container( - width: double.infinity, - height: double.infinity, - color: Colors.grey.withOpacity(0.7), - child: Icon( - Icons.lock_outline, - size: 40, - ), ), ), ), @@ -562,49 +561,48 @@ class _HomePageState extends State { ), if (projectViewModel.havePrivilege(67)) DashboardItem( - onTap: (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) - ? () { + onTap: (model.user != null && model.user.outSA == 1) + ? () {} + : () { Navigator.push( context, FadePage( page: CMCPage(), ), ); - } - : () {}, + }, child: Center( child: Padding( - padding: const EdgeInsets.all(15.0), - child: (projectViewModel.user != null && model.isLogin && model.user.outSA == 0) - ? Column( - children: [ - Image.asset( - 'assets/images/comprehensive_medical_checkup_logo.png', - width: 50, - height: 50, - ), - SizedBox( - height: 10, + padding: const EdgeInsets.all(15.0), + child: (model.user != null && model.user.outSA == 1) + ? Container( + width: double.infinity, + height: double.infinity, + color: Colors.grey.withOpacity(0.7), + child: Icon( + Icons.lock_outline, + size: 40, ), - Texts( - TranslationBase.of(context).cmcHeading, - textAlign: TextAlign.center, - color: Colors.white, - fontWeight: FontWeight.w700, - fontSize: SizeConfig.textMultiplier * 1.55, - ) - ], - ) - : Container( - width: double.infinity, - height: double.infinity, - color: Colors.grey.withOpacity(0.7), - child: Icon( - Icons.lock_outline, - size: 40, - ), - ), - ), + ) + : Column( + children: [ + Image.asset( + 'assets/images/comprehensive_medical_checkup_logo.png', + width: 50, + height: 50, + ), + SizedBox( + height: 10, + ), + Texts( + TranslationBase.of(context).cmcHeading, + textAlign: TextAlign.center, + color: Colors.white, + fontWeight: FontWeight.w700, + fontSize: SizeConfig.textMultiplier * 1.55, + ) + ], + )), ), height: MediaQuery.of(context).size.width * 0.4, color: HexColor("#747C80"), From e9dbc4be7af1af5922f8538d7212a404b036c892 Mon Sep 17 00:00:00 2001 From: mosazaid Date: Wed, 4 Aug 2021 16:26:49 +0300 Subject: [PATCH 56/59] fix bugs --- .../health_converter/blood_sugar.dart | 42 ++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart b/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart index 27c89383..e429418d 100644 --- a/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart +++ b/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart @@ -42,6 +42,7 @@ class _BloodSugarState extends State { } void calculateBloodSugar() { + if (textController.text.isEmpty) return; if (cardMGColor == activeCardColor) { inputValue = double.parse(textController.text); inputValue = inputValue / 15; @@ -60,10 +61,18 @@ class _BloodSugarState extends State { double inputValue = 0; String unit; + @override + void initState() { + updateColor(1); + unit = 'mmol/l'; + super.initState(); + } + @override Widget build(BuildContext context) { return AppScaffold( isShowAppBar: true, + isShowDecPage: false, appBarTitle: TranslationBase.of(context).bloodSugarConversion, body: Padding( padding: const EdgeInsets.all(16.0), @@ -112,8 +121,11 @@ class _BloodSugarState extends State { onTap: () { setState(() { updateColor(1); - inputValue = double.parse(textController.text); - inputValue = inputValue / 15; + if (textController.text.isNotEmpty) { + inputValue = + double.parse(textController.text); + inputValue = inputValue / 15; + } unit = 'mmol/l'; }); }, @@ -126,14 +138,16 @@ class _BloodSugarState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset(0, 3), // changes position of shadow + offset: Offset( + 0, 3), // changes position of shadow ), ], color: cardMGColor, borderRadius: BorderRadius.circular(3.0), ), child: Padding( - padding: const EdgeInsets.symmetric(vertical: 0.0, horizontal: 18.0), + padding: const EdgeInsets.symmetric( + vertical: 0.0, horizontal: 18.0), child: Texts('MG/DLt TO \nMMOL/L'), ), ), @@ -142,8 +156,11 @@ class _BloodSugarState extends State { onTap: () { setState(() { updateColor(2); - inputValue = double.parse(textController.text); - inputValue = inputValue * 18; + if (textController.text.isNotEmpty) { + inputValue = + double.parse(textController.text); + inputValue = inputValue / 18; + } unit = 'mg/dlt'; }); }, @@ -158,12 +175,14 @@ class _BloodSugarState extends State { color: Colors.grey.withOpacity(0.5), spreadRadius: 3, blurRadius: 7, - offset: Offset(0, 3), // changes position of shadow + offset: Offset( + 0, 3), // changes position of shadow ), ], ), child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), + padding: const EdgeInsets.symmetric( + horizontal: 16.0), child: Texts('\nMMOL/L TO MG/DLt '), ), ), @@ -191,7 +210,8 @@ class _BloodSugarState extends State { keyboardType: TextInputType.number, decoration: InputDecoration( labelText: TranslationBase.of(context).enterReadingValue, - border: OutlineInputBorder(borderSide: BorderSide(color: Colors.black45)), + border: OutlineInputBorder( + borderSide: BorderSide(color: Colors.black45)), labelStyle: TextStyle( color: Colors.black87, ), @@ -253,7 +273,9 @@ class _BloodSugarState extends State { label: TranslationBase.of(context).calculate, onTap: () { setState(() { - _visible == false ? _visible = !_visible : _visible = _visible; + _visible == false + ? _visible = !_visible + : _visible = _visible; calculateBloodSugar(); }); }, From 7ad4e03c1a0e383a8e4dd46d44760ab339da8c7b Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Wed, 4 Aug 2021 17:30:31 +0300 Subject: [PATCH 57/59] =?UTF-8?q?PAP-715=20:=20Y=20=E2=80=93axis=20and=20X?= =?UTF-8?q?=20=E2=80=93axis=20values=20should=20be=20display=20in=20the=20?= =?UTF-8?q?yearly=20graph=20details.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../widget/CurvedChartBloodPressure.dart | 10 ++-------- .../my_trackers/widget/LineChartCurved.dart | 18 ++---------------- .../widget/MonthCurvedChartBloodPressure.dart | 18 ++++++++++-------- .../widget/MonthLineChartCurved.dart | 18 ++++++++++-------- .../medical/vital_sign/LineChartCurved.dart | 17 ++--------------- .../LineChartCurvedBloodPressure.dart | 5 ++--- 6 files changed, 28 insertions(+), 58 deletions(-) diff --git a/lib/pages/medical/my_trackers/widget/CurvedChartBloodPressure.dart b/lib/pages/medical/my_trackers/widget/CurvedChartBloodPressure.dart index ac2349bc..7248b7e0 100644 --- a/lib/pages/medical/my_trackers/widget/CurvedChartBloodPressure.dart +++ b/lib/pages/medical/my_trackers/widget/CurvedChartBloodPressure.dart @@ -158,19 +158,13 @@ class CurvedChartBloodPressure extends StatelessWidget { ), leftTitles: SideTitles( showTitles: true, + interval:getMaxY() - getMinY() <=500?50:getMaxY() - getMinY() <=1000?100:200, + getTextStyles: (value) => const TextStyle( color: Colors.black, fontWeight: FontWeight.bold, fontSize: 10, ), - getTitles: (value) { - if (value.toInt() == 0) - return '${value.toInt()}'; - else if (value.toInt() % horizontalInterval == 0) - return '${value.toInt()}'; - else - return ''; - }, margin: 12, ), ), diff --git a/lib/pages/medical/my_trackers/widget/LineChartCurved.dart b/lib/pages/medical/my_trackers/widget/LineChartCurved.dart index 3cf5c94f..7c5d9f08 100644 --- a/lib/pages/medical/my_trackers/widget/LineChartCurved.dart +++ b/lib/pages/medical/my_trackers/widget/LineChartCurved.dart @@ -86,7 +86,6 @@ class LineChartCurved extends StatelessWidget { } } } - LineChartData sampleData1(context) { return LineChartData( lineTouchData: LineTouchData( @@ -131,26 +130,13 @@ class LineChartCurved extends StatelessWidget { ), leftTitles: SideTitles( showTitles: true, + interval:getMaxY() - getMinY() <=500?50:getMaxY() - getMinY() <=1000?100:200, getTextStyles: (value) => const TextStyle( color: Colors.black, fontWeight: FontWeight.bold, fontSize: 10, ), - getTitles: (value) { - // if (value.toInt() == 0) - // return '${value.toInt()}'; - // else if (value.toInt() % horizontalInterval == 0) - // return '${value.toInt()}'; - // else - // return ''; - // if (value.toInt() == 0) - // return '${value.toInt()}'; - // else if (value.toInt() % horizontalInterval == 0) - // return '${value.toInt()}'; - // else - return '${value.toInt()}';//'${(value.toInt() +(horizontalInterval - value.toInt() % horizontalInterval) )}'; - }, margin: 12, ), ), @@ -175,7 +161,7 @@ class LineChartCurved extends StatelessWidget { minX: 0, maxX: (timeSeries.length - 1).toDouble(), maxY: getMaxY() + 0.3, - minY: getMinY(), + minY: 0,//getMinY(), lineBarsData: getData(context), ); } diff --git a/lib/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart b/lib/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart index dd432d3b..ee7e00af 100644 --- a/lib/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart +++ b/lib/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart @@ -137,19 +137,21 @@ class MonthCurvedChartBloodPressure extends StatelessWidget { ), leftTitles: SideTitles( showTitles: true, + interval:getMaxY() - getMinY() <=500?50:getMaxY() - getMinY() <=1000?100:200, + getTextStyles: (value) => const TextStyle( color: Colors.black, fontWeight: FontWeight.bold, fontSize: 10, ), - getTitles: (value) { - // if (value.toInt() == 0) - // return '${value.toInt()}'; - // else if (value.toInt() % horizontalInterval == 0) - // return '${value.toInt()}'; - // else - return '${value.toInt()}'; - }, + // getTitles: (value) { + // // if (value.toInt() == 0) + // // return '${value.toInt()}'; + // // else if (value.toInt() % horizontalInterval == 0) + // // return '${value.toInt()}'; + // // else + // return '${value.toInt()}'; + // }, margin: 12, ), ), diff --git a/lib/pages/medical/my_trackers/widget/MonthLineChartCurved.dart b/lib/pages/medical/my_trackers/widget/MonthLineChartCurved.dart index 607f3ab0..3f1ecd22 100644 --- a/lib/pages/medical/my_trackers/widget/MonthLineChartCurved.dart +++ b/lib/pages/medical/my_trackers/widget/MonthLineChartCurved.dart @@ -120,14 +120,16 @@ class MonthLineChartCurved extends StatelessWidget { fontWeight: FontWeight.bold, fontSize: 10, ), - getTitles: (value) { - if (value.toInt() == 0) - return '${value.toInt()}'; - else if (value.toInt() % horizontalInterval == 0) - return '${value.toInt()}'; - else - return ''; - }, + interval:getMaxY() - getMinY() <=500?50:getMaxY() - getMinY() <=1000?100:200, + + // getTitles: (value) { + // if (value.toInt() == 0) + // return '${value.toInt()}'; + // else if (value.toInt() % horizontalInterval == 0) + // return '${value.toInt()}'; + // else + // return ''; + // }, margin: 12, ), ), diff --git a/lib/pages/medical/vital_sign/LineChartCurved.dart b/lib/pages/medical/vital_sign/LineChartCurved.dart index 76610708..e62a300a 100644 --- a/lib/pages/medical/vital_sign/LineChartCurved.dart +++ b/lib/pages/medical/vital_sign/LineChartCurved.dart @@ -134,21 +134,8 @@ class LineChartCurved extends StatelessWidget { fontWeight: FontWeight.bold, fontSize: 10, ), - getTitles: (value) { - if (timeSeries.length < 15) { - return '${value.toInt()}'; - } else { - if (value == minY) - return '${value.toInt()}'; - if (value == getMaxY()) - return '${value.toInt()}'; - //if (yAxixs.contains(value)) { - return '${value.toInt()}'; - - return ''; - } - return '${value.toInt()}'; - }, + interval:getMaxY() - getMinY() <=500?getMaxY() - getMinY() <=50?10:50:getMaxY() - getMinY() <=1000?100:getMaxY() - getMinY()>=10000?5000:200, + margin: 12, ), ), diff --git a/lib/pages/medical/vital_sign/LineChartCurvedBloodPressure.dart b/lib/pages/medical/vital_sign/LineChartCurvedBloodPressure.dart index 2d95f08c..e656d60e 100644 --- a/lib/pages/medical/vital_sign/LineChartCurvedBloodPressure.dart +++ b/lib/pages/medical/vital_sign/LineChartCurvedBloodPressure.dart @@ -151,9 +151,8 @@ class LineChartCurvedBloodPressure extends StatelessWidget { fontWeight: FontWeight.bold, fontSize: 10, ), - getTitles: (value) { - return '${value.toInt()}'; - }, + interval:getMaxY() - getMinY() <=500?50:getMaxY() - getMinY() <=1000?100:200, + margin: 12, ), ), From 5f1d75389505d99a69042f27c67c754d0939907b Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Thu, 5 Aug 2021 09:58:05 +0300 Subject: [PATCH 58/59] no message --- lib/pages/ErService/ErOptions.dart | 3 +- .../rapid-response-team/rrt-logs-page.dart | 87 +++++++++++++++++++ .../rapid-response-team/rrt-main-screen.dart | 76 ++++++++++++++++ .../rapid-response-team/rrt-request-page.dart | 47 ++++++++++ 4 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 lib/pages/rapid-response-team/rrt-logs-page.dart create mode 100644 lib/pages/rapid-response-team/rrt-main-screen.dart create mode 100644 lib/pages/rapid-response-team/rrt-request-page.dart diff --git a/lib/pages/ErService/ErOptions.dart b/lib/pages/ErService/ErOptions.dart index a6a61749..254acd8e 100644 --- a/lib/pages/ErService/ErOptions.dart +++ b/lib/pages/ErService/ErOptions.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; +import 'package:diplomaticquarterapp/pages/rapid-response-team/rrt-main-screen.dart'; import 'package:diplomaticquarterapp/uitl/location_util.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; @@ -120,7 +121,7 @@ class _ErOptionsState extends State { Navigator.push( context, FadePage( - page: NearestEr())); + page: RRTMainScreen())); }), ) ], diff --git a/lib/pages/rapid-response-team/rrt-logs-page.dart b/lib/pages/rapid-response-team/rrt-logs-page.dart new file mode 100644 index 00000000..60a0d7cc --- /dev/null +++ b/lib/pages/rapid-response-team/rrt-logs-page.dart @@ -0,0 +1,87 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + + +class RRTLogPage extends StatefulWidget{ + + @override + State createState() => RRTLogPageState(); + +} +class RRTLogPageState extends State{ + @override + Widget build(BuildContext context) { + return Center( + child: ListView.builder( + itemCount: 10, + itemBuilder: (ctx, idx) => RRTLogListItem() + ) + ); + } + +} + + + +// ------------------------ +// List Item Widget +// ------------------------ + + +final _item_content_seperator = Container(height: 0.25, padding: EdgeInsets.all(10), color: Colors.grey.withOpacity(0.5)); + +class RRTLogListItem extends StatelessWidget{ + BuildContext _context; + @override + Widget build(BuildContext context) { + _context = context; + + return Container( + padding: EdgeInsets.all(15), margin: EdgeInsets.symmetric(horizontal: 15, vertical: 10), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(15), + boxShadow: [BoxShadow(color: Colors.grey.withOpacity(0.25), spreadRadius: 1, blurRadius: 3)] + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + _contentItem(label: "Request ID", value: "2318"), + _item_content_seperator, + _contentItem(label: "Status", value: "2318"), + _item_content_seperator, + _contentItem(label: "Pickup Date", value: "2318"), + _item_content_seperator, + _contentItem(label: "Location", value: "2318"), + _item_content_seperator, + SizedBox(height: 10), + FractionallySizedBox(child: cancelButton()) + ], + ), + ); + } + + Widget _contentItem({@required String label, String value}){ + return Container( + padding: EdgeInsets.symmetric(vertical: 10), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(label, style: TextStyle(color: Theme.of(_context).appBarTheme.color, fontSize: 9, letterSpacing: 1),), + SizedBox(height: 5,), + Text(value, style: TextStyle(color: Theme.of(_context).appBarTheme.color,fontWeight: FontWeight.bold, fontSize: 14),), + ], + ), + ); + } + + Widget cancelButton()=> MaterialButton( + height: 45, + color: Color(0xFFc5272d), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10) ), + onPressed: () { }, + child: Text("CANCEL", style: TextStyle(color: Colors.white, fontSize: 13),), + + ); +} + diff --git a/lib/pages/rapid-response-team/rrt-main-screen.dart b/lib/pages/rapid-response-team/rrt-main-screen.dart new file mode 100644 index 00000000..d9afa582 --- /dev/null +++ b/lib/pages/rapid-response-team/rrt-main-screen.dart @@ -0,0 +1,76 @@ +import 'package:diplomaticquarterapp/pages/rapid-response-team/rrt-logs-page.dart'; +import 'package:diplomaticquarterapp/pages/rapid-response-team/rrt-request-page.dart'; +import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class RRTMainScreen extends StatefulWidget{ + @override + State createState() => RRTMainScreenState(); +} + +class RRTMainScreenState extends State with SingleTickerProviderStateMixin{ + + int currentIndex = 0; + TabController tabController; + PageController pageController = PageController(initialPage: 0); + + @override + void initState() { + super.initState(); + tabController = TabController(length: 2, vsync: this); + } + + @override + Widget build(BuildContext context) { + + return AppScaffold( + appBarTitle: 'Rapid Response Team', + isShowAppBar: true, + body: Column( + children: [ + tabBar(), + Expanded( + child: contentPager() + ) + ], + ), + ); + } + + Widget tabBar() => Container( + margin: EdgeInsets.only(left: 15, right: 15, top: 15), + clipBehavior: Clip.hardEdge, + decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(10)), + child: TabBar( + onTap: onPageChanged, + indicatorWeight: 3, + indicatorColor: Color(0xFFc5272d), + isScrollable: false, + controller: tabController, + indicatorSize: TabBarIndicatorSize.label, + tabs: [ + Tab( + child: Text("Rapid Response Team", style: TextStyle(color: Theme.of(context).appBarTheme.color),), + ), + Tab( + child: Text("Order Log", style: TextStyle(color: Theme.of(context).appBarTheme.color),), + ), + ] + ), + ); + + Widget contentPager() => PageView( + onPageChanged: onPageChanged, + controller: pageController, + children: [ + RRTRequestPage(), + RRTLogPage(), + ], + ); + + void onPageChanged(int index) { + pageController.animateToPage(index, duration: Duration(milliseconds: 200), curve: Curves.easeInOut); + tabController.animateTo(index); + } +} diff --git a/lib/pages/rapid-response-team/rrt-request-page.dart b/lib/pages/rapid-response-team/rrt-request-page.dart new file mode 100644 index 00000000..67573133 --- /dev/null +++ b/lib/pages/rapid-response-team/rrt-request-page.dart @@ -0,0 +1,47 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class RRTRequestPage extends StatefulWidget{ + + @override + State createState() => RRTRequestPageState(); + +} +class RRTRequestPageState extends State{ + @override + Widget build(BuildContext context) { + return ListView( + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 15), + children: [ + serviceDescription(context), + SizedBox(height: 20), + priceTable(context), + ], + ); + } + + Widget serviceDescription(BuildContext context) => + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: Text( + "The RRT service provides medical services urgent and stable cases, not life-threatening situation or extremities and the service includes providing medical care from a copmplete medical team at home", + textAlign: TextAlign.justify, + style: TextStyle(color: Theme.of(context).appBarTheme.color, fontSize: 15, height: 1.5, fontWeight: FontWeight.w300), + ), + ); + + Widget priceTable(BuildContext context){ + var radius = Radius.circular(8); + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Container( + height: 30, + decoration: BoxDecoration(color: Theme.of(context).appBarTheme.color, borderRadius: BorderRadius.only(topLeft: radius, topRight: radius)), + child: Center(child: Text("Approximate Service Fee", style: TextStyle(color: Colors.white, fontSize: 12, fontWeight: FontWeight.w500, letterSpacing: 1))), + ) + ], + ); + } + +} \ No newline at end of file From 4da163d1867f8c7a0ed807810c0edd93c435508e Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Thu, 5 Aug 2021 14:38:38 +0300 Subject: [PATCH 59/59] RRT in progress in stage --- assets/payment_options/payment_options.png | Bin 0 -> 22119 bytes lib/config/config.dart | 4 + lib/config/localized_values.dart | 7 + lib/core/viewModels/er/rrt-view-model.dart | 48 +++++ lib/locator.dart | 3 + lib/pages/ErService/ErOptions.dart | 2 +- .../rapid-response-team/rrt-logs-page.dart | 19 +- .../rapid-response-team/rrt-main-screen.dart | 9 +- .../rrt-pickup-address-page.dart | 92 +++++++++ .../rapid-response-team/rrt-request-page.dart | 176 ++++++++++++++++++ .../rapid-response-team/rrt-request-page.dart | 47 ----- lib/uitl/translations_delegate_base.dart | 7 + pubspec.yaml | 1 + 13 files changed, 357 insertions(+), 58 deletions(-) create mode 100644 assets/payment_options/payment_options.png create mode 100644 lib/core/viewModels/er/rrt-view-model.dart rename lib/pages/{ => ErService}/rapid-response-team/rrt-logs-page.dart (84%) rename lib/pages/{ => ErService}/rapid-response-team/rrt-main-screen.dart (86%) create mode 100644 lib/pages/ErService/rapid-response-team/rrt-pickup-address-page.dart create mode 100644 lib/pages/ErService/rapid-response-team/rrt-request-page.dart delete mode 100644 lib/pages/rapid-response-team/rrt-request-page.dart diff --git a/assets/payment_options/payment_options.png b/assets/payment_options/payment_options.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb83fec564f0ee729423d991b449e9849e9bf5a GIT binary patch literal 22119 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 QrViewModel()); locator.registerFactory(() => ReportsMonthlyViewModel()); locator.registerFactory(() => NearHospitalViewModel()); + locator.registerFactory(() => RRTViewModel()); locator.registerFactory(() => AmRequestViewModel()); locator.registerFactory(() => PatientSickLeaveViewMode()); locator.registerFactory(() => MyBalanceViewModel()); @@ -304,6 +306,7 @@ void setupLocator() { locator.registerFactory(() => OfferCategoriesViewModel()); // Categories View Model locator.registerFactory(() => PackagesViewModel()); // Products View Model + //pharmacy // locator.registerFactory(() => PharmacyCategoriseViewModel()); // locator.registerFactory(() => OffersCategoriseViewModel()); diff --git a/lib/pages/ErService/ErOptions.dart b/lib/pages/ErService/ErOptions.dart index 254acd8e..05121f0f 100644 --- a/lib/pages/ErService/ErOptions.dart +++ b/lib/pages/ErService/ErOptions.dart @@ -1,7 +1,7 @@ import 'dart:convert'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; -import 'package:diplomaticquarterapp/pages/rapid-response-team/rrt-main-screen.dart'; +import 'package:diplomaticquarterapp/pages/ErService/rapid-response-team/rrt-main-screen.dart'; import 'package:diplomaticquarterapp/uitl/location_util.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; diff --git a/lib/pages/rapid-response-team/rrt-logs-page.dart b/lib/pages/ErService/rapid-response-team/rrt-logs-page.dart similarity index 84% rename from lib/pages/rapid-response-team/rrt-logs-page.dart rename to lib/pages/ErService/rapid-response-team/rrt-logs-page.dart index 60a0d7cc..acfe13d8 100644 --- a/lib/pages/rapid-response-team/rrt-logs-page.dart +++ b/lib/pages/ErService/rapid-response-team/rrt-logs-page.dart @@ -1,3 +1,5 @@ +import 'package:diplomaticquarterapp/core/viewModels/er/rrt-view-model.dart'; +import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -11,11 +13,16 @@ class RRTLogPage extends StatefulWidget{ class RRTLogPageState extends State{ @override Widget build(BuildContext context) { - return Center( - child: ListView.builder( - itemCount: 10, - itemBuilder: (ctx, idx) => RRTLogListItem() - ) + return BaseView( + onModelReady: (viewModel){ + + }, + builder: (ctx, vm, widget){ + return ListView.builder( + itemCount: 10, + itemBuilder: (ctx, idx) => RRTLogListItem() + ); + } ); } @@ -75,7 +82,7 @@ class RRTLogListItem extends StatelessWidget{ ); } - Widget cancelButton()=> MaterialButton( + Widget cancelButton() => MaterialButton( height: 45, color: Color(0xFFc5272d), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10) ), diff --git a/lib/pages/rapid-response-team/rrt-main-screen.dart b/lib/pages/ErService/rapid-response-team/rrt-main-screen.dart similarity index 86% rename from lib/pages/rapid-response-team/rrt-main-screen.dart rename to lib/pages/ErService/rapid-response-team/rrt-main-screen.dart index d9afa582..fe1c6a9d 100644 --- a/lib/pages/rapid-response-team/rrt-main-screen.dart +++ b/lib/pages/ErService/rapid-response-team/rrt-main-screen.dart @@ -1,5 +1,6 @@ -import 'package:diplomaticquarterapp/pages/rapid-response-team/rrt-logs-page.dart'; -import 'package:diplomaticquarterapp/pages/rapid-response-team/rrt-request-page.dart'; + +import 'package:diplomaticquarterapp/pages/ErService/rapid-response-team/rrt-logs-page.dart'; +import 'package:diplomaticquarterapp/pages/ErService/rapid-response-team/rrt-request-page.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -13,7 +14,7 @@ class RRTMainScreenState extends State with SingleTickerProvider int currentIndex = 0; TabController tabController; - PageController pageController = PageController(initialPage: 0); + PageController pageController = PageController(initialPage: 0, keepPage: true); @override void initState() { @@ -39,7 +40,7 @@ class RRTMainScreenState extends State with SingleTickerProvider } Widget tabBar() => Container( - margin: EdgeInsets.only(left: 15, right: 15, top: 15), + margin: EdgeInsets.all(15), clipBehavior: Clip.hardEdge, decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(10)), child: TabBar( diff --git a/lib/pages/ErService/rapid-response-team/rrt-pickup-address-page.dart b/lib/pages/ErService/rapid-response-team/rrt-pickup-address-page.dart new file mode 100644 index 00000000..91e9cbd2 --- /dev/null +++ b/lib/pages/ErService/rapid-response-team/rrt-pickup-address-page.dart @@ -0,0 +1,92 @@ +import 'dart:async'; + +import 'package:diplomaticquarterapp/core/viewModels/er/rrt-view-model.dart'; +import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; + +class RRTRequestPickupAddressPage extends StatefulWidget{ + + @override + State createState() => RRTRequestPickupAddressPageState(); + +} +class RRTRequestPickupAddressPageState extends State{ + bool acceptTerms = false; + Completer mapController = Completer(); + + static final CameraPosition mapCamera = CameraPosition( + target: LatLng(37.42796133580664, -122.085749655962), + zoom: 14.4746, + ); + + @override + Widget build(BuildContext context) { + return BaseView( + onModelReady: (viewModel){ + + }, + builder: (ctx, vm, widget) => AppScaffold( + appBarTitle: TranslationBase.of(context).pickupLocation, + isShowAppBar: true, + body: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + selectAddress(), + Expanded( + child: GoogleMap( + mapType: MapType.normal, + initialCameraPosition: mapCamera, + onCameraIdle: (){ + + }, + onMapCreated: (controller){ + mapController.complete(controller); + }, + ) + ), + continueButton() + ], + ) + ) + ); + } + + Widget selectAddress(){ + return Container( + margin: EdgeInsets.all(15), + child: Expanded( + child: MaterialButton( + height: 50, + color: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10) ), + onPressed: () { }, + child: Row( + children: [ + Text(TranslationBase.of(context).selectAddress, style: TextStyle(color: Colors.white, fontSize: 13, letterSpacing: 1),), + Spacer(), + Icon(Icons.keyboard_arrow_down, size: 15, color: Colors.grey,) + ], + ), + ), + ), + ); + } + + Widget continueButton(){ + return Padding( + padding: const EdgeInsets.all(15), + child: MaterialButton( + height: 50, + color: Theme.of(context).appBarTheme.color, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10) ), + onPressed: () { }, + child: Text(TranslationBase.of(context).continues, style: TextStyle(color: Colors.white, fontSize: 15, letterSpacing: 1),), + ), + ); + } + +} \ No newline at end of file diff --git a/lib/pages/ErService/rapid-response-team/rrt-request-page.dart b/lib/pages/ErService/rapid-response-team/rrt-request-page.dart new file mode 100644 index 00000000..9fb0a2f5 --- /dev/null +++ b/lib/pages/ErService/rapid-response-team/rrt-request-page.dart @@ -0,0 +1,176 @@ +import 'package:diplomaticquarterapp/core/viewModels/er/rrt-view-model.dart'; +import 'package:diplomaticquarterapp/pages/ErService/rapid-response-team/rrt-pickup-address-page.dart'; +import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class RRTRequestPage extends StatefulWidget{ + + @override + State createState() => RRTRequestPageState(); + +} +class RRTRequestPageState extends State{ + bool acceptTerms = false; + + @override + Widget build(BuildContext context) { + return BaseView( + onModelReady: (viewModel){ + + }, + builder: (ctx, vm, widget) => Column( + children: [ + Expanded( + child: ListView( + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 15), + children: [ + serviceDescription(context), + SizedBox(height: 20), + priceTable(context), + + acceptPolicy(), + + Container(height: 0.5, color: Theme.of(context).appBarTheme.color),// Seperator + + Container( + padding: EdgeInsets.only(top: 20, bottom: 5), + alignment: Alignment.center, + child: Text(TranslationBase.of(context).YouCanPayByTheFollowingOptions, style: TextStyle(fontSize: 13, color: Theme.of(context).appBarTheme.color, fontWeight: FontWeight.w500), maxLines: 2) + ), + + paymentOptions(), + ], + ), + ), + + actionButtons() + ], + ) + ); + } + + Widget serviceDescription(BuildContext context) => + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: Text( + TranslationBase.of(context).RRTDDetails, + textAlign: TextAlign.justify, + style: TextStyle(color: Theme.of(context).appBarTheme.color, fontSize: 15, height: 1.5, fontWeight: FontWeight.w300), + ), + ); + + Widget priceTable(BuildContext context){ + var radius = Radius.circular(8); + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Container( + height: 30, + decoration: BoxDecoration(color: Theme.of(context).appBarTheme.color, borderRadius: BorderRadius.only(topLeft: radius, topRight: radius)), + child: Center(child: Text(TranslationBase.of(context).ApproximateServiceFee, style: TextStyle(color: Colors.white, fontSize: 12, fontWeight: FontWeight.w500, letterSpacing: 1))), + ), + + pricingRow(label: TranslationBase.of(context).AmountBeforeTax, value: '500 SAR'), + Container(height: 0.5, color: Theme.of(context).appBarTheme.color), + + pricingRow(label: TranslationBase.of(context).TaxAmount, value: '50 SAR'), + Container(height: 0.5, color: Theme.of(context).appBarTheme.color), + + pricingRow(label: TranslationBase.of(context).TotalAmountPayable, value: '550 SAR', labelBold: true), + Container(height: 0.5, color: Theme.of(context).appBarTheme.color), + ], + ); + } + + Widget pricingRow({@required String label, @required String value, bool labelBold = false, bool valueBold = false}){ + return + Container( + height: 40, margin: EdgeInsets.symmetric(horizontal: 10), + child: Row( + children: [ + Text(label, style: TextStyle(fontSize: 13, color: Theme.of(context).appBarTheme.color, fontWeight: labelBold ? FontWeight.bold : FontWeight.normal)), + Spacer(), + Container(height: 40, color: Theme.of(context).appBarTheme.color, width: 0.5,), + Container( + alignment: Alignment.center, + width: MediaQuery.of(context).size.width * 0.25, + child: Text(value, style: TextStyle(fontSize: 13, color: Theme.of(context).appBarTheme.color, fontWeight: valueBold ? FontWeight.bold : FontWeight.normal)) + ), + ], + ), + ); + } + + + Widget acceptPolicy(){ + return Padding( + padding: const EdgeInsets.symmetric(vertical: 10), + child: Row( + children: [ + Checkbox(value: acceptTerms, onChanged: (v){ + setState(() => acceptTerms = v); + }), + SizedBox(width: 10), + Expanded( + child: Text(TranslationBase.of(context).iAcceptTermsConditions, style: TextStyle(fontSize: 13, color: Theme.of(context).appBarTheme.color), maxLines: 2) + ), + Container( + alignment: Alignment.center, + width: MediaQuery.of(context).size.width * 0.25, + child: TextButton( + child: Text(TranslationBase.of(context).clickHere, style: TextStyle(fontSize: 12, color: Colors.blue, fontWeight: FontWeight.w400)), + onPressed: (){ + + } + ), + ) + ], + ), + ); + } + + Widget paymentOptions()=> Container( + height: 30, + alignment: Alignment.center, + child: Image.asset("assets/payment_options/payment_options.png", fit: BoxFit.fill,) + ); + + Widget actionButtons(){ + return Container( + margin: EdgeInsets.all(15), + child: Row( + children: [ + Expanded( + child: MaterialButton( + height: 50, + color: Theme.of(context).appBarTheme.color, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10) ), + onPressed: () { }, + child: Text(TranslationBase.of(context).cancel, style: TextStyle(color: Colors.white, fontSize: 13, letterSpacing: 1),), + + ), + ), + SizedBox(width: 20,), + Expanded( + child: MaterialButton( + height: 50, + color: Theme.of(context).appBarTheme.color, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10) ), + child: Text(TranslationBase.of(context).ok, style: TextStyle(color: Colors.white, fontSize: 13, letterSpacing: 1),), + onPressed: () { + Navigator.push( + context, + FadePage( + page: RRTRequestPickupAddressPage())); + }, + ), + ) + ], + ), + ); + } + +} \ No newline at end of file diff --git a/lib/pages/rapid-response-team/rrt-request-page.dart b/lib/pages/rapid-response-team/rrt-request-page.dart deleted file mode 100644 index 67573133..00000000 --- a/lib/pages/rapid-response-team/rrt-request-page.dart +++ /dev/null @@ -1,47 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; - -class RRTRequestPage extends StatefulWidget{ - - @override - State createState() => RRTRequestPageState(); - -} -class RRTRequestPageState extends State{ - @override - Widget build(BuildContext context) { - return ListView( - padding: EdgeInsets.symmetric(horizontal: 20, vertical: 15), - children: [ - serviceDescription(context), - SizedBox(height: 20), - priceTable(context), - ], - ); - } - - Widget serviceDescription(BuildContext context) => - Padding( - padding: const EdgeInsets.symmetric(horizontal: 10), - child: Text( - "The RRT service provides medical services urgent and stable cases, not life-threatening situation or extremities and the service includes providing medical care from a copmplete medical team at home", - textAlign: TextAlign.justify, - style: TextStyle(color: Theme.of(context).appBarTheme.color, fontSize: 15, height: 1.5, fontWeight: FontWeight.w300), - ), - ); - - Widget priceTable(BuildContext context){ - var radius = Radius.circular(8); - return Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - Container( - height: 30, - decoration: BoxDecoration(color: Theme.of(context).appBarTheme.color, borderRadius: BorderRadius.only(topLeft: radius, topRight: radius)), - child: Center(child: Text("Approximate Service Fee", style: TextStyle(color: Colors.white, fontSize: 12, fontWeight: FontWeight.w500, letterSpacing: 1))), - ) - ], - ); - } - -} \ No newline at end of file diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 2a966715..6610a6af 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -1160,6 +1160,13 @@ class TranslationBase { String get none => localizedValues['none'][locale.languageCode]; String get RRTSummary => localizedValues['RRT-Summary'][locale.languageCode]; String get RapidResponseTeam => localizedValues['Rapid-Response-Team'][locale.languageCode]; + String get RRTDDetails => localizedValues['RRTDDetails'][locale.languageCode]; + String get ApproximateServiceFee => localizedValues['ApproximateServiceFee'][locale.languageCode]; + String get AmountBeforeTax => localizedValues['AmountBeforeTax'][locale.languageCode]; + String get TaxAmount => localizedValues['TaxAmount'][locale.languageCode]; + String get TotalAmountPayable => localizedValues['TotalAmountPayable'][locale.languageCode]; + String get iAcceptTermsConditions => localizedValues['iAcceptTermsConditions'][locale.languageCode]; + String get YouCanPayByTheFollowingOptions => localizedValues['YouCanPayByTheFollowingOptions'][locale.languageCode]; String get rrtService => localizedValues['rrtService'][locale.languageCode]; String get billAmount => localizedValues['bill-amount'][locale.languageCode]; String get transportMethod => diff --git a/pubspec.yaml b/pubspec.yaml index aab0cf32..cd1f5a12 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -224,6 +224,7 @@ flutter: - assets/images/pharmacy_module/payment/ - assets/images/pharmacy_module/lakum/ - assets/images/nfc/ + - assets/payment_options/ fonts:

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 z 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