diff --git a/DQKey.jks b/DQKey.jks
new file mode 100644
index 00000000..7c844584
Binary files /dev/null and b/DQKey.jks differ
diff --git a/Keystore Pass.rtf b/Keystore Pass.rtf
new file mode 100644
index 00000000..cd33f08e
--- /dev/null
+++ b/Keystore Pass.rtf
@@ -0,0 +1,9 @@
+{\rtf1\ansi\ansicpg1252\cocoartf2513
+\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
+
+\f0\fs24 \cf0 keyPassword=HmGsa123\
+storePassword=HmGsa123}
\ No newline at end of file
diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml
index d8fd4e88..beeadd9e 100644
--- a/android/app/src/debug/AndroidManifest.xml
+++ b/android/app/src/debug/AndroidManifest.xml
@@ -3,5 +3,6 @@
+
diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml
index d8fd4e88..71c11607 100644
--- a/android/app/src/profile/AndroidManifest.xml
+++ b/android/app/src/profile/AndroidManifest.xml
@@ -4,4 +4,5 @@
to allow setting breakpoints, to provide hot reload, etc.
-->
+
diff --git a/key.properties b/key.properties
new file mode 100644
index 00000000..01c8cbe8
--- /dev/null
+++ b/key.properties
@@ -0,0 +1,4 @@
+storePassword=HmGsa123
+keyPassword=HmGsa123
+keyAlias=DQKey
+storeFile=DQKey.jks
\ No newline at end of file
diff --git a/lib/config/config.dart b/lib/config/config.dart
index 9b5edb2d..1035e221 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -7,7 +7,7 @@ import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
const MAX_SMALL_SCREEN = 660;
-const BASE_URL = 'https://uat.hmgwebservices.com/';
+ const BASE_URL = 'https://uat.hmgwebservices.com/';
// const BASE_URL = 'https://hmgwebservices.com/';
const GET_PROJECT = 'Services/Lists.svc/REST/GetProject';
@@ -244,8 +244,8 @@ const LANGUAGE = 2;
const PATIENT_OUT_SA = 0;
const SESSION_ID = 'TMRhVmkGhOsvamErw';
const IS_DENTAL_ALLOWED_BACKEND = false;
-const PATIENT_TYPE = 2;
-const PATIENT_TYPE_ID = 2;
+const PATIENT_TYPE = 1;
+const PATIENT_TYPE_ID = 1;
var DEVICE_TOKEN = "";
var DeviceTypeID = Platform.isIOS ? 1 : 2;
const LANGUAGE_ID = 2;
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index 8c8a7844..978d83af 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -1032,4 +1032,101 @@ const Map localizedValues = {
"searchItemError": {"en": "Item name should be more than 3 character ", "ar": "يجب أن يكون اسم العنصر أكثر من 3 أحرف"},
"YouCanFind": {"en": "YouCanFind", "ar": "باستطاعتك العثور على "},
"ItemInSearch": {"en": " Item In Search", "ar": " عنصر في البحث "},
+ "InvoiceNo": {"en": " Invoice No", "ar": "رقم الفاتورة"},
+ "SpecialResult": {"en": " Special Result", "ar": "نتيجة خاصة"},
+ "GeneralResult": {"en": "General Result", "ar": "نتيجة عامة"},
+ "show-more-btn": {
+ "en": "Flow Chart",
+ "ar": "النتائج التراكمية"
+ },
+
+ "value": {
+ "en": "Value",
+ "ar": "القيمة"
+ },
+ "range": {
+ "en": "Range",
+ "ar": "المدى"
+ },
+ "out-patient": {
+ "en": "Out Patient",
+ "ar": "عيادات خارجية"
+ },
+ "in-patient": {
+ "en": "In Patient",
+ "ar": "تنويم"
+ },
+ "report": {
+ "en": "Radiology Report",
+ "ar": "تقرير الاشعة"
+ },
+ "open-rad": {
+ "en": "Open Image",
+ "ar": "فتح صور الاشعة"
+ },
+ "send-copy": {
+ "en": "Email the Report",
+ "ar": "أرسل التقرير"
+ },
+
+ "vaccination": {
+ "en": "Vaccination",
+ "ar": "جدول التطعيمات"
+ },
+ "welcomeBack": {
+ "en": "Welcome back",
+ "ar": "مرحبا مرة أخرى"
+ },
+ "instructions": {
+ "en": "Please ensure that the email address is up-to-date and process to view the schedule",
+ "ar": "يرجى التأكد من صحة عنوان البريد الالكتروني و المتابعة لعرض الجدول "
+ },
+ "update-email": {
+ "en": "Update Email",
+ "ar": "تحديث البريد الالكتروني"
+ },
+
+ "updated-email": {
+ "en": "Updated email successfully",
+ "ar": "تم تحديث البريد الالكتروني"
+ },
+
+ "view-list-children": {
+ "en": "View List of Children",
+ "ar": "عرض قائمة الأطفال"
+ },
+
+ "add-child": {
+ "en": "Add New Child",
+ "ar": "اضافة طفل"
+ },
+ "child-name": {
+ "en": "Child Name",
+ "ar": "اسم الطفل"
+ },
+ "childDob": {
+ "en": "Birth Date",
+ "ar": "تاريخ الولادة"
+ },
+ "delete": {
+ "en": "Delete",
+ "ar": "حذف"
+ },
+ "deleted-child": {
+ "en": "The request was successful. The children have removed from the vaccination schedule subscription service.",
+ "ar": "تم حذف الطفل بنجاح"
+ },
+ "visit": {
+ "en": "Visit",
+ "ar": "زيارة"
+ },
+ "description-vaccination": {
+ "en": "Description",
+ "ar": "وصف"
+ },
+ "due-date": {
+ "en": "Due date",
+ "ar": "تاريخ الاستحقاق"
+ },
+
};
diff --git a/lib/core/model/prescriptions/request_prescription_report.dart b/lib/core/model/prescriptions/request_prescription_report.dart
index c8323740..df901a99 100644
--- a/lib/core/model/prescriptions/request_prescription_report.dart
+++ b/lib/core/model/prescriptions/request_prescription_report.dart
@@ -82,7 +82,7 @@ class RequestPrescriptionReport {
data['EpisodeID'] = this.episodeID;
data['ClinicID'] = this.clinicID;
data['ProjectID'] = this.projectID;
- data['DischargeNo'] = this.dischargeNo;
+ // data['DischargeNo'] = this.dischargeNo;
return data;
}
}
diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart
index b1b0943b..af8058b9 100644
--- a/lib/core/service/client/base_app_client.dart
+++ b/lib/core/service/client/base_app_client.dart
@@ -2,6 +2,7 @@ import 'dart:convert';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
+import 'package:diplomaticquarterapp/core/service/medical/vital_sign_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
@@ -23,6 +24,7 @@ AppSharedPreferences sharedPref = new AppSharedPreferences();
///
AuthenticatedUserObject authenticatedUserObject =
locator();
+VitalSignService _vitalSignService = locator();
class BaseAppClient {
post(String endPoint,
@@ -35,7 +37,7 @@ class BaseAppClient {
//Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
String token = await sharedPref.getString(TOKEN);
var languageID =
- await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
+ await sharedPref.getString(APP_LANGUAGE);
var user = await sharedPref.getObject(USER_PROFILE);
if (body.containsKey('SetupID')) {
body['SetupID'] = body.containsKey('SetupID')
@@ -87,8 +89,8 @@ class BaseAppClient {
body['PatientTypeID'] = body.containsKey('PatientTypeID')
? body['PatientTypeID'] != null
? body['PatientTypeID']
- : user['PatientTypeID'] != null
- ? user['PatientTypeID']
+ :user['PatientType'] != null
+ ? user['PatientType']
: PATIENT_TYPE_ID
: PATIENT_TYPE_ID;
if (user != null) {
@@ -196,6 +198,8 @@ class BaseAppClient {
await sharedPref.remove(LOGIN_TOKEN_ID);
await authenticatedUserObject.getUser();
Provider.of(AppGlobal.context, listen: false).isLogin = false;
+ _vitalSignService.weightKg ="";
+ _vitalSignService.heightCm="";
Navigator.of(AppGlobal.context).pushReplacementNamed(HOME);
}
diff --git a/lib/core/service/medical/my_balance_service.dart b/lib/core/service/medical/my_balance_service.dart
index c456b38c..e3be9bcf 100644
--- a/lib/core/service/medical/my_balance_service.dart
+++ b/lib/core/service/medical/my_balance_service.dart
@@ -1,5 +1,3 @@
-import 'dart:convert';
-
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
@@ -24,7 +22,8 @@ class MyBalanceService extends BaseService {
String logInTokenID;
String verificationCode;
- AuthenticatedUserObject authenticatedUserObject = locator();
+ AuthenticatedUserObject authenticatedUserObject =
+ locator();
getPatientAdvanceBalanceAmount() async {
hasError = false;
@@ -61,13 +60,14 @@ class MyBalanceService extends BaseService {
}, body: body);
}
- getPatientInfoByPatientIDAndMobileNumber() async {
+ getPatientInfoByPatientIDAndMobileNumber(AdvanceModel advanceModel) async {
hasError = false;
super.error = "";
Map body = Map();
body['isDentalAllowedBackend'] = false;
- body['MobileNo'] = authenticatedUserObject.user.mobileNumber;
- body['ProjectID'] = authenticatedUserObject.user.projectID;
+ body['MobileNo'] = advanceModel.mobileNumber;
+ body['ProjectID'] = advanceModel.hospitalsModel.iD;
+ body['PatientID'] = advanceModel.fileNumber;
await baseAppClient.post(GET_PATIENT_INFO_BY_ID_AND_MOBILE_NUMBER,
onSuccess: (response, statusCode) async {
@@ -81,7 +81,7 @@ class MyBalanceService extends BaseService {
}, body: body);
}
- sendActivationCodeForAdvancePayment({int patientID,int projectID}) async {
+ sendActivationCodeForAdvancePayment({int patientID, int projectID}) async {
hasError = false;
super.error = "";
Map body = Map();
@@ -111,9 +111,8 @@ class MyBalanceService extends BaseService {
body['LogInTokenID'] = logInTokenID;
await baseAppClient.post(CHECK_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT,
- onSuccess: (response, statusCode) async {
-
- }, onFailure: (String error, int statusCode) {
+ onSuccess: (response, statusCode) async {},
+ onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
super.error = error;
diff --git a/lib/core/service/medical/prescriptions_service.dart b/lib/core/service/medical/prescriptions_service.dart
index b920499c..d6ad3732 100644
--- a/lib/core/service/medical/prescriptions_service.dart
+++ b/lib/core/service/medical/prescriptions_service.dart
@@ -57,20 +57,30 @@ class PrescriptionsService extends BaseService {
List prescriptionReportList = List();
Future getPrescriptionReport(
- {int dischargeNo, int projectId, int clinicID, String setupID,int episodeID}) async {
+ {Prescriptions prescriptions}) async {
hasError = false;
- _requestPrescriptionReport.dischargeNo = dischargeNo;
- _requestPrescriptionReport.projectID = projectId;
- _requestPrescriptionReport.clinicID = clinicID;
- _requestPrescriptionReport.setupID = setupID;
- _requestPrescriptionReport.episodeID = episodeID;
-
- await baseAppClient.post(GET_PRESCRIPTION_REPORT,
+ _requestPrescriptionReport.dischargeNo = prescriptions.dischargeNo;
+ _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,
onSuccess: (dynamic response, int statusCode) {
prescriptionReportList.clear();
- response['INP_GetPrescriptionReport_List'].forEach((prescriptions) {
- prescriptionReportList.add(PrescriptionReport.fromJson(prescriptions));
- });
+ prescriptionReportEnhList.clear();
+ if(prescriptions.isInOutPatient){
+ response['ListPRM'].forEach((prescriptions) {
+ prescriptionReportEnhList.add(PrescriptionReportEnh.fromJson(prescriptions));
+ });
+ }else{
+ response['INP_GetPrescriptionReport_List'].forEach((prescriptions) {
+ prescriptionReportList.add(PrescriptionReport.fromJson(prescriptions));
+ });
+ }
+
+
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
diff --git a/lib/core/viewModels/medical/my_balance_view_model.dart b/lib/core/viewModels/medical/my_balance_view_model.dart
index af4e126e..62b7868b 100644
--- a/lib/core/viewModels/medical/my_balance_view_model.dart
+++ b/lib/core/viewModels/medical/my_balance_view_model.dart
@@ -112,10 +112,10 @@ class MyBalanceViewModel extends BaseViewModel {
}
}
- Future getPatientInfoByPatientIDAndMobileNumber() async {
+ Future getPatientInfoByPatientIDAndMobileNumber(AdvanceModel advanceModel) async {
setState(ViewState.Busy);
await _myBalanceService
- .getPatientInfoByPatientIDAndMobileNumber();
+ .getPatientInfoByPatientIDAndMobileNumber(advanceModel);
if (_myBalanceService.hasError) {
error = _myBalanceService.error;
setState(ViewState.ErrorLocal);
@@ -154,7 +154,7 @@ class MyBalanceViewModel extends BaseViewModel {
Future getFamilyFiles() async {
setState(ViewState.Busy);
- await _myBalanceService.getFamilyFiles();
+ await _myBalanceService.getSharedRecordByStatus();
if (_myBalanceService.hasError) {
error = _myBalanceService.error;
setState(ViewState.ErrorLocal);
diff --git a/lib/core/viewModels/medical/prescriptions_view_model.dart b/lib/core/viewModels/medical/prescriptions_view_model.dart
index 054dc4ef..1cd934e2 100644
--- a/lib/core/viewModels/medical/prescriptions_view_model.dart
+++ b/lib/core/viewModels/medical/prescriptions_view_model.dart
@@ -103,9 +103,9 @@ class PrescriptionsViewModel extends BaseViewModel {
notifyListeners();
}
- getPrescriptionReport({int dischargeNo,int projectId,int clinicID,String setupID,int episodeID}) async {
+ getPrescriptionReport({Prescriptions prescriptions}) async {
setState(ViewState.Busy);
- await _prescriptionsService.getPrescriptionReport(dischargeNo: dischargeNo,projectId: projectId,clinicID: clinicID,setupID: setupID,episodeID: episodeID);
+ await _prescriptionsService.getPrescriptionReport(prescriptions: prescriptions);
if (_prescriptionsService.hasError) {
error = _prescriptionsService.error;
setState(ViewState.ErrorLocal);
diff --git a/lib/main.dart b/lib/main.dart
index cedb2d58..f1ed0a62 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -23,6 +23,7 @@ void main() async {
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
+ final themeNotifier = Provider.of(context);
return LayoutBuilder(
builder: (context, constraints) {
@@ -48,6 +49,7 @@ class MyApp extends StatelessWidget {
],
child: Consumer(
builder: (context, projectProvider, child) => MaterialApp(
+
showSemanticsDebugger: false,
title: 'Diplomatic Quarter App',
locale: projectProvider.appLocal,
@@ -61,8 +63,9 @@ class MyApp extends StatelessWidget {
const Locale('ar', ''), // Arabic
const Locale('en', ''), // English
],
- theme: ThemeData(
- fontFamily: projectProvider.isArabic? 'Cairo' : 'WorkSans',
+ //theme: themeNotifier.getTheme(),
+ theme:ThemeData(
+ fontFamily:projectProvider.isArabic ? 'Cairo' : 'WorkSans',
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
brightness: Brightness.light,
diff --git a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
index 7e3d4181..ea699381 100644
--- a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
+++ b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
@@ -123,7 +123,16 @@ class _AllHabibMedicalServiceState extends State {
'assets/images/new-design/my_file_bottom_bar.png',
title: TranslationBase.of(context).myMedicalFile,
),
-
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: LiveCareHome(),
+ ),
+ ),
+ imageLocation: 'assets/images/new-design/liveCare_ar_bg.png',
+ title: TranslationBase.of(context).livecare,
+ ),
ServicesContainer(
onTap: () => Navigator.push(
context,
@@ -148,7 +157,15 @@ class _AllHabibMedicalServiceState extends State {
'assets/images/al-habib_online_payment_service_icon.png',
title: TranslationBase.of(context).onlinePaymentService,
),
-
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(),
+ ),
+ imageLocation:
+ 'assets/images/al-habib_online_payment_service_icon.png',
+ title: 'Covid-19- Drive-Thru Test',
+ ),
ServicesContainer(
onTap: () {
Navigator.push(
@@ -163,7 +180,37 @@ class _AllHabibMedicalServiceState extends State {
imageLocation: 'assets/images/emergency_service_image.png',
title: TranslationBase.of(context).emergencyService,
),
-
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: ParkingPage(),
+ ),
+ ),
+ imageLocation: 'assets/images/pharmacy_logo.png',
+ title: 'Pharmacy'),
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: InsuranceUpdate(),
+ ),
+ ),
+ imageLocation:
+ 'assets/images/medical/insurance_card_icon.png',
+ title: TranslationBase.of(context).updateInsurance,
+ ),
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: authUser.patientID == null
+ ? EReferralIndexPage()
+ : EReferralPage()),
+ ),
+ imageLocation: 'assets/images/ereferral_service_icon.png',
+ title: 'E-Referral',
+ ),
ServicesContainer(
onTap: () => Navigator.push(
context,
@@ -175,7 +222,15 @@ class _AllHabibMedicalServiceState extends State {
'assets/images/new-design/family_menu_icon_red.png',
title: 'My Family',
),
-
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(page: ChildVaccinesPage()),
+ ),
+ imageLocation:
+ 'assets/images/new-design/children_vaccines_icon.png',
+ title: 'Child Vaccines',
+ ),
ServicesContainer(
onTap: () => Navigator.push(
context,
@@ -187,7 +242,61 @@ class _AllHabibMedicalServiceState extends State {
'assets/images/new-design/upcoming_icon_bottom_bar.png',
title: TranslationBase.of(context).todoList,
),
-
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(page: SymptomInfo()),
+ ),
+ imageLocation: 'assets/images/new-design/body_icon.png',
+ title: 'Symptom Checker'),
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(page: BloodDonationPage()),
+ ),
+ imageLocation: 'assets/images/new-design/blood_icon.png',
+ title: 'Blood Donation',
+ ),
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: (HealthCalculators()),
+ ),
+ ),
+ imageLocation:
+ 'assets/images/new-design/health_calculator_icon.png',
+ title: 'Health Calculators',
+ ),
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: HealthConverter(),
+ ),
+ ),
+ imageLocation:
+ 'assets/images/new-design/health_convertor_icon.png',
+ title: 'Health Converter',
+ ),
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: H2OPageIndexPage(),
+ ),
+ ),
+ imageLocation: 'assets/images/new-design/water_icon.png',
+ title: 'H2O',
+ ),
+ ServicesContainer(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(),
+ ),
+ imageLocation: 'assets/images/new-design/smartwatch_icon.png',
+ title: TranslationBase.of(context).smartWatches,
+ ),
ServicesContainer(
onTap: () => Navigator.push(
context,
diff --git a/lib/pages/Blood/confirm_payment_page.dart b/lib/pages/Blood/confirm_payment_page.dart
index 3d9fccb2..9ad6d68f 100644
--- a/lib/pages/Blood/confirm_payment_page.dart
+++ b/lib/pages/Blood/confirm_payment_page.dart
@@ -213,6 +213,9 @@ class ConfirmPaymentPage extends StatelessWidget {
appo.projectID.toString(),
authenticatedUser.emailAddress,
paymentMethod,
+ authenticatedUser.patientType,
+ authenticatedUser.firstName,
+ authenticatedUser.patientID,
authenticatedUser,
browser);
}
diff --git a/lib/pages/BookAppointment/BookSuccess.dart b/lib/pages/BookAppointment/BookSuccess.dart
index 39e290a1..82248560 100644
--- a/lib/pages/BookAppointment/BookSuccess.dart
+++ b/lib/pages/BookAppointment/BookSuccess.dart
@@ -573,6 +573,9 @@ class _BookSuccessState extends State {
appo.projectID.toString(),
authenticatedUser.emailAddress,
paymentMethod,
+ authenticatedUser.patientType,
+ authenticatedUser.firstName,
+ authenticatedUser.patientID,
authenticatedUser,
widget.browser);
}
diff --git a/lib/pages/ChildVaccines/ChidDetailsWidget.dart b/lib/pages/ChildVaccines/ChidDetailsWidget.dart
new file mode 100644
index 00000000..bce5d54e
--- /dev/null
+++ b/lib/pages/ChildVaccines/ChidDetailsWidget.dart
@@ -0,0 +1,108 @@
+import 'package:diplomaticquarterapp/core/model/childvaccines/List_BabyInformationModel.dart';
+import 'package:diplomaticquarterapp/core/model/childvaccines/delete_baby_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/child_vaccines_view_model.dart';
+import 'package:diplomaticquarterapp/pages/ChildVaccines/vaccinationtable_page.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+class ChildDetailsWidget extends StatelessWidget {
+ final ChildVaccinesViewModel model;
+ final List_BabyInformationModel babyInfo;
+ DeleteBaby deleteBaby = DeleteBaby();
+
+ ChildDetailsWidget({this.model, this.babyInfo});
+
+ @override
+ Widget build(BuildContext context) {
+ return Container(
+ margin: EdgeInsets.only(left: 5, right: 5, bottom: 10),
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ border: Border.all(color: Colors.white, width: 0.5),
+ borderRadius: BorderRadius.all(Radius.circular(5)),
+ color: Colors.white,
+ ),
+ padding: EdgeInsets.all(12),
+ width: 200,
+ //double.infinity,
+ child: Column(
+ children: [
+ Row(children: [
+ Texts(TranslationBase.of(context).childName),
+ ]),
+ Row(children: [
+ Texts(babyInfo.babyName.trim()),
+ ]),
+ Row(children: [
+ IconButton(
+ icon: Image.asset(babyInfo.gender == 1
+ ? 'assets/images/new-design/male.png'
+ : 'assets/images/new-design/female.png'),
+ tooltip: '',
+ onPressed: () {
+ },
+ ),
+ Texts(babyInfo.genderDescription),
+ IconButton(
+ icon: Icon(
+ Icons.remove_red_eye,
+ color: Colors.red,
+ ),
+ tooltip: '',
+ onPressed: () {
+ Navigator.push(
+ context,
+ FadePage(
+ page: VaccinationTablePage(babyInfo: babyInfo,),
+ ),
+ );
+ },
+ )
+ ]),
+ Row(children: [
+ Texts(TranslationBase.of(context).childDob),
+ ]),
+ Row(
+ children: [
+ IconButton(
+ icon: new Image.asset(
+ 'assets/images/new-design/calender-secondary.png'),
+ tooltip: '',
+ ),
+ Texts(
+ DateUtil.yearMonthDay(babyInfo.dOB),
+ ),
+ ],
+ ),
+ Row(children: [
+ IconButton(
+ icon: new Image.asset('assets/images/new-design/garbage.png'),
+ tooltip: '',
+ onPressed: () async {
+ await model.deleteBabyOrders(newChild: deleteBaby);
+ deleteBaby.babyID = babyInfo.babyID;
+
+ await model.deleteBabyOrders(newChild: deleteBaby);
+ if (model.isDeleted) {
+ AppToast.showSuccessToast(message: TranslationBase.of(context).deletedChild);
+ Navigator.pop(context, model.isDeleted);
+ } else {
+ //TODO handling error
+ }
+ },
+ ),
+ Texts(TranslationBase.of(context).delete),
+ ]),
+ SizedBox(
+ height: 12,
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/pages/ChildVaccines/child_page.dart b/lib/pages/ChildVaccines/child_page.dart
index 806a5b71..7493a492 100644
--- a/lib/pages/ChildVaccines/child_page.dart
+++ b/lib/pages/ChildVaccines/child_page.dart
@@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/pages/ChildVaccines/add_newchild_page.dart'
import 'package:diplomaticquarterapp/pages/ChildVaccines/vaccinationtable_page.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/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -13,190 +14,85 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'ChidDetailsWidget.dart';
import 'dialogs/delete_child.dart';
class ChildPage extends StatefulWidget {
@override
_ChildPageState createState() => _ChildPageState();
}
-
+//TODO
class _ChildPageState extends State
with SingleTickerProviderStateMixin {
-
DeleteBaby deleteBaby = DeleteBaby();
@override
Widget build(BuildContext context) {
var checkedValue = true;
return BaseView(
- onModelReady: (model) => model.getNewUserOrders(),
- builder: (_, model, widget) => AppScaffold(
- isShowAppBar: true,
- appBarTitle: " Vaccination",
- baseViewModel: model,
- body: SingleChildScrollView(
- child: Container(
- margin: EdgeInsets.only(left: 15, right: 15, top: 70),
- child: Column(
- children: [
- ...List.generate(
- model.babyInformationModelList.length,
- (index) => Container(
- margin: EdgeInsets.only(
- left: 0, right: 0, bottom: 20),
-
- decoration: BoxDecoration(
- shape: BoxShape.rectangle,
- border: Border.all(
- color: Colors.white, width: 0.5),
- borderRadius:
- BorderRadius.all(Radius.circular(5)),
- color: Colors.white,
- ),
- padding: EdgeInsets.all(12),
- width: 200,//double.infinity,
- child: Column(
- children: [
- Row(children: [
- Texts("CHILD NAME"),
- ]),
- Row(children: [
- Texts(model
- .babyInformationModelList[index]
- .babyName
- .trim()),
- ]),
- Row(children: [
- IconButton(
- icon: Image.asset(model
- .babyInformationModelList[
- index]
- .gender ==
- 1
- ? 'assets/images/new-design/male.png'
- : 'assets/images/new-design/female.png'),
- tooltip: '',
- onPressed: () {
- setState(() {
- // _volume += 10;
- // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
- });
- },
- ),
- Texts(model
- .babyInformationModelList[index]
- .genderDescription),
- IconButton(
- icon: Icon(
- Icons.remove_red_eye,
- color: Colors.red,
- ),
- tooltip: '',
- onPressed: () {
- Navigator.push(
- context,
- FadePage(
-
-
- page: VaccinationTablePage(),
-
-
- ),
- );
-
- },
- )
- ]),
- Row(children: [
- Texts("Birthday"),
- ]),
- Row(children: [
- IconButton(
- icon: new Image.asset(
- 'assets/images/new-design/calender-secondary.png'),
- tooltip: '',
- onPressed: () {
- setState(() {
-
- });
- },
- ),
- Texts(DateUtil.yearMonthDay(model
- .babyInformationModelList[index]
- .dOB)),
- ]),
- Row(children: [
- IconButton(
- icon: new Image.asset(
- 'assets/images/new-design/garbage.png'),
- tooltip: '',
- onPressed: ()async {
-
- //=====================
- await model.deleteBabyOrders(newChild:deleteBaby );
-
-
- deleteBaby.babyID=model.babyInformationModelList[index]
- .babyID;
-
- await model.deleteBabyOrders(newChild:deleteBaby );
- if(model.isDeleted){
- AppToast.showSuccessToast(message: "Record Deleted");
- Navigator.pop(context,model.isDeleted);
- }else{
-
- //TODO handling error
- }
-
-
-
-
-
- },
- ),
- Texts("Delete"),
- ]),
- SizedBox(
- height: 12,
- ),
- ],
- ),
-
- ),
-
-
- )
- ],
- ))
- ),
- bottomSheet: Container(
- height: MediaQuery.of(context).size.height * 0.12,
- width: double.infinity,
- padding: EdgeInsets.all(15),
- child: SecondaryButton(
- textColor: Colors.white,
- color: checkedValue == false
- ? Colors.white24
- : Color.fromRGBO(
- 63,
- 72,
- 74,
- 1,
- ),
- label: "ADD NEW CHILD ",
- //
- onTap: () {
- Navigator.push(
- context,
- MaterialPageRoute(
- builder: (context) => AddNewChildPage(),
- ),
- ).then((value) {
- if (value) model.getNewUserOrders();
- });
+ onModelReady: (model) => model.getNewUserOrders(),
+ builder: (_, model, widget) => AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: TranslationBase.of(context).vaccination,
+ baseViewModel: model,
+ body: SingleChildScrollView(
+ child: Container(
+ margin: EdgeInsets.only(left: 10, right: 10, top: 10),
+ child: Column(
+ children: [
+ GridView.builder(
+ shrinkWrap: true,
+ primary: false,
+ physics: NeverScrollableScrollPhysics(),
+ gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
+ crossAxisCount: 2,
+ childAspectRatio: MediaQuery.of(context).size.width /
+ (MediaQuery.of(context).size.height / 1.45),
+ ),
+ itemCount: model.babyInformationModelList.length,
+ itemBuilder: (BuildContext context, int index) {
+ return ChildDetailsWidget(
+ model: model,
+ babyInfo: model.babyInformationModelList[index],
+ );
},
),
- ),
- ));
+ SizedBox(
+ height: 15,
+ ),
+ ],
+ ),
+ ),
+ ),
+ bottomSheet: Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ padding: EdgeInsets.all(15),
+ child: SecondaryButton(
+ textColor: Colors.white,
+ color: checkedValue == false
+ ? Colors.white24
+ : Color.fromRGBO(
+ 63,
+ 72,
+ 74,
+ 1,
+ ),
+ label: TranslationBase.of(context).addChild,
+ //
+ onTap: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) => AddNewChildPage(),
+ ),
+ ).then((value) {
+ if (value) model.getNewUserOrders();
+ });
+ },
+ ),
+ ),
+ ),
+ );
}
}
diff --git a/lib/pages/ChildVaccines/child_vaccines_page.dart b/lib/pages/ChildVaccines/child_vaccines_page.dart
index 92f3a0be..4dd4c7f5 100644
--- a/lib/pages/ChildVaccines/child_vaccines_page.dart
+++ b/lib/pages/ChildVaccines/child_vaccines_page.dart
@@ -1,10 +1,10 @@
-
import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/child_vaccines_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/user_information_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart';
import 'package:diplomaticquarterapp/pages/ChildVaccines/child_page.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/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/input/text_field.dart';
@@ -13,214 +13,147 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
-
-
class ChildVaccinesPage extends StatefulWidget {
@override
_ChildVaccinesPageState createState() => _ChildVaccinesPageState();
}
class _ChildVaccinesPageState extends State
- with SingleTickerProviderStateMixin{
+ with SingleTickerProviderStateMixin {
TextEditingController titleController = TextEditingController();
- var checkedValue=false;
- String addEmail="";
+ var checkedValue = false;
+ String addEmail = "";
+
@override
Widget build(BuildContext context) {
-
return BaseView(
onModelReady: (model) => model.getUserInformationRequestOrders(),
builder: (_, model, w) => AppScaffold(
- isShowAppBar: true,
- baseViewModel: model,
- appBarTitle: " Vaccination",//TranslationBase.of(context).advancePayment,
- body: SingleChildScrollView(
- physics: ScrollPhysics(),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisAlignment: MainAxisAlignment.spaceAround,
- children: [
- SizedBox(
- height: 20,
- ),
-
- Padding(
- padding: const EdgeInsets.all(10.0),
- child:Container(
- child: Texts("Welcome back",fontSize: 20,),
- ) ,
- ),
- Divider(color:Colors.black , indent: 10,
- endIndent: 10,),
- SizedBox(
- height: 20,
- ),
- Padding(
- padding: const EdgeInsets.all(10.0),
- child:Container(
- child: Texts("Please ensure that the email address is up-to-date and process to view the schedule",fontSize: 20,),
- ) ,
+ isShowAppBar: true,
+ baseViewModel: model,
+ appBarTitle: TranslationBase.of(context).vaccination,
+ body: SingleChildScrollView(
+ physics: ScrollPhysics(),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.spaceAround,
+ children: [
+ SizedBox(
+ height: 20,
+ ),
+ Padding(
+ padding: const EdgeInsets.all(10.0),
+ child: Container(
+ child: Texts(
+ TranslationBase.of(context).welcomeBackV,
+ fontSize: 20,
),
-
- Divider(color:Colors.black , indent: 10,
- endIndent: 10,),
- Padding(
- padding: const EdgeInsets.all(10.0),
- child:Container(
-
- margin: EdgeInsets.only(left: 10, right: 10, top: 15),
- child: TextFields(
- fillColor: Colors.red,
-
- hintText: model.user.emailAddress,
- controller: titleController,
- fontSize: 20,
- hintColor: Colors.black,
- fontWeight: FontWeight.w600,
- onChanged: (text) {
- addEmail=text;
- model.user.emailAddress==addEmail?checkedValue=false:checkedValue=true;
-
-
- },
- validator: (value) {
-
- if (value == null)
- {
- return model.user.emailAddress;
-
- }
- else
-
- {
- return model.user.emailAddress;}
- },
- ),
- ),
+ ),
+ ),
+ Divider(
+ color: Colors.black,
+ indent: 10,
+ endIndent: 10,
+ ),
+ SizedBox(
+ height: 20,
+ ),
+ Padding(
+ padding: const EdgeInsets.all(10.0),
+ child: Container(
+ child: Texts(
+ TranslationBase.of(context).instructions,
+ fontSize: 20,
),
- Container(
- height: MediaQuery.of(context).size.height * 0.12,
- width: double.infinity,
-
- padding: EdgeInsets.all(15),
- child: SecondaryButton(
- textColor: Colors.white,
- color: checkedValue== false ?Colors.white24:Color.fromRGBO(63, 72, 74, 1,),
- label: "UPDATE EMAIL",
- //
- onTap: (){
- model.user.emailAddress=addEmail.toString();
- AppToast.showSuccessToast(
- message: "Email updated");
- // bloodDetails.city=_selectedHospital.toString();
-
- // bloodDetails.
- },
-
-
- ),
+ ),
+ ),
+ Divider(
+ color: Colors.black,
+ indent: 10,
+ endIndent: 10,
+ ),
+ Padding(
+ padding: const EdgeInsets.all(10.0),
+ child: Container(
+ margin: EdgeInsets.only(left: 10, right: 10, top: 15),
+ child: TextFields(
+ fillColor: Colors.red,
+ hintText: model.user.emailAddress,
+ controller: titleController,
+ fontSize: 20,
+ hintColor: Colors.black,
+ fontWeight: FontWeight.w600,
+ onChanged: (text) {
+ addEmail = text;
+ model.user.emailAddress == addEmail
+ ? checkedValue = false
+ : checkedValue = true;
+ },
+ validator: (value) {
+ if (value == null) {
+ return model.user.emailAddress;
+ } else {
+ return model.user.emailAddress;
+ }
+ },
),
- Container(
- height: MediaQuery.of(context).size.height * 0.12,
- width: double.infinity,
-
- padding: EdgeInsets.all(15),
- child: SecondaryButton(
- textColor: Colors.white,
- color: Color.fromRGBO(63, 72, 74, 1,),
- label: " VIEW LIST OF CHILDREN",
- //
- onTap: () => Navigator.push(
- context,
- FadePage(
- page: ChildPage(),
-
-
-
- ),
+ ),
+ ),
+ Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ padding: EdgeInsets.all(15),
+ child: SecondaryButton(
+ textColor: Colors.white,
+ color: checkedValue == false
+ ? Colors.white24
+ : Color.fromRGBO(
+ 63,
+ 72,
+ 74,
+ 1,
),
-
-
- ),
- ),
-
- // Texts(
- // // TranslationBase.of(context).advancePaymentLabel,
- // model.user.emailAddress,
- // textAlign: TextAlign.center,
- // ),
- SizedBox(
- height: 12,
- ),
- SizedBox(
- height: 12,
- ),
- SizedBox(
- height: 12,
- ),
-
- SizedBox(
- height: 12,
- ),
-
- SizedBox(
- height: 12,
+ label: TranslationBase.of(context).updateEmail,
+ //
+ onTap: () {
+ model.user.emailAddress = addEmail.toString();
+ AppToast.showSuccessToast(
+ message: TranslationBase.of(context).updatedEmail);
+ // bloodDetails.city=_selectedHospital.toString();
+
+ // bloodDetails.
+ },
+ ),
+ ),
+ Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ padding: EdgeInsets.all(15),
+ child: SecondaryButton(
+ textColor: Colors.white,
+ color: Color.fromRGBO(
+ 63,
+ 72,
+ 74,
+ 1,
),
-
- SizedBox(
- height: 10,
+ label: TranslationBase.of(context).viewListChildren,
+ //
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: ChildPage(),
+ ),
),
- // Row(
- // mainAxisAlignment: MainAxisAlignment.center,
- // crossAxisAlignment: CrossAxisAlignment.center,
- // children: [
- // Center(
- // child: Container(
- // color: Colors.white,
- // width: 350,
- // child: InkWell(
- // onTap: () {
- // showDialog(
- // context: context,
- // builder: (_) =>
- // AssetGiffyDialog(
- // title: Text(
- // "",
- // style: TextStyle(
- // fontSize: 22.0,
- // fontWeight:
- // FontWeight
- // .w600),
- // ),
- // image: Image.asset(
- // 'assets/images/BloodChrt_EN.png'),
- // buttonCancelText:
- // Text('cancel'),
- // buttonCancelColor:
- // Colors.grey,
- // onlyCancelButton: true,
- // ));
- // },
- // child: Container(
- // width: 250,
- // height: 200,
- // child:Image.asset(
- // 'assets/images/BloodChrt_EN.png')),
- // ),
- // ),
- // ),
- // ],
- // ),
-
- SizedBox(
- height: MediaQuery.of(context).size.height * 0.15,
- )
- ],
+ ),
),
-
- ),
+ SizedBox(
+ height: MediaQuery.of(context).size.height * 0.15,
+ )
+ ],
),
+ ),
+ ),
);
}
}
-
diff --git a/lib/pages/ChildVaccines/dialogs/SelectGenderDialog.dart b/lib/pages/ChildVaccines/dialogs/SelectGenderDialog.dart
index 259bbdb7..33c11020 100644
--- a/lib/pages/ChildVaccines/dialogs/SelectGenderDialog.dart
+++ b/lib/pages/ChildVaccines/dialogs/SelectGenderDialog.dart
@@ -14,6 +14,7 @@ class SelectGenderDialog extends StatefulWidget {
}
class _SelectGenderDialogState extends State {
+
@override
Widget build(BuildContext context) {
return SimpleDialog(
diff --git a/lib/pages/ChildVaccines/vaccinationtable_page.dart b/lib/pages/ChildVaccines/vaccinationtable_page.dart
index c160acfb..4654c75a 100644
--- a/lib/pages/ChildVaccines/vaccinationtable_page.dart
+++ b/lib/pages/ChildVaccines/vaccinationtable_page.dart
@@ -1,101 +1,154 @@
+import 'package:diplomaticquarterapp/core/model/childvaccines/List_BabyInformationModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/vaccination_table_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/reports_monthly_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.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';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_html/flutter_html.dart';
-import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
-
+import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'dialogs/SelectGenderDialog.dart';
class VaccinationTablePage extends StatelessWidget {
+ final List_BabyInformationModel babyInfo;
+
+ const VaccinationTablePage({Key key, this.babyInfo}) : super(key: key);
@override
Widget build(BuildContext context) {
var checkedValue;
return BaseView(
- onModelReady: (model) => model.getCreateVaccinationTable(),//getUserTermsAndConditions(),
+ onModelReady: (model) => model.getCreateVaccinationTable(),
builder: (_, model, w) => AppScaffold(
isShowAppBar: true,
baseViewModel: model,
- appBarTitle: "Vaccination",
+ appBarTitle: TranslationBase.of(context).vaccination,
body: SingleChildScrollView(
- child:Container(
- margin: EdgeInsets.only(left: 15,right: 15,top: 70),
+ child: Container(
+ margin: EdgeInsets.only(left: 15, right: 15, top: 10),
child: Column(
- children: [//babyInformationModelList.length
- ...List.generate(model.creteVaccinationTableModelList.length, (index) =>
- Container(
- decoration: BoxDecoration(
- shape: BoxShape.rectangle,
- border: Border.all(color: Colors.white, width: 0.5),
- borderRadius: BorderRadius.all(Radius.circular(5)),
- color: Colors.white,
-
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Row(
+ children: [
+ Expanded(
+ child: Column(
+ children: [
+ Texts(TranslationBase.of(context).childName),
+ Texts(babyInfo.babyName??'',fontWeight: FontWeight.w600,),
+ ],
+ ),
+ ),
+ Expanded(
+ child: Column(children: [
+
+ Texts(TranslationBase.of(context).childDob),
+ Row(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Icon(FontAwesomeIcons.calendarCheck,color: Colors.red,),
+ SizedBox(width: 15,),
+ Texts(DateUtil.yearMonthDay(babyInfo.dOB)??''),
+ ],
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ SizedBox(height: 15,),
+ Divider(),
+ Column(
+ children: [
+ Row(
+ children: [
+ Texts(TranslationBase.of(context).visit),
+ SizedBox(
+ width: 10,
+ ),
+ Expanded(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ Texts(TranslationBase.of(context).descriptionVaccination),
+ ],
+ ),
),
- padding: EdgeInsets.all(12),
- width: double.infinity,
- child: Column(
+ Texts(TranslationBase.of(context).dueDate),
+ ],
+ ),
+ ],
+ ),
+ ...List.generate(
+ model.creteVaccinationTableModelList.length,
+ (index) => Container(
+ // decoration: BoxDecoration(
+ // shape: BoxShape.rectangle,
+ // border: Border.all(color: Colors.white, width: 0.5),
+ // borderRadius: BorderRadius.all(Radius.circular(5)),
+ // // color: Colors.white,
+ // ),
+ padding: EdgeInsets.all(12),
+ width: double.infinity,
+ child: Column(
+ children: [
+ Row(
children: [
- Row(children: [
- Text(model.creteVaccinationTableModelList[index].visit),
- SizedBox(width: 10,),
-
- Expanded(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.start,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Html(
- // data:""//model.creteVaccinationTableModelList[index].vaccinesDescription
- data:model.creteVaccinationTableModelList[index].vaccinesDescription,
-
- ),
- ],),
- ),
- Text(model.creteVaccinationTableModelList[index].givenAt),
-
-
- ],),
- Divider(color:Colors.black ,),
-
+ Texts(model
+ .creteVaccinationTableModelList[index].visit),
+ SizedBox(
+ width: 10,
+ ),
+ Expanded(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Html(
+ data: model.creteVaccinationTableModelList[index].vaccinesDescription,
+ ),
+ ],
+ ),
+ ),
+ Texts(model.creteVaccinationTableModelList[index].givenAt),
],
- )
-
-
- )
-
+ ),
+ Divider(
+ color: Colors.white,height: 3,thickness: 1.0,
+ ),
+ ],
+ ),
+ ),
)
],
),
-
+ ),
),
- ),
- bottomSheet: Container(
- height: MediaQuery.of(context).size.height * 0.12,
- width: double.infinity,
-
- padding: EdgeInsets.all(12),
- child: SecondaryButton(
- textColor: Colors.white,
- color: checkedValue== false ?Colors.white24:Color.fromRGBO(63, 72, 74, 1,),
- label: "Send Email ",
- //
- onTap: () {
- //SelectGenderDialog();
-//===============
- showDialog(
- context: context,
- child: SelectGenderDialog(
- ),
- );
- //=========
- }
-
-
+ bottomSheet: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ padding: EdgeInsets.all(12),
+ child: SecondaryButton(
+ textColor: Colors.white,
+ color: checkedValue == false
+ ? Colors.white24
+ : Color.fromRGBO(63, 72, 74, 1,),
+ label: TranslationBase.of(context).sendEmail,
+ onTap: () {
+ showDialog(
+ context: context,
+ child: SelectGenderDialog(),
+ );
+ },
+ ),
),
),
),
diff --git a/lib/pages/DrawerPages/family/add-family-member.dart b/lib/pages/DrawerPages/family/add-family-member.dart
index 35b19ccd..084b43e6 100644
--- a/lib/pages/DrawerPages/family/add-family-member.dart
+++ b/lib/pages/DrawerPages/family/add-family-member.dart
@@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
@@ -144,7 +145,7 @@ class _AddMember extends State {
request.zipCode = countryCode;
request.isRegister = false;
request.patientStatus = 2;
- loading(true);
+ GifLoaderDialogUtils.showMyDialog(context);
familyFileProvider
.addFamilyFile(request)
.then((value) => manageFamily(value))
@@ -154,18 +155,21 @@ class _AddMember extends State {
}
manageFamily(addMemberResult) {
- loading(false);
- ConfirmDialog dialog = new ConfirmDialog(
- context: context,
- confirmMessage: addMemberResult['ShareFamilyFileObj']['Message'],
- okText: TranslationBase.of(context).confirm,
- cancelText: TranslationBase.of(context).cancel_nocaps,
- okFunction: () => {
- insertFamilyData(addMemberResult),
- ConfirmDialog.closeAlertDialog(context)
- },
- cancelFunction: () => {});
- dialog.showAlertDialog(context);
+ GifLoaderDialogUtils.hideDialog(context);
+ if(addMemberResult is String ==false){
+ ConfirmDialog dialog = new ConfirmDialog(
+ context: context,
+ confirmMessage: addMemberResult['ShareFamilyFileObj']['Message'],
+ okText: TranslationBase.of(context).confirm,
+ cancelText: TranslationBase.of(context).cancel_nocaps,
+ okFunction: () => {
+ insertFamilyData(addMemberResult),
+ ConfirmDialog.closeAlertDialog(context)
+ },
+ cancelFunction: () => {});
+ dialog.showAlertDialog(context);
+ }
+
}
insertFamilyData(addMemberResult) {
diff --git a/lib/pages/DrawerPages/family/add-family_type.dart b/lib/pages/DrawerPages/family/add-family_type.dart
index 96e055b3..2c85b043 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,
@@ -113,9 +113,10 @@ class AddFamilyMemberType extends StatelessWidget {
AppText(
TranslationBase.of(context)
.fileNo,
+ textAlign: TextAlign.center,
fontSize: SizeConfig
.textMultiplier *
- 2,
+ 1.8,
)
],
),
diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart
index d3de1b62..0e6d86bf 100644
--- a/lib/pages/DrawerPages/family/my-family.dart
+++ b/lib/pages/DrawerPages/family/my-family.dart
@@ -1,7 +1,10 @@
+import 'dart:ui';
+
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
+import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
@@ -31,7 +34,7 @@ class _MyFamily extends State with TickerProviderStateMixin {
AppSharedPreferences sharedPref = new AppSharedPreferences();
var userID;
TabController _tabController;
-
+ int _tabIndex = 0;
@override
void initState() {
_tabController = new TabController(length: 2, vsync: this, initialIndex: 0);
@@ -41,41 +44,102 @@ class _MyFamily extends State with TickerProviderStateMixin {
bool expandFlag = false;
Widget build(BuildContext context) {
- // return Scaffold(
- // appBar: AppBar(
- // bottom: TabBar(
- // indicatorColor: Colors.red,
- // tabs: [
- // Padding(
- // padding: EdgeInsets.all(6),
- // child: AppText(
- // TranslationBase.of(context).family,
- // color: Colors.white,
- // )),
- // Padding(
- // padding: EdgeInsets.all(6),
- // child: AppText(
- // TranslationBase.of(context).request,
- // color: Colors.white,
- // )),
- // ],
- // controller: _tabController,
- // ),
- //
- // ),
- // body: TabBarView(
- // // physics: NeverScrollableScrollPhysics(),
- // children: [myFamilyDetails(context), myFamilyRequest(context)],
- // controller: _tabController),
- // );
- // //bottomNavigationBar: BottomBarSearch());
+ return AppScaffold(
+ appBarTitle: TranslationBase.of(context).myFamilyFiles,
+ isShowAppBar: widget.isAppbarVisible,
+ body: Scaffold(
+ extendBodyBehindAppBar: true,
+ appBar: PreferredSize(
+ preferredSize: Size.fromHeight(65.0),
+ child: Stack(
+ children: [
+ Positioned(
+ bottom: 1,
+ left: 0,
+ right: 0,
+ child: BackdropFilter(
+ filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
+ child: Container(
+ color: Theme.of(context)
+ .scaffoldBackgroundColor
+ .withOpacity(0.8),
+ height: 70.0,
+ ),
+ ),
+ ),
+ Center(
+ child: Container(
+ height: 60.0,
+ margin: EdgeInsets.only(top: 10.0),
+ width: MediaQuery.of(context).size.width * 0.92, // 0.9,
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ color: Theme.of(context).dividerColor,
+ width: 0.9), //width: 0.7
+ ),
+ color: Colors.white),
+ child: Center(
+ child: TabBar(
+ isScrollable: true,
+ controller: _tabController,
+ indicatorWeight: 5.0,
+ //indicatorSize: TabBarIndicatorSize.label,
+ indicatorSize: TabBarIndicatorSize.tab,
+
+ indicatorColor: Colors.red[800],
+ labelColor: Theme.of(context).primaryColor,
+ labelPadding:
+ EdgeInsets.only(top: 4.0, left: 35.0, right: 35.0),
+ unselectedLabelColor: Colors.grey[800],
+ tabs: [
+
+ Container(
+ width: MediaQuery.of(context).size.width * 0.30,
+ child: Center(
+ child: AppText(TranslationBase.of(context).family),
+ ),
+ ),
+ Container(
+ width: MediaQuery.of(context).size.width * 0.30,
+ child: Center(
+ child: AppText(TranslationBase.of(context).request),
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ body: Column(
+ children: [
+ Expanded(
+ child: TabBarView(
+ physics: BouncingScrollPhysics(),
+ controller: _tabController,
+ children: [
+ myFamilyDetails(context),
+ myFamilyRequest(context)
+ ],
+ ),
+ )
+ ],
+ ),
+ ),
+ );
+
+
+
return AppScaffold(
appBarTitle: TranslationBase.of(context).myFamilyFiles,
isShowAppBar: widget.isAppbarVisible,
body: SingleChildScrollView(
child: Container(
- height: SizeConfig.screenHeight,
+ height: SizeConfig.screenHeight *.9,
width: SizeConfig.realScreenWidth,
padding: EdgeInsets.all(20),
child: Stack(
@@ -84,12 +148,11 @@ class _MyFamily extends State with TickerProviderStateMixin {
controller: _tabController,
indicatorColor: Colors.red,
tabs: [
- Padding(
- padding: EdgeInsets.all(6),
- child: Text(TranslationBase.of(context).family)),
- Padding(
- padding: EdgeInsets.all(6),
- child: Text(TranslationBase.of(context).request)),
+ Tab( // padding: EdgeInsets.all(6),
+ child:AppText(TranslationBase.of(context).family)),
+ Tab(
+ // padding: EdgeInsets.all(6),
+ child:AppText(TranslationBase.of(context).request)),
],
),
TabBarView(
@@ -228,7 +291,7 @@ class _MyFamily extends State with TickerProviderStateMixin {
SingleChildScrollView(
child: Container(
height: MediaQuery.of(context).size.height,
- margin: EdgeInsets.only(top:50),
+ margin: EdgeInsets.only(top:65),
child: Column(
children: [
RoundedContainer(
@@ -255,34 +318,37 @@ class _MyFamily extends State with TickerProviderStateMixin {
else
return Column(
children: [
- Row(
- mainAxisAlignment:
- MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- flex: 3,
- child: Text(TranslationBase.of(context)
- .request)),
- Expanded(
- flex: 2,
- child: Text(
- TranslationBase.of(context)
- .switchUser,
- )),
- Expanded(
- flex: 1,
- child: Text(
- TranslationBase.of(context)
- .deleteView,
- )),
- ],
- ),
+ // Padding(padding: EdgeInsets.only(left:10, right:10),
+ // child:
+ // Row(
+ // mainAxisAlignment:
+ // MainAxisAlignment.spaceBetween,
+ // children: [
+ // Expanded(
+ // flex: 3,
+ // child: Text(TranslationBase.of(context)
+ // .request)),
+ // Expanded(
+ // flex: 2,
+ // child: Text(
+ // TranslationBase.of(context)
+ // .switchUser,
+ // )),
+ // Expanded(
+ // flex: 1,
+ // child: Text(
+ // TranslationBase.of(context)
+ // .deleteView,
+ // )),
+ // ],
+ // )),
Column(children: [
- Row(children: [
+ Padding(
+ padding: EdgeInsets.only(left:10, right:10), child:Row(children: [
Expanded(flex: 3, child: AppText('Name')),
Expanded(flex: 1, child: AppText('Allow')),
Expanded(flex: 1, child: AppText('Reject')),
- ]),
+ ])),
Column(
children:familyFileProvider.allSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList
.map((result) {
@@ -302,8 +368,8 @@ class _MyFamily extends State with TickerProviderStateMixin {
color: Colors.black,
),
onPressed: () {
- acceptRequest(
- result, context);
+ acceptRemoveRequest(
+ result.iD, 3, context);
},
)),
Expanded(
@@ -314,8 +380,8 @@ class _MyFamily extends State with TickerProviderStateMixin {
color: Colors.black,
),
onPressed: () {
- deleteRequest(
- result, context);
+ acceptRemoveRequest(
+ result.iD,4, context);
},
))
],
@@ -371,7 +437,7 @@ class _MyFamily extends State with TickerProviderStateMixin {
flex: 2,
child: AppText(
result.statusDescription,
- color: Colors.red,
+ color: result.status==3 ? Colors.green: Colors.red,
)),
],
));
@@ -405,31 +471,36 @@ class _MyFamily extends State with TickerProviderStateMixin {
else
return Column(
children: [
- Row(
- mainAxisAlignment:
- MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- flex: 3,
- child: Text(
- TranslationBase.of(context).request)),
- Expanded(
- flex: 2,
- child: Text(
- TranslationBase.of(context).switchUser,
- )),
- Expanded(
- flex: 1,
- child: Text(
- TranslationBase.of(context).deleteView,
- )),
- ],
- ),
+ // Padding(
+ // padding:EdgeInsets.only(left:10, right:10),
+ // child: Row(
+ // mainAxisAlignment:
+ // MainAxisAlignment.spaceBetween,
+ // children: [
+ // Expanded(
+ // flex: 3,
+ // child: AppText(
+ // TranslationBase.of(context).request),
+ // ),
+ // Expanded(
+ // flex: 2,
+ // child: AppText(
+ // TranslationBase.of(context).switchUser,
+ // )),
+ // Expanded(
+ // flex: 1,
+ // child: AppText(
+ // TranslationBase.of(context).deleteView,
+ // )),
+ // ],
+ // )),
Column(children: [
- Row(children: [
+ Padding(
+ padding:EdgeInsets.only(left:10, right:10),
+ child: Row(children: [
Expanded(flex: 3, child: AppText('Name')),
Expanded(flex: 1, child: AppText('Delete')),
- ]),
+ ])),
Column(
children: familyFileProvider.allSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList
.map((result) {
@@ -439,7 +510,7 @@ class _MyFamily extends State with TickerProviderStateMixin {
children: [
Expanded(
flex: 3,
- child: Text(result.patientName)),
+ child: AppText(result.patientName)),
Expanded(
flex: 1,
child: IconButton(
@@ -448,8 +519,8 @@ class _MyFamily extends State with TickerProviderStateMixin {
color: Colors.black,
),
onPressed: () {
- deleteRequest(
- result, context);
+ deactivateRequest(result.iD,
+ 5, context);
},
)),
],
@@ -514,8 +585,10 @@ class _MyFamily extends State with TickerProviderStateMixin {
}
refreshFamily(context) {
- sharedPref.remove(FAMILY_FILE);
- (context as Element).reassemble();
+ //sharedPref.remove(FAMILY_FILE);
+ setState(() {
+ sharedPref.remove(FAMILY_FILE);
+ });
}
switchUser(user, context) {
@@ -541,6 +614,24 @@ class _MyFamily extends State with TickerProviderStateMixin {
);
}
- deleteRequest(result, context) {}
- acceptRequest(result, context) {}
+ deactivateRequest(ID, status, context) {
+ GifLoaderDialogUtils.showMyDialog(context);
+ Map request = {};
+ request["ID"] = ID;
+ request["Status"] = status;
+ this.familyFileProvider.deactivateFamily(request).then((value) => {
+ GifLoaderDialogUtils.hideDialog(context),
+ refreshFamily(context)
+ });
+ }
+ acceptRemoveRequest(ID, status, context) {
+ GifLoaderDialogUtils.showMyDialog(context);
+ Map request = {};
+ request["ID"] = ID;
+ request["Status"] = status;
+ this.familyFileProvider.acceptRejectFamily(request).then((value) => {
+ GifLoaderDialogUtils.hideDialog(context),
+ refreshFamily(context)
+ });
+ }
}
diff --git a/lib/pages/MyAppointments/AppointmentDetails.dart b/lib/pages/MyAppointments/AppointmentDetails.dart
index db2b0643..109af9d1 100644
--- a/lib/pages/MyAppointments/AppointmentDetails.dart
+++ b/lib/pages/MyAppointments/AppointmentDetails.dart
@@ -203,6 +203,7 @@ class _AppointmentDetailsState extends State
MaterialPageRoute(
builder: (context) => BookConfirm(
doctor: getDoctorObject(),
+ isLiveCareAppointment: widget.appo.isLiveCareAppointment,
selectedDate: DocAvailableAppointments.selectedDate,
selectedTime: DocAvailableAppointments.selectedTime)));
}
diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart
index b0315d28..96835d7b 100644
--- a/lib/pages/ToDoList/ToDo.dart
+++ b/lib/pages/ToDoList/ToDo.dart
@@ -606,6 +606,9 @@ class _ToDoState extends State {
appo.projectID.toString(),
authenticatedUser.emailAddress,
paymentMethod,
+ authenticatedUser.patientType,
+ authenticatedUser.firstName,
+ authenticatedUser.patientID,
authenticatedUser,
widget.browser);
}
diff --git a/lib/pages/feedback/feedback_home_page.dart b/lib/pages/feedback/feedback_home_page.dart
index 309b5713..3d761bd3 100644
--- a/lib/pages/feedback/feedback_home_page.dart
+++ b/lib/pages/feedback/feedback_home_page.dart
@@ -74,7 +74,7 @@ class _FeedbackHomePageState extends State
controller: _tabController,
indicatorWeight: 5.0,
indicatorSize: TabBarIndicatorSize.label,
- indicatorColor: Colors.red[800],
+ indicatorColor: Theme.of(context).primaryColor,
labelColor: Theme.of(context).primaryColor,
labelPadding:
EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),
diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart
index 27d2f353..14463825 100644
--- a/lib/pages/feedback/send_feedback_page.dart
+++ b/lib/pages/feedback/send_feedback_page.dart
@@ -514,7 +514,7 @@ class FeedbackTypeDialogState extends State {
leading: Radio(
value: MessageType.ComplaintOnAnAppointment,
groupValue: model.messageTypeDialog,
- activeColor: Colors.red[800],
+ activeColor: Theme.of(context).primaryColor,
onChanged: (MessageType value) =>
model.setMessageDialogType(value),
),
@@ -538,7 +538,7 @@ class FeedbackTypeDialogState extends State {
leading: Radio(
value: MessageType.ComplaintWithoutAppointment,
groupValue: model.messageTypeDialog,
- activeColor: Colors.red[800],
+ activeColor: Theme.of(context).primaryColor,
onChanged: (MessageType value) =>
model.setMessageDialogType(value),
),
@@ -562,7 +562,7 @@ class FeedbackTypeDialogState extends State {
leading: Radio(
value: MessageType.Question,
groupValue: model.messageTypeDialog,
- activeColor: Colors.red[800],
+ activeColor: Theme.of(context).primaryColor,
onChanged: (MessageType value) =>
model.setMessageDialogType(value),
),
@@ -586,7 +586,7 @@ class FeedbackTypeDialogState extends State {
leading: Radio(
value: MessageType.Compliment,
groupValue: model.messageTypeDialog,
- activeColor: Colors.red[800],
+ activeColor: Theme.of(context).primaryColor,
onChanged: (MessageType value) =>
model.setMessageDialogType(value),
),
@@ -610,7 +610,7 @@ class FeedbackTypeDialogState extends State {
leading: Radio(
value: MessageType.Suggestion,
groupValue: model.messageTypeDialog,
- activeColor: Colors.red[800],
+ activeColor: Theme.of(context).primaryColor,
onChanged: (MessageType value) =>
model.setMessageDialogType(value),
),
@@ -644,7 +644,7 @@ class FeedbackTypeDialogState extends State {
child: Center(
child: Texts(
TranslationBase.of(context).cancel,
- color: Colors.red,
+ color: Theme.of(context).primaryColor,
),
),
),
diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart
index 6654d36d..79f8f7b1 100644
--- a/lib/pages/landing/home_page.dart
+++ b/lib/pages/landing/home_page.dart
@@ -66,7 +66,7 @@ class _HomePageState extends State {
right: 5,
child: Container(
width:
- MediaQuery.of(context).size.width * 0.8,
+ MediaQuery.of(context).size.width * 0.8,
child: Row(
children: [
Expanded(
@@ -81,7 +81,7 @@ class _HomePageState extends State {
fit: BoxFit.fill,
),
color:
- Colors.white.withOpacity(0.3),
+ Colors.white.withOpacity(0.3),
borderRadius: BorderRadius.all(
Radius.circular(5))),
child: Container(
@@ -92,17 +92,17 @@ class _HomePageState extends State {
style: TextStyle(
color: Colors.white,
fontWeight:
- FontWeight.bold,
+ FontWeight.bold,
fontSize: 18.0)),
Row(
children: [
Container(
margin: EdgeInsets.only(
top: 15.0, left: 3.5, right: 3.5),
- 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(
@@ -115,34 +115,34 @@ class _HomePageState extends State {
color: Colors
.white,
fontWeight:
- FontWeight
- .bold,
+ FontWeight
+ .bold,
fontSize:
- 16.0)),
+ 16.0)),
ButtonTheme(
shape:
- RoundedRectangleBorder(
+ RoundedRectangleBorder(
borderRadius:
- BorderRadius
- .circular(
- 5.0),
+ BorderRadius
+ .circular(
+ 5.0),
),
minWidth: MediaQuery.of(
- context)
- .size
- .width *
+ context)
+ .size
+ .width *
0.15,
height: 25.0,
child: RaisedButton(
color: Colors
.red[800],
textColor:
- Colors.white,
+ Colors.white,
disabledTextColor:
- Colors.white,
+ Colors.white,
disabledColor:
- new Color(
- 0xFFbcc2c4),
+ new Color(
+ 0xFFbcc2c4),
onPressed: () {
navigateToCovidDriveThru();
},
@@ -150,7 +150,7 @@ class _HomePageState extends State {
"BOOK NOW",
style: TextStyle(
fontSize:
- 12.0)),
+ 12.0)),
),
),
],
@@ -176,11 +176,11 @@ class _HomePageState extends State {
.withOpacity(0.3),
borderRadius: BorderRadius.all(
Radius.circular(5))),
- child: SvgPicture.asset(
- projectViewModel.isArabic
- ? 'assets/images/new-design/livecare_arabic_logo.svg'
- : 'assets/images/new-design/liveCare_white_logo.svg',
- ),
+ child: SvgPicture.asset(
+ projectViewModel.isArabic
+ ? 'assets/images/new-design/livecare_arabic_logo.svg'
+ : 'assets/images/new-design/liveCare_white_logo.svg',
+ ),
),
),
),
@@ -198,240 +198,240 @@ class _HomePageState extends State {
top: 155,
left: MediaQuery.of(context).size.width *
(MediaQuery.of(context).orientation ==
- Orientation.landscape
+ Orientation.landscape
? 0.02
: 0.03),
right: MediaQuery.of(context).size.width *
(MediaQuery.of(context).orientation ==
- Orientation.landscape
+ Orientation.landscape
? 0.02
: 0.03),
child: (!model.isLogin && projectViewModel.user == null)
? Container(
- width: double.infinity,
- height: 125,
- decoration: BoxDecoration(
- color: HexColor('#A59E9E'),
- shape: BoxShape.rectangle,
- 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)),
- child: Container(
- margin: EdgeInsets.all(5),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 8,
- ),
- Texts(
- TranslationBase.of(context).myMedicalFile,
- color: Colors.black87,
- bold: true,
- fontSize: 23,
- ),
- SizedBox(
- height: 5,
+ width: double.infinity,
+ height: 125,
+ decoration: BoxDecoration(
+ color: HexColor('#A59E9E'),
+ shape: BoxShape.rectangle,
+ 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)),
+ child: Container(
+ margin: EdgeInsets.all(5),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 8,
+ ),
+ Texts(
+ TranslationBase.of(context).myMedicalFile,
+ color: Colors.black87,
+ bold: true,
+ fontSize: 23,
+ ),
+ SizedBox(
+ height: 5,
+ ),
+ Texts(
+ TranslationBase.of(context)
+ .myMedicalFileSubTitle,
+ color: Colors.black,
+ fontSize: 16,
+ ),
+ Align(
+ alignment: projectViewModel.isArabic
+ ? Alignment.bottomRight
+ : Alignment.bottomLeft,
+ child: InkWell(
+ onTap: () {
+ widget.goToMyProfile();
+ },
+ child: Container(
+ margin: EdgeInsets.all(2),
+ 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(9)),
),
- Texts(
- TranslationBase.of(context)
- .myMedicalFileSubTitle,
- color: Colors.black,
- fontSize: 16,
+ child: Center(
+ child: Texts(
+ TranslationBase.of(context)
+ .viewMore,
+ color: Colors.white,
+ fontSize: 12,
+ ),
),
- Align(
- alignment: projectViewModel.isArabic
- ? Alignment.bottomRight
- : Alignment.bottomLeft,
- child: InkWell(
- onTap: () {
- widget.goToMyProfile();
- },
- child: Container(
- margin: EdgeInsets.all(2),
- 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(9)),
+ ),
+ ),
+ )
+ ],
+ ),
+ ),
+ )
+ : Container(
+ width: double.infinity,
+ height: 130,
+ decoration: BoxDecoration(
+ color: HexColor('#A59E9E'),
+ shape: BoxShape.rectangle,
+ 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),
+ ),
+ child: Container(
+ margin: EdgeInsets.all(5),
+ child: Column(
+ children: [
+ Row(
+ children: [
+ if (model.user != null)
+ Expanded(
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 8,
),
- child: Center(
- child: Texts(
- TranslationBase.of(context)
- .viewMore,
- color: Colors.white,
- fontSize: 12,
- ),
+ Texts(
+ model.user.firstName +
+ " " +
+ model.user.lastName,
+ color: Colors.grey[100],
+ bold: true,
+ fontSize: 15,
+ ),
+ Texts(
+ '${model.user.patientID}',
+ color: Colors.white,
+ fontSize: 14,
+ ),
+ SizedBox(
+ height: 5,
),
+ Texts(
+ '${DateUtil.getMonthDayYearDateFormatted(model.user.dateofBirthDataTime)} ,${model.user.genderDescription} ${model.user.ageDesc}',
+ color: Colors.grey[100],
+ fontWeight: FontWeight.normal,
+ fontSize: 14,
+ ),
+ ],
+ ),
+ ),
+ InkWell(
+ onTap: () {
+ widget.goToMyProfile();
+ },
+ child: Container(
+ margin: EdgeInsets.all(2),
+ 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(5),
),
),
- )
- ],
- ),
- ),
- )
- : Container(
- width: double.infinity,
- height: 130,
- decoration: BoxDecoration(
- color: HexColor('#A59E9E'),
- shape: BoxShape.rectangle,
- 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),
+ child: Center(
+ child: Texts(
+ TranslationBase.of(context)
+ .viewMore,
+ color: Colors.white,
+ fontSize: 12,
+ ),
+ ),
+ ),
+ )
+ ],
),
- child: Container(
- margin: EdgeInsets.all(5),
- child: Column(
- children: [
- Row(
+ Row(
+ //crossAxisAlignment: CrossAxisAlignment.center,
+ //mainAxisAlignment: MainAxisAlignment.spaceAround,
+ children: [
+ Expanded(
+ child: Row(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceBetween,
children: [
- if (model.user != null)
- Expanded(
- child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.start,
- children: [
- SizedBox(
- height: 8,
- ),
- Texts(
- model.user.firstName +
- " " +
- model.user.lastName,
- color: Colors.grey[100],
- bold: true,
- fontSize: 15,
- ),
- Texts(
- '${model.user.patientID}',
- color: Colors.white,
- fontSize: 14,
- ),
- SizedBox(
- height: 5,
- ),
- Texts(
- '${DateUtil.getMonthDayYearDateFormatted(model.user.dateofBirthDataTime)} ,${model.user.genderDescription} ${model.user.ageDesc}',
- color: Colors.grey[100],
- fontWeight: FontWeight.normal,
- fontSize: 14,
- ),
- ],
- ),
- ),
- InkWell(
- onTap: () {
- widget.goToMyProfile();
- },
- child: Container(
- margin: EdgeInsets.all(2),
- 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(5),
- ),
- ),
- child: Center(
- child: Texts(
- TranslationBase.of(context)
- .viewMore,
- color: Colors.white,
- fontSize: 12,
- ),
- ),
- ),
+ Image.asset(
+ 'assets/images/height_icon.png',
+ width: 35,
+ height: 40,
+ ),
+ Texts(
+ "${model.heightCm}",
+ color: Colors.white,
)
],
),
- Row(
- //crossAxisAlignment: CrossAxisAlignment.center,
- //mainAxisAlignment: MainAxisAlignment.spaceAround,
+ ),
+ SizedBox(
+ width: 3,
+ ),
+ Expanded(
+ child: Row(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceBetween,
children: [
- Expanded(
- child: Row(
- mainAxisAlignment:
- MainAxisAlignment.spaceBetween,
- children: [
- Image.asset(
- 'assets/images/height_icon.png',
- width: 35,
- height: 40,
- ),
- Texts(
- "${model.heightCm}",
- color: Colors.white,
- )
- ],
- ),
- ),
- SizedBox(
- width: 3,
+ Image.asset(
+ 'assets/images/weight_icon.png',
+ width: 25,
+ height: 40,
),
- Expanded(
- child: Row(
- mainAxisAlignment:
- MainAxisAlignment.spaceBetween,
- children: [
- Image.asset(
- 'assets/images/weight_icon.png',
- width: 25,
- height: 40,
- ),
- Texts(
- '${model.weightKg}',
- color: Colors.white,
- )
- ],
- ),
- ),
- SizedBox(
- width: 3,
- ),
- Expanded(
- child: Row(
- mainAxisAlignment:
- MainAxisAlignment.spaceBetween,
- children: [
- Image.asset(
- 'assets/images/blood_icon.png',
- width: 35,
- height: 40,
- ),
- Texts(
- '${model.bloadType}',
- color: Colors.white,
- )
- ],
- ),
+ Texts(
+ '${model.weightKg}',
+ color: Colors.white,
+ )
+ ],
+ ),
+ ),
+ SizedBox(
+ width: 3,
+ ),
+ Expanded(
+ child: Row(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceBetween,
+ children: [
+ Image.asset(
+ 'assets/images/blood_icon.png',
+ width: 35,
+ height: 40,
),
+ Texts(
+ '${model.bloadType}',
+ color: Colors.white,
+ )
],
- )
- ],
- ),
- ),
- ),
+ ),
+ ),
+ ],
+ )
+ ],
+ ),
+ ),
+ ),
),
],
),
@@ -630,8 +630,8 @@ class _HomePageState extends State {
context,
FadePage(
page: ErOptions(
- isAppbar: true,
- ))),
+ isAppbar: true,
+ ))),
child: Center(
child: Padding(
padding: const EdgeInsets.all(15.0),
@@ -778,15 +778,15 @@ class _HomePageState extends State {
class DashboardItem extends StatelessWidget {
const DashboardItem(
{this.hasBorder = false,
- this.imageName,
- @required this.child,
- this.onTap,
- Key key,
- this.width,
- this.height,
- this.color,
- this.opacity = 0.4,
- this.hasColorFilter = true})
+ this.imageName,
+ @required this.child,
+ this.onTap,
+ Key key,
+ this.width,
+ this.height,
+ this.color,
+ this.opacity = 0.4,
+ this.hasColorFilter = true})
: super(key: key);
final bool hasBorder;
final String imageName;
@@ -807,13 +807,13 @@ class DashboardItem extends StatelessWidget {
height: height != null
? height
: MediaQuery.of(context).orientation == Orientation.portrait
- ? MediaQuery.of(context).size.height * 0.19
- : MediaQuery.of(context).size.height * 0.35,
+ ? MediaQuery.of(context).size.height * 0.19
+ : MediaQuery.of(context).size.height * 0.35,
decoration: BoxDecoration(
color: !hasBorder
? color != null
- ? color
- : HexColor('#050705').withOpacity(opacity)
+ ? color
+ : HexColor('#050705').withOpacity(opacity)
: Colors.white,
borderRadius: BorderRadius.circular(6.0),
border: hasBorder
@@ -821,11 +821,11 @@ class DashboardItem extends StatelessWidget {
: Border.all(width: 0.0, color: Colors.transparent),
image: imageName != null
? DecorationImage(
- image: ExactAssetImage('assets/images/$imageName'),
- fit: BoxFit.cover,
- colorFilter: hasColorFilter ? new ColorFilter.mode(
- Colors.black.withOpacity(0.2), BlendMode.dstIn) : null,
- )
+ image: ExactAssetImage('assets/images/$imageName'),
+ fit: BoxFit.cover,
+ colorFilter: hasColorFilter ? new ColorFilter.mode(
+ Colors.black.withOpacity(0.2), BlendMode.dstIn) : null,
+ )
: null,
),
child: Center(
diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart
index a1750536..b47a1e75 100644
--- a/lib/pages/landing/landing_page.dart
+++ b/lib/pages/landing/landing_page.dart
@@ -15,6 +15,8 @@ import 'package:diplomaticquarterapp/pages/livecare/incoming_call.dart';
import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart';
+import 'package:diplomaticquarterapp/theme/theme_notifier.dart';
+import 'package:diplomaticquarterapp/theme/theme_value.dart';
import 'package:diplomaticquarterapp/uitl/CalendarUtils.dart';
import 'package:diplomaticquarterapp/uitl/LocalNotification.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@@ -46,9 +48,9 @@ class LandingPage extends StatefulWidget {
class _LandingPageState extends State with WidgetsBindingObserver {
int currentTab = 0;
PageController pageController;
- ProjectViewModel projectProvider;
+ ProjectViewModel projectViewModel;
var notificationCount = '';
-
+ var themeNotifier;
///inject the user data
AuthenticatedUserObject authenticatedUserObject =
locator();
@@ -91,6 +93,7 @@ class _LandingPageState extends State with WidgetsBindingObserver {
print("didChangeAppLifecycleState");
print('state = $state');
AppGlobal.context = context;
+
if (state == AppLifecycleState.resumed) {
print(LandingPage.isOpenCallPage);
if (LandingPage.isOpenCallPage) {
@@ -135,13 +138,16 @@ class _LandingPageState extends State with WidgetsBindingObserver {
pageController = PageController(keepPage: true);
_firebaseMessaging.setAutoInitEnabled(true);
+
+
+
if (Platform.isIOS) {
_firebaseMessaging.requestNotificationPermissions();
}
- _firebaseMessaging.getToken().then((String token) {
+ _firebaseMessaging.getToken().then((String token) async {
sharedPref.setString(PUSH_TOKEN, token);
- if (token != null && DEVICE_TOKEN == "") {
+ if (token != null && await sharedPref.getObject(USER_PROFILE) ==null) {
DEVICE_TOKEN = token;
checkUserStatus(token);
}
@@ -151,6 +157,8 @@ class _LandingPageState extends State with WidgetsBindingObserver {
});
//
// //_firebase Background message handler
+ Future.delayed(Duration.zero, () => setTheme());
+ //_firebase Background message handler
// _firebaseMessaging.configure(
// // onMessage: (Map message) async {
// // showDialog("onMessage: $message");
@@ -334,8 +342,9 @@ class _LandingPageState extends State with WidgetsBindingObserver {
@override
Widget build(BuildContext context) {
- ProjectViewModel projectViewModel = Provider.of(context);
-
+ projectViewModel = Provider.of(context);
+ themeNotifier = Provider.of(context);
+ //setTheme();
return Scaffold(
appBar: AppBar(
elevation: 0,
@@ -403,9 +412,7 @@ class _LandingPageState extends State with WidgetsBindingObserver {
SETTINGS,
);
else
- Navigator.of(context).pushNamed(
- WELCOME_LOGIN,
- );
+ login();
}, //do something,
)
],
@@ -453,14 +460,53 @@ class _LandingPageState extends State with WidgetsBindingObserver {
case 1:
return TranslationBase.of(context).medicalProfile;
case 2:
- return TranslationBase.of(context).mySchedule;
+ return TranslationBase.of(context).bookAppo;
case 3:
return TranslationBase.of(context).services;
case 4:
return TranslationBase.of(context).bookAppo;
}
}
-
+ setTheme() async{
+ //
+ // defaultTheme =
+ // ThemeData(
+ // fontFamily:projectViewModel.isArabic ? 'Cairo' : 'WorkSans',
+ // primarySwatch: Colors.blue,
+ // visualDensity: VisualDensity.adaptivePlatformDensity,
+ // brightness: Brightness.light,
+ // pageTransitionsTheme: const PageTransitionsTheme(
+ // builders: {
+ // TargetPlatform.android: ZoomPageTransitionsBuilder(),
+ // TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
+ // },
+ // ),
+ // hintColor: Colors.grey[400],
+ // disabledColor: Colors.grey[300],
+ // errorColor: Color.fromRGBO(235, 80, 60, 1.0),
+ // scaffoldBackgroundColor: Color(0xffEEEEEE),
+ // textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5),
+ // textSelectionHandleColor: Colors.grey,
+ // canvasColor: Colors.white,
+ // backgroundColor: Colors.white,
+ // highlightColor: Colors.grey[100].withOpacity(0.4),
+ // splashColor: Colors.transparent,
+ // primaryColor: Color(0xff40ACC9),
+ // bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)),
+ // cursorColor: Colors.grey,
+ // cardColor: Colors.white,
+ // iconTheme: IconThemeData(),
+ // appBarTheme: AppBarTheme(
+ // color: Color(0xff40ACC9),
+ // brightness: Brightness.dark,
+ // elevation: 10.0,
+ // actionsIconTheme: IconThemeData(
+ // color: Color(0xff40ACC9),
+ // ),
+ // ),
+ // );
+ // themeNotifier.setTheme(defaultTheme);
+ }
void checkUserStatus(token) async {
authService
.selectDeviceImei(token)
@@ -507,4 +553,15 @@ class _LandingPageState extends State with WidgetsBindingObserver {
_changeCurrentTab(2);
}
}
+ login() async {
+ var data = await sharedPref.getObject(IMEI_USER_DATA);
+ sharedPref.remove(REGISTER_DATA_FOR_LOGIIN);
+ if (data != null) {
+ Navigator.of(context).pushNamed(CONFIRM_LOGIN);
+ } else {
+ Navigator.of(context).pushNamed(
+ WELCOME_LOGIN,
+ );
+ }
+ }
}
diff --git a/lib/pages/livecare/widgets/clinic_list.dart b/lib/pages/livecare/widgets/clinic_list.dart
index d2e52b72..8ce3b7b0 100644
--- a/lib/pages/livecare/widgets/clinic_list.dart
+++ b/lib/pages/livecare/widgets/clinic_list.dart
@@ -285,6 +285,9 @@ class _clinic_listState extends State {
"12",
authenticatedUser.emailAddress,
paymentMethod,
+ authenticatedUser.patientType,
+ authenticatedUser.firstName,
+ authenticatedUser.patientID,
authenticatedUser,
browser);
}
diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart
index e016776e..87eaf1ce 100644
--- a/lib/pages/login/confirm-login.dart
+++ b/lib/pages/login/confirm-login.dart
@@ -370,7 +370,7 @@ class _ConfirmLogin extends State {
if (authenticated == true) {
- if(user.logInType==2 || user.logInType ==3){
+ if(user !=null && (user.logInType==2 || user.logInType ==3)){
this.checkActivationCode();
}else{
var request = this.getCommonRequest(type: type);
@@ -460,7 +460,7 @@ class _ConfirmLogin extends State {
this.deviceToken = await sharedPref.getString(PUSH_TOKEN);
this.lastLogin = await sharedPref.getInt(LAST_LOGIN) != null
? await sharedPref.getInt(LAST_LOGIN)
- : user.logInType !=null ? user.logInType : null;
+ : user !=null ? user.logInType : null;
//this.cs.sharedService.getStorage(AuthenticationService.LAST_LOGIN);
}
@@ -525,6 +525,7 @@ class _ConfirmLogin extends State {
}
else
{
+ sharedPref.remove(FAMILY_FILE),
result.list.isFamily = false,
userData = result.list,
sharedPref.setObject(MAIN_USER, result.list),
diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart
index 700a0d0c..25ad13bb 100644
--- a/lib/pages/login/login.dart
+++ b/lib/pages/login/login.dart
@@ -241,6 +241,7 @@ class _Login extends State {
}
// request.isRegister = false;
this.authService.checkActivationCode(request, code).then((result) => {
+ sharedPref.remove(FAMILY_FILE),
result = CheckActivationCode.fromJson(result),
result.list.isFamily =false,
this.sharedPref.setObject(USER_PROFILE, result.list),
diff --git a/lib/pages/login/register-info.dart b/lib/pages/login/register-info.dart
index 467068cc..4ede2683 100644
--- a/lib/pages/login/register-info.dart
+++ b/lib/pages/login/register-info.dart
@@ -1,5 +1,9 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/config/size_config.dart';
+import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
+import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_paitent_authentication_req.dart';
import 'package:diplomaticquarterapp/models/Authentication/register_info_response.dart';
import 'package:diplomaticquarterapp/models/Authentication/register_user_requet.dart';
@@ -7,6 +11,7 @@ import 'package:diplomaticquarterapp/pages/login/login-type.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@@ -20,6 +25,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hijri/hijri_calendar.dart';
import 'package:intl/intl.dart';
+import 'package:provider/provider.dart';
class RegisterInfo extends StatefulWidget {
@override
@@ -45,6 +51,11 @@ class _RegisterInfo extends State {
String email = '';
String location = '1';
+ AuthenticatedUserObject authenticatedUserObject =
+ locator();
+ AppointmentRateViewModel appointmentRateViewModel =
+ locator();
+ ProjectViewModel projectViewModel;
@override
void initState() {
@@ -56,6 +67,7 @@ class _RegisterInfo extends State {
@override
Widget build(BuildContext context) {
+ projectViewModel = Provider.of(context);
return AppScaffold(
appBarTitle: TranslationBase.of(context).register,
isShowAppBar: true,
@@ -296,27 +308,34 @@ class _RegisterInfo extends State {
}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)
+ sharedPref.remove(FAMILY_FILE),
+ result['List'][0]['IsFamily'] = false,
+ sharedPref.setObject(USER_PROFILE, result['List'][0]),
+ this.sharedPref.setObject(MAIN_USER, result['List'][0]),
+ sharedPref.setObject(LOGIN_TOKEN_ID, result["LogInTokenID"]),
+ sharedPref.setString(TOKEN, result["AuthenticationTokenID"]),
+ authenticatedUserObject.isLogin = true,
+ appointmentRateViewModel.isLogin = true,
+ projectViewModel.isLogin = true,
+
+ Navigator.of(context).pushNamed(HOME),
+ AppToast.showSuccessToast(message: result["ErrorEndUserMessage"])
}
- }).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)
- },
- cancelFunction: () => {ConfirmDialog.closeAlertDialog(context)});
- dialog.showAlertDialog(context);
-
- });
+ });
+ // .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)
+ // },
+ // cancelFunction: () => {ConfirmDialog.closeAlertDialog(context)});
+ // dialog.showAlertDialog(context);
+ //
+ // });
}
getRegisterInfo() async {
@@ -349,15 +368,15 @@ class _RegisterInfo extends State {
"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,
+ "MiddleNameN":registerInfo.secondNameAr,
+ "MiddleName":registerInfo.secondNameEn,
"LastNameN": registerInfo.lastNameAr =='-'? "" : registerInfo.lastNameAr,
"LastName": registerInfo.lastNameEn =='-' ? "": registerInfo.lastNameEn,
"StrDateofBirth": registerInfo.dateOfBirth,
"DateofBirth": DateUtil.convertISODateToJsonDate(
registerInfo.dateOfBirth.replaceAll('/', '-')),
"Gender": registerInfo.gender == 'M' ? 1 : 2,
- "NationalityID": registerInfo.nationality,
+ "NationalityID": registerInfo.nationalityCode,
"DateofBirthN": date,
"EmailAddress": email,
"SourceType": location,
@@ -374,8 +393,8 @@ class _RegisterInfo extends State {
}
bool isValid() {
- if (location != null ||
- language != null ||
+ if (location != null &&
+ language != null &&
Utils.validEmail(email) == true) {
return true;
} else {
diff --git a/lib/pages/login/register.dart b/lib/pages/login/register.dart
index ea47a4fa..042f56fe 100644
--- a/lib/pages/login/register.dart
+++ b/lib/pages/login/register.dart
@@ -298,7 +298,7 @@ class _Register extends State {
// DOB: this.dateOption === '1' ? this.dateOfBirth : moment(this.dateOfBirth).format('DD/MM/YYYY'),
// IsHijri: Number(this.dateOption)
// }
- showLoader(true);
+ GifLoaderDialogUtils.showMyDialog(context);
var request = CheckUserStatusRequest();
request.patientIdentificationID = nationalIDorFile.text;
request.dOB = isHijri == 1
@@ -307,7 +307,7 @@ class _Register extends State {
request.isHijri = isHijri;
request.patientOutSA = countryCode == '966' ? 0 : 1;
this.authService.checkUserStatus(request).then((result) => {
- showLoader(false),
+ GifLoaderDialogUtils.hideDialog(context),
if (result is Map)
{
result = CheckUserStatusResponse.fromJson(result),
diff --git a/lib/pages/medical/balance/advance_payment_page.dart b/lib/pages/medical/balance/advance_payment_page.dart
index f19b03ed..9b255711 100644
--- a/lib/pages/medical/balance/advance_payment_page.dart
+++ b/lib/pages/medical/balance/advance_payment_page.dart
@@ -29,7 +29,6 @@ import 'new_text_Field.dart';
enum BeneficiaryType { MyAccount, MyFamilyFiles, OtherAccount, NON }
-
class AdvancePaymentPage extends StatefulWidget {
@override
_AdvancePaymentPageState createState() => _AdvancePaymentPageState();
@@ -238,13 +237,35 @@ class _AdvancePaymentPageState extends State {
_fileTextController.text.isEmpty ||
_selectedHospital == null,
onTap: () {
+ var mobileNum;
+ var patientName;
+
+ if (beneficiaryType == BeneficiaryType.MyFamilyFiles) {
+ mobileNum = selectedPatientFamily.mobileNumber;
+ patientName = selectedPatientFamily.patientName;
+ }
+
+ if (beneficiaryType == BeneficiaryType.MyAccount) {
+ mobileNum = model.user.mobileNumber;
+ patientName = model.user.firstName;
+ }
+
+ if (beneficiaryType == BeneficiaryType.OtherAccount) {
+ mobileNum = _selectedPatientInfo.mobileNumber;
+ patientName = _selectedPatientInfo.fullName;
+ }
+
advanceModel.fileNumber = _fileTextController.text;
advanceModel.hospitalsModel = _selectedHospital;
advanceModel.note = _notesTextController.text;
advanceModel.email = email ?? model.user.emailAddress;
advanceModel.amount = amount;
+ advanceModel.mobileNumber = mobileNum;
+ advanceModel.patientName = patientName;
- model.getPatientInfoByPatientIDAndMobileNumber().then((value) {
+ model
+ .getPatientInfoByPatientIDAndMobileNumber(advanceModel)
+ .then((value) {
if (model.state != ViewState.Error &&
model.state != ViewState.ErrorLocal) {
Utils.hideKeyboard(context);
@@ -269,8 +290,8 @@ class _AdvancePaymentPageState extends State {
);
}
}).showProgressBar(
- text: "Loading",
- backgroundColor: Colors.blue.withOpacity(0.6));
+ text: "Loading",
+ backgroundColor: Colors.blue.withOpacity(0.6));
},
),
)),
@@ -331,22 +352,22 @@ class _AdvancePaymentPageState extends State {
void confirmSelectFamilyDialog(
List getAllSharedRecordsByStatusList) {
- if(getAllSharedRecordsByStatusList.isNotEmpty)
- showDialog(
- context: context,
- child: SelectPatientFamilyDialog(
- getAllSharedRecordsByStatusList: getAllSharedRecordsByStatusList,
- selectedPatientFamily: selectedPatientFamily,
- onValueSelected: (value) {
- setState(() {
- selectedPatientFamily = value;
- _fileTextController.text =
- selectedPatientFamily.patientID.toString();
- advanceModel.depositorName = value.patientName;
- });
- },
- ),
- );
+ if (getAllSharedRecordsByStatusList.isNotEmpty)
+ showDialog(
+ context: context,
+ child: SelectPatientFamilyDialog(
+ getAllSharedRecordsByStatusList: getAllSharedRecordsByStatusList,
+ selectedPatientFamily: selectedPatientFamily,
+ onValueSelected: (value) {
+ setState(() {
+ selectedPatientFamily = value;
+ _fileTextController.text =
+ selectedPatientFamily.responseID.toString();
+ advanceModel.depositorName = value.patientName;
+ });
+ },
+ ),
+ );
}
String getBeneficiaryType() {
diff --git a/lib/pages/medical/balance/confirm_payment_page.dart b/lib/pages/medical/balance/confirm_payment_page.dart
index dbc2537f..4954653d 100644
--- a/lib/pages/medical/balance/confirm_payment_page.dart
+++ b/lib/pages/medical/balance/confirm_payment_page.dart
@@ -137,7 +137,11 @@ class ConfirmPaymentPage extends StatelessWidget {
),
NewTextFields(
hintText: TranslationBase.of(context).depositorName,
- initialValue: advanceModel.depositorName,
+ initialValue: model.user.firstName +
+ " " +
+ model.user.middleName +
+ " " +
+ model.user.lastName,
isEnabled: false,
),
SizedBox(
@@ -217,6 +221,9 @@ class ConfirmPaymentPage extends StatelessWidget {
advanceModel.hospitalsModel.iD.toString(),
advanceModel.email,
paymentMethod,
+ patientInfoAndMobileNumber.patientType,
+ advanceModel.patientName,
+ advanceModel.fileNumber,
authenticatedUser,
browser);
}
@@ -276,6 +283,9 @@ class ConfirmPaymentPage extends StatelessWidget {
res['Amount'],
res['Fort_id'],
res['PaymentMethod'],
+ patientInfoAndMobileNumber.patientType,
+ advanceModel.patientName,
+ advanceModel.fileNumber,
AppGlobal.context)
.then((res) {
print(res['OnlineCheckInAppointments'][0]['AdvanceNumber']);
diff --git a/lib/pages/medical/balance/dialogs/SelectPatientFamilyDialog.dart b/lib/pages/medical/balance/dialogs/SelectPatientFamilyDialog.dart
index bb9afd6c..7d69f084 100644
--- a/lib/pages/medical/balance/dialogs/SelectPatientFamilyDialog.dart
+++ b/lib/pages/medical/balance/dialogs/SelectPatientFamilyDialog.dart
@@ -35,9 +35,11 @@ class _SelectPatientFamilyDialogState extends State {
(index) => Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
+ if(widget.getAllSharedRecordsByStatusList[index].status==3)
SizedBox(
height: 2,
),
+ if(widget.getAllSharedRecordsByStatusList[index].status==3)
Row(
children: [
Expanded(
@@ -65,6 +67,8 @@ class _SelectPatientFamilyDialogState extends State {
)
],
),
+ if(widget.getAllSharedRecordsByStatusList[index].status==3)
+
SizedBox(
height: 5.0,
),
diff --git a/lib/pages/medical/labs/labs_home_page.dart b/lib/pages/medical/labs/labs_home_page.dart
index 68dc180e..f459a057 100644
--- a/lib/pages/medical/labs/labs_home_page.dart
+++ b/lib/pages/medical/labs/labs_home_page.dart
@@ -40,7 +40,7 @@ class LabsHomePage extends StatelessWidget {
leading: Radio(
value: FilterType.Clinic,
groupValue: model.filterType,
- activeColor: Colors.red[800],
+ activeColor: Theme.of(context).primaryColor,
onChanged: (FilterType value) {
model.setFilterType(value);
},
@@ -57,7 +57,7 @@ class LabsHomePage extends StatelessWidget {
leading: Radio(
value: FilterType.Hospital,
groupValue: model.filterType,
- activeColor: Colors.red[800],
+ activeColor: Theme.of(context).primaryColor,
onChanged: (FilterType value) =>
model.setFilterType(value),
),
diff --git a/lib/pages/medical/prescriptions/prescription_details_page.dart b/lib/pages/medical/prescriptions/prescription_details_page.dart
index 4416b9fa..024de17c 100644
--- a/lib/pages/medical/prescriptions/prescription_details_page.dart
+++ b/lib/pages/medical/prescriptions/prescription_details_page.dart
@@ -136,7 +136,7 @@ class PrescriptionDetailsPage extends StatelessWidget {
height: 50,
width: double.infinity,
child: Center(
- child: Text(prescriptionReport.frequencyN))),
+ child: Text(prescriptionReport.frequencyN?? ''))),
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 d2fdae0b..696ea2db 100644
--- a/lib/pages/medical/prescriptions/prescription_items_page.dart
+++ b/lib/pages/medical/prescriptions/prescription_items_page.dart
@@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/Prescriptions.dart';
+import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescription_details_page.dart';
@@ -20,63 +21,124 @@ class PrescriptionItemsPage extends StatelessWidget {
Widget build(BuildContext context) {
return BaseView(
onModelReady: (model) =>
- model.getPrescriptionReport(dischargeNo: prescriptions.dischargeNo,setupID:prescriptions.setupID,clinicID: prescriptions.clinicID,projectId: prescriptions.projectID,episodeID: prescriptions.episodeID),
+ model.getPrescriptionReport(prescriptions: prescriptions),
builder: (_, model, widget) => AppScaffold(
isShowAppBar: true,
appBarTitle: TranslationBase.of(context).prescriptions,
baseViewModel: model,
body: Container(
height: MediaQuery.of(context).size.height * 0.8,
- child: ListView.builder(
- itemBuilder: (context, index) => InkWell(
- onTap: () => Navigator.push(
- context,
- FadePage(
- page: PrescriptionDetailsPage(
- prescriptionReport: model.prescriptionReportList[index],
+ child: Column(
+ children: [
+
+ if(!prescriptions.isInOutPatient)
+ ...List.generate(model.prescriptionReportList.length, (index) => InkWell(
+ onTap: () => Navigator.push(
+ context,
+ FadePage(
+ page: PrescriptionDetailsPage(
+ prescriptionReport: model.prescriptionReportList[index],
+ ),
+ ),
),
- ),
- ),
- child: Container(
- width: double.infinity,
- margin: EdgeInsets.only(top: 10, left: 10, right: 10),
- padding: EdgeInsets.all(8.0),
- decoration: BoxDecoration(
+ child: 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(
+ model.prescriptionReportList[index].imageSRCUrl,
+ fit: BoxFit.cover,
+ width: 60,
+ height: 70,
+ ),
+ ),
+ Expanded(
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Center(
+ child: Texts(model.prescriptionReportList[index].itemDescription.isNotEmpty?
+ model.prescriptionReportList[index].itemDescription :model
+ .prescriptionReportList[index].itemDescriptionN)),
+ )),
+ Icon(
+ Icons.arrow_forward_ios,
+ size: 18,
+ color: Colors.grey[500],
+ )
+ ],
+ ),
+ ),
+ ))
+
+ else
+ ...List.generate(
+ model.prescriptionReportEnhList.length,
+ (index) => InkWell(
+ onTap: (){
+ PrescriptionReport prescriptionReport = PrescriptionReport(
+ imageSRCUrl: model.prescriptionReportEnhList[index].imageSRCUrl,
+ itemDescription: model.prescriptionReportEnhList[index].itemDescription,
+ itemDescriptionN: model.prescriptionReportEnhList[index].itemDescription,
+ routeN: model.prescriptionReportEnhList[index].route,
+ frequency: model.prescriptionReportEnhList[index].frequency,
+ frequencyN: model.prescriptionReportEnhList[index].frequency,
+ doseDailyQuantity: model.prescriptionReportEnhList[index].doseDailyQuantity,
+ days: model.prescriptionReportEnhList[index].days,
+ itemID: model.prescriptionReportEnhList[index].itemID,
+ remarks: model.prescriptionReportEnhList[index].remarks
+ );
+ Navigator.push(
+ context,
+ FadePage(
+ page: PrescriptionDetailsPage(
+ prescriptionReport:prescriptionReport,
+ ),
+ ),
+ );
+ },
+ child: Container(
+ margin: EdgeInsets.all(8.0),
color: Colors.white,
- borderRadius: BorderRadius.all(
- Radius.circular(10.0),
+ child: Row(
+ children: [
+ ClipRRect(
+ borderRadius: BorderRadius.all(Radius.circular(5)),
+ child: Image.network(
+ model.prescriptionReportEnhList[index].imageSRCUrl,
+ fit: BoxFit.cover,
+ width: 60,
+ height: 70,
+ ),
+ ),
+ Expanded(
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(model.prescriptionReportEnhList[index]
+ .itemDescription),
+ ],
+ ),
+ ),
+ ),
+ ],
),
- border: Border.all(color: Colors.grey[200], width: 0.5),
),
- child: Row(
- children: [
- ClipRRect(
- borderRadius: BorderRadius.all(Radius.circular(5)),
- child: Image.network(
- model.prescriptionReportList[index].imageSRCUrl,
- fit: BoxFit.cover,
- width: 60,
- height: 70,
- ),
),
- Expanded(
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Center(
- child: Texts(model.prescriptionReportList[index].itemDescription.isNotEmpty?
- model.prescriptionReportList[index].itemDescription :model
- .prescriptionReportList[index].itemDescriptionN)),
- )),
- Icon(
- Icons.arrow_forward_ios,
- size: 18,
- color: Colors.grey[500],
- )
- ],
- ),
- ),
- ),
- itemCount: model.prescriptionReportList.length,
+ )
+ ],
),
),
bottomSheet: Container(
diff --git a/lib/pages/medical/radiology/radiology_details_page.dart b/lib/pages/medical/radiology/radiology_details_page.dart
index cb98fb81..9f8a0640 100644
--- a/lib/pages/medical/radiology/radiology_details_page.dart
+++ b/lib/pages/medical/radiology/radiology_details_page.dart
@@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/radiology/final_radiology.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/radiology_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
@@ -21,7 +22,7 @@ class RadiologyDetailsPage extends StatelessWidget {
lineItem: finalRadiology.invoiceLineItemNo,
invoiceNo: finalRadiology.invoiceNo),
builder: (_, model, widget) => AppScaffold(
- appBarTitle: 'Radiology Report',
+ appBarTitle: TranslationBase.of(context).report,
isShowAppBar: true,
baseViewModel: model,
body: SingleChildScrollView(
@@ -45,7 +46,7 @@ class RadiologyDetailsPage extends StatelessWidget {
onTap: () {
launch(model.radImageURL);
},
- label: 'Open Radio Image',
+ label: TranslationBase.of(context).openRad,
backgroundColor: Colors.grey[800],
),
),
@@ -54,9 +55,9 @@ class RadiologyDetailsPage extends StatelessWidget {
child: Button(
onTap: () => model.sendRadReportEmail(
finalRadiology: finalRadiology),
- label: 'Send Copy',
+ label: TranslationBase.of(context).sendCopyRad,
loading: model.state == ViewState.BusyLocal,
- backgroundColor: Colors.red[800],
+ backgroundColor: Theme.of(context).primaryColor,
),
)
],
diff --git a/lib/pages/medical/radiology/radiology_home_page.dart b/lib/pages/medical/radiology/radiology_home_page.dart
index 995ac485..1233a89a 100644
--- a/lib/pages/medical/radiology/radiology_home_page.dart
+++ b/lib/pages/medical/radiology/radiology_home_page.dart
@@ -38,7 +38,7 @@ class RadiologyHomePage extends StatelessWidget {
leading: Radio(
value: FilterType.Clinic,
groupValue: model.filterType,
- activeColor: Colors.red[800],
+ activeColor: Theme.of(context).primaryColor,
onChanged: (FilterType value) {
model.setFilterType(value);
},
@@ -56,7 +56,7 @@ class RadiologyHomePage extends StatelessWidget {
leading: Radio(
value: FilterType.Hospital,
groupValue: model.filterType,
- activeColor: Colors.red[800],
+ activeColor: Theme.of(context).primaryColor,
onChanged: (FilterType value) {
model.setFilterType(value);
},
@@ -85,6 +85,7 @@ class RadiologyHomePage extends StatelessWidget {
),
),
child: DoctorCard(
+ isInOutPatient: radiology.isInOutPatient,
name: radiology.doctorName,
profileUrl: radiology.doctorImageURL,
subName: '${radiology.projectName} \n${TranslationBase.of(context).billNo} ${radiology.invoiceNo}',
diff --git a/lib/pages/settings/general_setting.dart b/lib/pages/settings/general_setting.dart
index 7085150a..86167b7d 100644
--- a/lib/pages/settings/general_setting.dart
+++ b/lib/pages/settings/general_setting.dart
@@ -19,14 +19,14 @@ class GeneralSettings extends StatefulWidget {
class _GeneralSettings extends State
with TickerProviderStateMixin {
var themeNotifier;
+ var mediaQueryData;
int blindValue = 0;
- bool vibration =false;
- bool accsibility =false;
- bool camera =false;
- bool location =false;
+ bool vibration =false;
+ bool accsibility =false;
+ bool camera =false;
+ bool location =false;
var sharedPref = new AppSharedPreferences();
var permission = new PermissionService();
- var mediaQueryData;
@override
void initState() {
getValues();
@@ -81,104 +81,104 @@ class _GeneralSettings extends State
setState(() {
accsibility = value;
});
- //setAccisibility(value);
+ permission.openSettings();
},
activeTrackColor: Colors.lightGreenAccent,
activeColor: Colors.green,
)
],
)),
- Container(
- padding: EdgeInsets.all(10),
- child: AppText(
- TranslationBase.of(context).blindMode,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- ),
- ),
- new Container(
- color: Colors.white,
- padding: EdgeInsets.all(8.0),
- child: new Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- new Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- new Text(
- TranslationBase.of(context).offTheme,
- style: new TextStyle(fontSize: 16.0),
- ),
- Radio(
- value: 0,
- groupValue: blindValue,
- onChanged: (value) {
- setState(() => {this.blindValue = value});
- setTheme(value);
- },
- ),
- ],
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- new Text(
- TranslationBase.of(context).invertTheme,
- style: new TextStyle(
- fontSize: 16.0,
- ),
- ),
- new Radio(
- value: 1,
- groupValue: blindValue,
- onChanged: (value) {
- setState(() => {this.blindValue = value});
- setTheme(value);
- },
- )
- ],
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- new Text(
- TranslationBase.of(context).dimTheme,
- style: new TextStyle(fontSize: 16.0),
- ),
- new Radio(
- value: 2,
- groupValue: blindValue,
- onChanged: (value) {
- setState(() => {this.blindValue = value});
- setTheme(value);
- },
- ),
- ],
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- new Text(
- TranslationBase.of(context).bwTheme,
- style: new TextStyle(fontSize: 16.0),
- ),
- new Radio(
- value: 3,
- groupValue: blindValue,
- onChanged: (value) {
- setState(() => {this.blindValue = value});
-
- setTheme(value);
- },
- ),
- ],
- ),
- ],
- )
- ])),
+ // Container(
+ // padding: EdgeInsets.all(10),
+ // child: AppText(
+ // TranslationBase.of(context).blindMode,
+ // color: Colors.black,
+ // fontWeight: FontWeight.bold,
+ // ),
+ // ),
+ // new Container(
+ // color: Colors.white,
+ // padding: EdgeInsets.all(8.0),
+ // child: new Column(
+ // mainAxisAlignment: MainAxisAlignment.center,
+ // children: [
+ // new Column(
+ // mainAxisAlignment: MainAxisAlignment.center,
+ // children: [
+ // Row(
+ // mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ // children: [
+ // new Text(
+ // TranslationBase.of(context).offTheme,
+ // style: new TextStyle(fontSize: 16.0),
+ // ),
+ // Radio(
+ // value: 0,
+ // groupValue: blindValue,
+ // onChanged: (value) {
+ // setState(() => {this.blindValue = value});
+ // setTheme(value);
+ // },
+ // ),
+ // ],
+ // ),
+ // Row(
+ // mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ // children: [
+ // new Text(
+ // TranslationBase.of(context).invertTheme,
+ // style: new TextStyle(
+ // fontSize: 16.0,
+ // ),
+ // ),
+ // new Radio(
+ // value: 1,
+ // groupValue: blindValue,
+ // onChanged: (value) {
+ // setState(() => {this.blindValue = value});
+ // setTheme(value);
+ // },
+ // )
+ // ],
+ // ),
+ // Row(
+ // mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ // children: [
+ // new Text(
+ // TranslationBase.of(context).dimTheme,
+ // style: new TextStyle(fontSize: 16.0),
+ // ),
+ // new Radio(
+ // value: 2,
+ // groupValue: blindValue,
+ // onChanged: (value) {
+ // setState(() => {this.blindValue = value});
+ // setTheme(value);
+ // },
+ // ),
+ // ],
+ // ),
+ // Row(
+ // mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ // children: [
+ // new Text(
+ // TranslationBase.of(context).bwTheme,
+ // style: new TextStyle(fontSize: 16.0),
+ // ),
+ // new Radio(
+ // value: 3,
+ // groupValue: blindValue,
+ // onChanged: (value) {
+ // setState(() => {this.blindValue = value});
+ //
+ // setTheme(value);
+ // },
+ // ),
+ // ],
+ // ),
+ // ],
+ // )
+ // ])),
Container(
padding: EdgeInsets.all(10),
child: AppText(
@@ -200,6 +200,7 @@ class _GeneralSettings extends State
setState(() {
camera = value;
});
+ permission.setCameraLocationPermission(context);
},
activeTrackColor: Colors.lightGreenAccent,
activeColor: Colors.green,
@@ -219,6 +220,7 @@ class _GeneralSettings extends State
setState(() {
location = value;
});
+ permission.setCameraLocationPermission(context);
},
activeTrackColor: Colors.lightGreenAccent,
activeColor: Colors.green,
@@ -238,43 +240,7 @@ class _GeneralSettings extends State
break;
case 1:
{
- themeNotifier.setTheme(ThemeData(
- fontFamily: await sharedPref.getString(APP_LANGUAGE) == 'ar' ? 'Cairo' : 'WorkSans',
- primarySwatch: Colors.grey,
- visualDensity: VisualDensity.adaptivePlatformDensity,
- brightness: Brightness.light,
- pageTransitionsTheme: const PageTransitionsTheme(
- builders: {
- TargetPlatform.android: ZoomPageTransitionsBuilder(),
- TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
- },
- ),
- hintColor: Colors.grey[400],
- cardColor: Colors.black,
- buttonColor: Colors.grey[400],
- disabledColor: Colors.grey[300],
- errorColor: Color.fromRGBO(235, 80, 60, 1.0),
- scaffoldBackgroundColor: Colors.grey,
- textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5),
- textSelectionHandleColor: Colors.grey,
- canvasColor: Colors.white,
- backgroundColor: Colors.grey,
- highlightColor: Colors.grey[100].withOpacity(0.4),
- splashColor: Colors.transparent,
- primaryColor: Colors.grey,
- bottomSheetTheme: BottomSheetThemeData(backgroundColor: Color(0xffE0E0E0)),
- cursorColor: Colors.grey,
-
- iconTheme: IconThemeData(),
- appBarTheme: AppBarTheme(
- color: Colors.grey,
- brightness: Brightness.dark,
- elevation: 10.0,
- actionsIconTheme: IconThemeData(
- color: Colors.grey,
- ),
- ),
- ));
+ themeNotifier.setTheme(await getTheme(value));
Screen.setBrightness(1.0);
}
break;
@@ -295,28 +261,31 @@ class _GeneralSettings extends State
}
break;
}
- //permission.setTheme(value);
+ permission.setTheme(value);
}
setVibration(value){
permission.setVibrationPermission(value);
}
- setAccisibility(){
- if(!accsibility){
-
- }
- // permission.setVibrationPermission(value);
- }
getValues() async{
- blindValue= permission.isThemeEnabled() == null ? 0 : permission.isThemeEnabled();
- vibration = permission.isVibrationEnabled() ==null ? false : permission.isVibrationEnabled();
- accsibility =mediaQueryData.accessibleNavigation;
+ blindValue= permission.isThemeEnabled() == null ? 0 : permission.isThemeEnabled();
+ vibration = permission.isVibrationEnabled() ==null ? false : permission.isVibrationEnabled();
+ camera = await permission.isCameraEnabled();
+ location = await permission.isLocationEnabled();
+ setState(() {
+ location =location;
+ camera = camera;
+ vibration = vibration;
+ blindValue =blindValue;
+ accsibility = mediaQueryData.accessibleNavigation;
+ });
}
getTheme(value) async{
+
if(value ==1){
return ThemeData(
- fontFamily: await sharedPref.getString(APP_LANGUAGE) == 'ar' ? 'Cairo' : 'WorkSans',
+ fontFamily: await sharedPref.getString(APP_LANGUAGE) == 'en' ? 'WorkSans' : 'Cairo',
primarySwatch: Colors.grey,
visualDensity: VisualDensity.adaptivePlatformDensity,
brightness: Brightness.light,
@@ -355,7 +324,7 @@ class _GeneralSettings extends State
}else if(value ==3){
return ThemeData(
- fontFamily: await sharedPref.getString(APP_LANGUAGE) == 'ar' ? 'Cairo' : 'WorkSans',
+ fontFamily: await sharedPref.getString(APP_LANGUAGE) == 'en' ? 'WorkSans' : 'Cairo',
primarySwatch: Colors.grey,
visualDensity: VisualDensity.adaptivePlatformDensity,
brightness: Brightness.light,
@@ -394,7 +363,7 @@ class _GeneralSettings extends State
}else {
return ThemeData(
- fontFamily: await sharedPref.getString(APP_LANGUAGE) == 'ar' ? 'Cairo' : 'WorkSans',
+ fontFamily: await sharedPref.getString(APP_LANGUAGE) == 'en' ? 'WorkSans' : 'Cairo',
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
brightness: Brightness.light,
diff --git a/lib/pages/settings/profile_setting.dart b/lib/pages/settings/profile_setting.dart
index 0658e2e6..c9089351 100644
--- a/lib/pages/settings/profile_setting.dart
+++ b/lib/pages/settings/profile_setting.dart
@@ -1,5 +1,8 @@
+import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -8,17 +11,31 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class ProfileSettings extends StatefulWidget {
+
@override
_ProfileSettings createState() => _ProfileSettings();
}
class _ProfileSettings extends State
with TickerProviderStateMixin {
+ bool smsAlert = true;
+ bool emailAlert = true;
+ int language = 1;
+ final authService = new AuthProvider();
+ TextEditingController emergencyContact = new TextEditingController();
+ TextEditingController emailController = new TextEditingController();
+ TextEditingController emergencyContactName = new TextEditingController();
+ @override
+ void initState() {
+ Future.delayed(new Duration(seconds: 0), () {
+ getSettings(context);
+ });
+ super.initState();
+ }
Widget build(BuildContext context) {
- bool isVibration = true;
- var language = 1;
+
return BaseView(
- onModelReady: (model) => model.getPatientRadOrders(),
+ onModelReady: (model) =>{},
builder: (_, model, wi) => Container(
child:
ListView(scrollDirection: Axis.vertical, children: [
@@ -62,7 +79,10 @@ class _ProfileSettings extends State
value: 2,
groupValue: language,
onChanged: (value) {
- language = value;
+ setState(() {
+ language = value;
+ });
+
},
)
],
@@ -79,7 +99,10 @@ class _ProfileSettings extends State
value: 1,
groupValue: language,
onChanged: (value) {
- language = value;
+ setState(() {
+ language = value;
+ });
+
},
)
],
@@ -97,10 +120,10 @@ class _ProfileSettings extends State
children: [
AppText(TranslationBase.of(context).emailAlert),
Switch(
- value: isVibration,
+ value: emailAlert,
onChanged: (value) {
setState(() {
- isVibration = value;
+ emailAlert = value;
});
},
activeTrackColor: Colors.lightGreenAccent,
@@ -117,10 +140,10 @@ class _ProfileSettings extends State
children: [
AppText(TranslationBase.of(context).smsAlert),
Switch(
- value: isVibration,
+ value: smsAlert,
onChanged: (value) {
setState(() {
- isVibration = value;
+ smsAlert = value;
});
},
activeTrackColor: Colors.lightGreenAccent,
@@ -141,7 +164,7 @@ class _ProfileSettings extends State
children: [
AppText(TranslationBase.of(context).email),
TextField(
- style: TextStyle(color: Colors.red),
+ controller: emailController,
decoration: InputDecoration(
suffixIcon: Icon(Icons.edit),
))
@@ -156,7 +179,7 @@ class _ProfileSettings extends State
children: [
AppText(TranslationBase.of(context).emergencyName),
TextField(
- style: TextStyle(color: Colors.red),
+ controller: emergencyContactName,
decoration: InputDecoration(
suffixIcon: Icon(Icons.edit),
))
@@ -171,7 +194,7 @@ class _ProfileSettings extends State
children: [
AppText(TranslationBase.of(context).emergencyContact),
TextField(
- style: TextStyle(color: Colors.red),
+ controller: emergencyContact,
decoration: InputDecoration(
suffixIcon: Icon(Icons.edit),
),
@@ -186,11 +209,44 @@ class _ProfileSettings extends State
child: DefaultButton(
TranslationBase.of(context).submit,
() {
-// print(mobileNo.text);
+ saveSettings();
},
)),
],
))
])));
}
+
+ getSettings(context){
+ GifLoaderDialogUtils.showMyDialog(context);
+ authService.getSettings().then((result)=>{
+ GifLoaderDialogUtils.hideDialog(context),
+ setValue(result["PateintInfoForUpdateList"][0])
+ });
+ }
+ setValue(value){
+ setState(() {
+ this.language = int.parse(value["PreferredLanguage"]);
+ this.emailAlert = value["IsEmailAlertRequired"];
+ this.smsAlert = value["IsSMSAlertRequired"];
+ this.emailController.text = value["EmailAddress"];
+ this.emergencyContact.text = value["EmergencyContactNo"];
+ this.emergencyContactName.text = value["EmergencyContactName"];
+ });
+
+ }
+ saveSettings(){
+ GifLoaderDialogUtils.showMyDialog(context);
+ Map request = {};
+ request["EmailAddress"] =this.emailController.text;
+ request["EmergencyContactName"] = this.emergencyContactName.text;
+ request["EmergencyContactNo"] = this.emergencyContact.text;
+ request["IsEmailAlertRequired"] = this.emailAlert;
+ request["IsSMSAlertRequired"] = this.smsAlert;
+ request["PreferredLanguage"] = this.language.toString();
+ authService.saveSettings(request).then((result)=>{
+ print(result),
+ GifLoaderDialogUtils.hideDialog(context)
+ });
+ }
}
diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart
index eb1ab98f..579c0e10 100644
--- a/lib/services/appointment_services/GetDoctorsList.dart
+++ b/lib/services/appointment_services/GetDoctorsList.dart
@@ -1168,6 +1168,9 @@ class DoctorsListService extends BaseService {
double payedAmount,
String paymentReference,
String paymentMethodName,
+ dynamic patientType,
+ String patientName,
+ dynamic patientID,
BuildContext context) async {
Map request;
if (await this.sharedPref.getObject(USER_PROFILE) != null) {
@@ -1179,12 +1182,12 @@ class DoctorsListService extends BaseService {
Request req = appGlobal.getPublicRequest();
request = {
- "CustName": authUser.firstName + " " + authUser.lastName,
- "CustID": authUser.patientID,
+ "CustName": patientName,
+ "CustID": patientID,
"SetupID": "010266",
"ProjectID": projectID,
- "PatientID": authUser.patientID,
- "AccountID": authUser.patientID,
+ "PatientID": patientID,
+ "AccountID": patientID,
"PaymentAmount": payedAmount,
"NationalityID": null,
"DepositorName": authUser.firstName + " " + authUser.lastName,
@@ -1201,8 +1204,8 @@ class DoctorsListService extends BaseService {
"SessionID": "YckwoXhUmWBsnHKEKig",
"isDentalAllowedBackend": false,
"TokenID": "@dm!n",
- "PatientTypeID": authUser.patientType,
- "PatientType": authUser.patientType
+ "PatientTypeID": patientType,
+ "PatientType": patientType
};
dynamic localRes;
await baseAppClient.post(HIS_CREATE_ADVANCE_PAYMENT,
diff --git a/lib/services/authentication/auth_provider.dart b/lib/services/authentication/auth_provider.dart
index a8517a1e..4dedb37f 100644
--- a/lib/services/authentication/auth_provider.dart
+++ b/lib/services/authentication/auth_provider.dart
@@ -48,7 +48,8 @@ const LOGGED_IN_USER_URL =
const FORGOT_PATIENT_ID =
'Services/Authentication.svc/REST/SendPatientIDSMSByMobileNumber';
const DASHBOARD = 'Services/Patients.svc/REST/PatientDashboard';
-
+const PROFILE_SETTING = 'Services/Patients.svc/REST/GetPateintInfoForUpdate';
+const SAVE_SETTING = 'Services/Patients.svc/REST/UpdatePateintInfo';
class AuthProvider with ChangeNotifier {
bool isLogin = false;
bool isLoading = true;
@@ -457,4 +458,40 @@ class AuthProvider with ChangeNotifier {
//return Future.value(error);
}
}
+ getSettings() async{
+
+ dynamic localRes;
+ try {
+ await new BaseAppClient().post(PROFILE_SETTING,
+ onSuccess: (dynamic response, int statusCode) {
+ localRes = response; //CheckActivationCode.fromJson();
+ }, onFailure: (String error, int statusCode) {
+ localRes = error;
+ return Future.value(error);
+ // throw error;
+ }, body: {});
+ return Future.value(localRes);
+ } catch (error) {
+ throw error;
+ //return Future.value(error);
+ }
+ }
+ Future saveSettings(request) async{
+
+ dynamic localRes;
+ try {
+ await new BaseAppClient().post(SAVE_SETTING,
+ onSuccess: (dynamic response, int statusCode) {
+ localRes = response; //CheckActivationCode.fromJson();
+ }, onFailure: (String error, int statusCode) {
+ localRes = error;
+ return Future.value(error);
+ // throw error;
+ }, body: request);
+ return Future.value(localRes);
+ } catch (error) {
+ throw error;
+ //return Future.value(error);
+ }
+ }
}
diff --git a/lib/services/family_files/family_files_provider.dart b/lib/services/family_files/family_files_provider.dart
index 79ea67d0..ea2b87fd 100644
--- a/lib/services/family_files/family_files_provider.dart
+++ b/lib/services/family_files/family_files_provider.dart
@@ -37,6 +37,8 @@ const String SENT_REQUEST_URL =
'Services/Authentication.svc/REST/GetAllSharedRecordsByStatus';
const String RECEVIED_REQUEST_URL =
'Services/Authentication.svc/REST/GetAllPendingRecordsByResponseId';
+const ACCEPT_REJECT_FAMILY = 'Services/Authentication.svc/REST/Update_FileStatus';
+const DEACTIVATE_FAMILY = 'Services/Authentication.svc/REST/DeactivateRequestByRensponse';
class FamilyFilesProvider with ChangeNotifier {
bool isLogin = false;
@@ -300,4 +302,43 @@ class FamilyFilesProvider with ChangeNotifier {
throw error;
}
}
+
+ Future acceptRejectFamily(request) async {
+ try {
+ dynamic localRes;
+
+ await new BaseAppClient().post(ACCEPT_REJECT_FAMILY,
+ onSuccess: (dynamic response, int statusCode) {
+ localRes = response;
+ }, onFailure: (String error, int statusCode) {
+ AppToast.showErrorToast(message: error);
+ throw error;
+ }, body: request);
+
+ return Future.value(localRes);
+ } catch (error) {
+ print(error);
+ throw error;
+ }
+ }
+ Future deactivateFamily(request) async {
+ try {
+ dynamic localRes;
+
+ await new BaseAppClient().post(DEACTIVATE_FAMILY,
+ onSuccess: (dynamic response, int statusCode) {
+ localRes = response;
+ }, onFailure: (String error, int statusCode) {
+ AppToast.showErrorToast(message: error);
+ throw error;
+ }, body: request);
+
+ return Future.value(localRes);
+ } catch (error) {
+ print(error);
+ throw error;
+ }
+ }
+
+
}
diff --git a/lib/services/permission/permission_service.dart b/lib/services/permission/permission_service.dart
index 6f01f3c8..2d618f34 100644
--- a/lib/services/permission/permission_service.dart
+++ b/lib/services/permission/permission_service.dart
@@ -1,3 +1,4 @@
+import 'package:android_intent/android_intent.dart';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
@@ -8,7 +9,8 @@ import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:localstorage/localstorage.dart';
-
+import 'package:permission_handler/permission_handler.dart';
+import 'package:vibration/vibration.dart';
class PermissionService extends BaseService {
final LocalStorage storage = new LocalStorage("permission");
@@ -19,12 +21,21 @@ class PermissionService extends BaseService {
}
isVibrationEnabled() {
- return storage.getItem('isVibration') ==null ? false :true;
+ return (storage.getItem('isVibration') ==null) || (storage.getItem('isVibration')) ==false ? false :true;
}
- vibrate(){
+ vibrate(callback, context) async{
+
+ if (callback == null)
+ return null;
if(isVibrationEnabled() ==true){
- HapticFeedback.vibrate();
+ if (await Vibration.hasVibrator()) {
+ Vibration.vibrate(duration: 100);
+ callback();
+ }
+ }else{
+ callback();
}
+
}
@@ -35,5 +46,23 @@ class PermissionService extends BaseService {
isThemeEnabled() {
return storage.getItem('isTheme');
}
-
+ cameraPermission() async{
+ Map statuses = await [
+ Permission.camera,
+ ].request();
+ }
+ isCameraEnabled() async{
+ print(await Permission.camera.status);
+ return await Permission.camera.status == PermissionStatus.granted ? true : false;
+ }
+ setCameraLocationPermission(context) async{
+ Navigator.pop(context);
+ openAppSettings();
+ }
+ isLocationEnabled() async{
+ return await Permission.location.status == PermissionStatus.granted ? true : false;
+ }
+ openSettings() async{
+ openAppSettings();
+ }
}
diff --git a/lib/theme/theme_value.dart b/lib/theme/theme_value.dart
index d19e13b2..bc80f47c 100644
--- a/lib/theme/theme_value.dart
+++ b/lib/theme/theme_value.dart
@@ -53,7 +53,7 @@ final blueBackground = Color(0xFFFFFFFF);
),
);
- final defaultTheme = ThemeData(
+ var defaultTheme = ThemeData(
//fontFamily: ProjectViewModel().isArabic? 'Cairo' : 'WorkSans',
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart
index cde1417b..b1162f5b 100644
--- a/lib/uitl/translations_delegate_base.dart
+++ b/lib/uitl/translations_delegate_base.dart
@@ -864,6 +864,31 @@ String get fileno => localizedValues['fileno'][locale.languageCode];
String get searchItemError => localizedValues['searchItemError'][locale.languageCode];
String get youCanFind => localizedValues['YouCanFind'][locale.languageCode];
String get itemInSearch => localizedValues['ItemInSearch'][locale.languageCode];
+ String get invoiceNo => localizedValues['InvoiceNo'][locale.languageCode];
+ String get specialResult => localizedValues['SpecialResult'][locale.languageCode];
+ String get generalResult => localizedValues['GeneralResult'][locale.languageCode];
+ String get showMoreBtn => localizedValues['show-more-btn'][locale.languageCode];
+ String get value => localizedValues['value'][locale.languageCode];
+ String get range => localizedValues['range'][locale.languageCode];
+ String get outpatient => localizedValues['out-patient'][locale.languageCode];
+ String get inPatient => localizedValues['in-patient'][locale.languageCode];
+ String get report => localizedValues['report'][locale.languageCode];
+ String get openRad => localizedValues['open-rad'][locale.languageCode];
+ String get sendCopyRad => localizedValues['send-copy'][locale.languageCode];
+ String get vaccination => localizedValues['vaccination'][locale.languageCode];
+ String get welcomeBackV => localizedValues['welcomeBack'][locale.languageCode];
+ String get instructions => localizedValues['instructions'][locale.languageCode];
+ String get updateEmail => localizedValues['update-email'][locale.languageCode];
+ String get updatedEmail => localizedValues['updated-email'][locale.languageCode];
+ String get viewListChildren => localizedValues['view-list-children'][locale.languageCode];
+ String get addChild => localizedValues['add-child'][locale.languageCode];
+ String get childName => localizedValues['child-name'][locale.languageCode];
+ String get childDob => localizedValues['childDob'][locale.languageCode];
+ String get delete => localizedValues['delete'][locale.languageCode];
+ String get deletedChild => localizedValues['deleted-child'][locale.languageCode];
+ String get visit => localizedValues['visit'][locale.languageCode];
+ String get descriptionVaccination => localizedValues['description-vaccination'][locale.languageCode];
+ String get dueDate => localizedValues['due-date'][locale.languageCode];
}
diff --git a/lib/widgets/buttons/button.dart b/lib/widgets/buttons/button.dart
index 597106c9..457a1d42 100644
--- a/lib/widgets/buttons/button.dart
+++ b/lib/widgets/buttons/button.dart
@@ -90,7 +90,7 @@ class _ButtonState extends State