Merge branch 'diplomatic-quarter-live' of https://gitlab.com/Cloud_Solution/diplomatic-quarter into home_page

 Conflicts:
	ios/Flutter/.last_build_id
	lib/main.dart
	lib/pages/landing/home_page.dart
merge-update-with-lab-changes
Mohammad Aljmma 5 years ago
commit 894494ec4e

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

@ -109,7 +109,8 @@ const Map<String, Map<String, String>> localizedValues = {
'set-reminder': {'en': 'Set Reminder', 'ar': 'تعيين تذكير'}, 'set-reminder': {'en': 'Set Reminder', 'ar': 'تعيين تذكير'},
'login': {'en': 'Login', 'ar': 'تسجيل الدخول'}, 'login': {'en': 'Login', 'ar': 'تسجيل الدخول'},
'loginregister': {'en': 'Login / Register', 'ar': 'دخولتسجيل'}, 'loginregister': {'en': 'Login / Register', 'ar': 'تسجيل الدخول'},
'poweredBy': {'en': 'Powered By', 'ar': 'مشغل بواسطة'},
'welcome': {'en': 'Welcome', 'ar': 'أهلا بك'}, 'welcome': {'en': 'Welcome', 'ar': 'أهلا بك'},
'welcome_text': { 'welcome_text': {
'en': 'Dr. Sulaiman Al Habib Mobile Application ', 'en': 'Dr. Sulaiman Al Habib Mobile Application ',
@ -117,7 +118,7 @@ const Map<String, Map<String, String>> localizedValues = {
}, },
'welcome_text2': { 'welcome_text2': {
'en': 'Have you visited AlHabib Medical Group before? ', 'en': 'Have you visited AlHabib Medical Group before? ',
'ar': 'الدكتور سليمان الحبيب لتطبيقات الهاتف المتحرك' 'ar': 'هل قمت بزيارة مجموعة الحبيب الطبية من قبل؟'
}, },
'yes': {'en': 'Yes', 'ar': 'نعم'}, 'yes': {'en': 'Yes', 'ar': 'نعم'},
'no': {'en': 'No', 'ar': 'لا'}, 'no': {'en': 'No', 'ar': 'لا'},
@ -129,7 +130,9 @@ const Map<String, Map<String, String>> localizedValues = {
"nationalID": {"en": "National ID", "ar": "رقم الهوية"}, "nationalID": {"en": "National ID", "ar": "رقم الهوية"},
"fileNo": {"en": "File Number", "ar": "رقم الملف"}, "fileNo": {"en": "File Number", "ar": "رقم الملف"},
"forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"}, "forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"},
"enter-national-id": { "forgotFileNoTitle": {"en": "Forgot medical file Number", "ar": "نسيت رقم الملف"},
"enter-national-id": {
"en": "Please enter mobile number and national ID / Iqama", "en": "Please enter mobile number and national ID / Iqama",
"ar": "الرجاء إدخال رقم الجوال والهوية الوطنية / الاقامة" "ar": "الرجاء إدخال رقم الجوال والهوية الوطنية / الاقامة"
}, },
@ -547,18 +550,18 @@ const Map<String, Map<String, String>> localizedValues = {
"en": "Please enter the verification code send to", "en": "Please enter the verification code send to",
"ar": "الرجاء إدخال رمز التحقق المرسل إلى" "ar": "الرجاء إدخال رمز التحقق المرسل إلى"
}, },
"EyeMeasurements":{"en":"Eye Measurements","ar":"قياسات النظر"}, "EyeMeasurements": {"en": "Eye Measurements", "ar": "قياسات النظر"},
"Measurements":{"en":"Measurements","ar":"قياسات"}, "Measurements": {"en": "Measurements", "ar": "قياسات"},
"Classes":{"en":"Classes","ar":"نظارات"}, "Classes": {"en": "Classes", "ar": "نظارات"},
"ContactLens":{"en":"Contact Lens","ar":"العدسات اللاصقة"}, "ContactLens": {"en": "Contact Lens", "ar": "العدسات اللاصقة"},
"RightEye":{"en":"Right Eye","ar":"العين اليمين"}, "RightEye": {"en": "Right Eye", "ar": "العين اليمين"},
"Sphere":{"en":"Sphere","ar":"القوة"}, "Sphere": {"en": "Sphere", "ar": "القوة"},
"Cylinder":{"en":"Cylinder","ar":"الدائرية"}, "Cylinder": {"en": "Cylinder", "ar": "الدائرية"},
"Axis":{"en":"Axis","ar":"المحاور"}, "Axis": {"en": "Axis", "ar": "المحاور"},
"Prism":{"en":"Prism","ar":"موشور"}, "Prism": {"en": "Prism", "ar": "موشور"},
"VA":{"en":"Prism","ar":"المحاور"}, "VA": {"en": "Prism", "ar": "المحاور"},
"LeftEye":{"en":"Left Eye","ar":"العين اليسرى"}, "LeftEye": {"en": "Left Eye", "ar": "العين اليسرى"},
"Brand":{"en":"Brand","ar":"النوع"}, "Brand": {"en": "Brand", "ar": "النوع"},
"Power": {"en": "Power", "ar": "القوة"}, "Power": {"en": "Power", "ar": "القوة"},
"Diameter": {"en": "Diameter", "ar": "القطر"}, "Diameter": {"en": "Diameter", "ar": "القطر"},
"Remarks": {"en": "Remarks", "ar": "ملاحضات"}, "Remarks": {"en": "Remarks", "ar": "ملاحضات"},
@ -590,6 +593,11 @@ const Map<String, Map<String, String>> localizedValues = {
"en": "View Doctor Responses", "en": "View Doctor Responses",
"ar": "الاطلاع على ردود الأطباء" "ar": "الاطلاع على ردود الأطباء"
}, },
"ServiceInformationButton": {"en": "LOGIN / REGISTER", "ar": "دخول / تسجيل"},
"ServiceInformationTitle": {
"en": "Service Information",
"ar": "معلومات الخدمة"
},
"ServiceInformation": {"en": "Service Information", "ar": "معلومات الخدمة"}, "ServiceInformation": {"en": "Service Information", "ar": "معلومات الخدمة"},
"HomeHealthCare": { "HomeHealthCare": {
"en": "Home Health Care", "en": "Home Health Care",
@ -601,24 +609,66 @@ const Map<String, Map<String, String>> localizedValues = {
"ar": "ar":
"توفر هذه الخدمة مجموعه من خدمات الرعايه الصحيه المنزلية و متابعه مستمره وشامله للذين لا يستطيعون الوصول للمنشات الصحيه في اماكن اقامتهم (التحاليل المخبرية الاشعة التطعيمات العلاج الطبيعي)... " "توفر هذه الخدمة مجموعه من خدمات الرعايه الصحيه المنزلية و متابعه مستمره وشامله للذين لا يستطيعون الوصول للمنشات الصحيه في اماكن اقامتهم (التحاليل المخبرية الاشعة التطعيمات العلاج الطبيعي)... "
}, },
"LoginRegister": { "LoginRegister": {"en": "Login/Register", "ar": "دخول / تسجيل"},
"en": "Login/Register", "OrderLog": {"en": "Order Log", "ar": " سجل الطلبات"},
"ar": "دخول / تسجيل" "info-lab": {
"en":
"This service allows you to view the results of all laboratory tests performed in Al Habib Medical Group as well as sending the report via e-mail.",
"ar":
"خدمة نتائج المختبر: هذه الخدمة تمكنك من الاطلاع على نتائج جميع الفحوصات المخبرية التي تمت في مجموعة الحبيب الطبية."
}, },
"OrderLog": { "info-radiology": {
"en": "Order Log", "en":
"ar": " سجل الطلبات" "This service allows you to view the reports and photos of radiology in Al Habib Medical Group as well as send the report by e-mail.",
"ar":
"خدمة الاشعة: هذه الخدمة تمكنك من الاطلاع على تقارير وصور الاشعة التي تمت في مجموعة الحبيب الطبية وكذلك ارسال التقرير عن طريق الايميل."
}, },
"ServiceInformationButton":{"en":"LOGIN / REGISTER","ar":"دخول / تسجيل"}, "TermsService": {"en": "Terms of Service", "ar": "شروط الخدمه"},
"ServiceInformationTitle":{"en":"Service Information","ar":"معلومات الخدمة"}, "Beforeusing": {
"info-lab": { "en": "Before using the checkup, please read Terms of Service.",
"en": "This service allows you to view the results of all laboratory tests performed in Al Habib Medical Group as well as sending the report via e-mail.", "ar": "قبل استخدام الفحص ، يرجى قراءة شروط الخدمة"
"ar": "خدمة نتائج المختبر: هذه الخدمة تمكنك من الاطلاع على نتائج جميع الفحوصات المخبرية التي تمت في مجموعة الحبيب الطبية."
}, },
"info-radiology": { "accept": {
"en": "This service allows you to view the reports and photos of radiology in Al Habib Medical Group as well as send the report by e-mail.", "en": "I read and accept Terms of Service and Privacy Policy",
"ar": "خدمة الاشعة: هذه الخدمة تمكنك من الاطلاع على تقارير وصور الاشعة التي تمت في مجموعة الحبيب الطبية وكذلك ارسال التقرير عن طريق الايميل." "ar": "قرأت ووافقت على شروط الخدمة وسياسة الخصوصية"
},
"data-safe-info": {
"en":
"Information that you provide is anonymous and not shared with anyone.",
"ar": "المعلومات التي تقدمها لا تتم مشاركتها مع أي شخص"
},
"data-safe": {"en": " Your data is safe.", "ar": "بياناتك آمنة"},
"informational": {
"en":
"Checkup is for informational purposes and is not a qualified medical opinion",
"ar": "الفحص هو لأغراض معلوماتية وليس رأي طبي مؤهل"
}, },
"not-use-in-emerbency": {
"en": "Do not use in emergencies.",
"ar": "لا تستخدم في حالات الطوارئ"
},
"not-use-in-emerbency-details": {
"en": "In case of health emergency, ",
"ar": "في حالة الطوارئ اتصل بأقرب رقم للطوارئ على الفور"
},
"not-use-in-emerbency-details-call": {
"en": "call the nearest emergency number immediately",
"ar": " اتصل بأقرب رقم للطوارئ على الفور"
},
"check-diagnosis": {
"en": "Checkup is not a diagnosis.",
"ar": "الفحص ليس تشخيص."
},
"remeberthat": {"en": "Remember that", "ar": "تذكر ذلك:"},
"select-gender": {"en": "Select Gender", "ar": "اختر الجنس"},
"i-am-a": {"en": "I am a ...", "ar": "أنا ..."},
"select-age": {"en": "Select Your Age", "ar": "حدد العمر"},
"i-am": {"en": "I am", "ar": "أنا"},
"years-old": {"en": "years old", "ar": "سنة"},
"drag-point": {
"en": "Drag point to change your age",
"ar": "اسحب لتغيير عمرك"
},
}; };

@ -81,8 +81,8 @@ class MyApp extends StatelessWidget {
iconTheme: IconThemeData(), iconTheme: IconThemeData(),
appBarTheme: AppBarTheme( appBarTheme: AppBarTheme(
color: Color(0xff40ACC9), color: Color(0xff40ACC9),
brightness: Brightness.light, brightness: Brightness.dark,
elevation: 0.0, elevation: 10.0,
actionsIconTheme: IconThemeData( actionsIconTheme: IconThemeData(
color: Colors.grey[800], color: Colors.grey[800],
), ),

@ -17,6 +17,7 @@ import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dar
import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart'; import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart';
import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart'; import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart';
import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart'; import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart';
import 'package:diplomaticquarterapp/pages/symptom-checker/info.dart';
import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@ -224,8 +225,9 @@ class _AllHabibMedicalServiceState extends State<AllHabibMedicalService> {
title: TranslationBase.of(context).todoList, title: TranslationBase.of(context).todoList,
), ),
ServicesContainer( ServicesContainer(
onTap: () => Navigator.of(context).pushNamed( onTap: () => Navigator.push(
SYMPTOM_CHECKER, context,
FadePage(page: SymptomInfo()),
), ),
imageLocation: 'assets/images/new-design/body_icon.png', imageLocation: 'assets/images/new-design/body_icon.png',
title: 'Symptom Checker'), title: 'Symptom Checker'),

@ -230,9 +230,10 @@ class _BookSuccessState extends State<BookSuccess> {
children: <Widget>[ children: <Widget>[
_getBulletPoint("1"), _getBulletPoint("1"),
Container( Container(
width: MediaQuery.of(context).size.width * 0.8,
child: Text( child: Text(
"Please confirm the appointment to avoid the cancellation", "Please confirm the appointment to avoid the cancellation",
overflow: TextOverflow.fade, overflow: TextOverflow.clip,
style: TextStyle(fontSize: 13.0)), style: TextStyle(fontSize: 13.0)),
), ),
], ],
@ -314,7 +315,7 @@ class _BookSuccessState extends State<BookSuccess> {
minWidth: MediaQuery.of(context).size.width * 0.7, minWidth: MediaQuery.of(context).size.width * 0.7,
height: 45.0, height: 45.0,
child: RaisedButton( child: RaisedButton(
color: new Color(0xFFc5272d), color: new Color(0xFF40ACC9),
textColor: Colors.white, textColor: Colors.white,
disabledTextColor: Colors.white, disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4), disabledColor: new Color(0xFFbcc2c4),
@ -483,7 +484,7 @@ class _BookSuccessState extends State<BookSuccess> {
minWidth: MediaQuery.of(context).size.width * 0.7, minWidth: MediaQuery.of(context).size.width * 0.7,
height: 45.0, height: 45.0,
child: RaisedButton( child: RaisedButton(
color: new Color(0xFFc5272d), color: new Color(0xFF40ACC9),
textColor: Colors.white, textColor: Colors.white,
disabledTextColor: Colors.white, disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4), disabledColor: new Color(0xFFbcc2c4),

@ -235,7 +235,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
return children; return children;
}, },
), ),
onDaySelected: (date, events,format) { onDaySelected: (date, events) {
_onDaySelected(date, events); _onDaySelected(date, events);
_animationController.forward(from: 0.0); _animationController.forward(from: 0.0);
}, },

@ -8,7 +8,6 @@ import 'package:diplomaticquarterapp/pages/BookAppointment/DentalComplaints.dart
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart'; import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart'; import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
@ -17,7 +16,9 @@ import 'package:smart_progress_bar/smart_progress_bar.dart';
class SearchByClinic extends StatefulWidget { class SearchByClinic extends StatefulWidget {
final List clnicIds; final List clnicIds;
SearchByClinic({this.clnicIds}); SearchByClinic({this.clnicIds});
@override @override
_SearchByClinicState createState() => _SearchByClinicState(); _SearchByClinicState createState() => _SearchByClinicState();
} }
@ -26,11 +27,13 @@ class _SearchByClinicState extends State<SearchByClinic> {
bool nearestAppo = false; bool nearestAppo = false;
String dropdownValue; String dropdownValue;
String projectDropdownValue; String projectDropdownValue;
// var event = RobotProvider(); // var event = RobotProvider();
List<ListClinicCentralized> clinicsList = []; List<ListClinicCentralized> clinicsList = [];
List<HospitalsModel> projectsList = []; List<HospitalsModel> projectsList = [];
bool isMobileAppDentalAllow = false; bool isMobileAppDentalAllow = false;
bool isLoaded = false; bool isLoaded = false;
@override @override
void initState() { void initState() {
WidgetsBinding.instance.addPostFrameCallback((_) => getClinicsList()); WidgetsBinding.instance.addPostFrameCallback((_) => getClinicsList());
@ -47,7 +50,7 @@ class _SearchByClinicState extends State<SearchByClinic> {
Row( Row(
children: <Widget>[ children: <Widget>[
Checkbox( Checkbox(
activeColor: new Color(0xFFc5272d), activeColor: new Color(0xFF40ACC9),
value: nearestAppo, value: nearestAppo,
onChanged: (bool value) { onChanged: (bool value) {
setState(() { setState(() {
@ -77,12 +80,6 @@ class _SearchByClinicState extends State<SearchByClinic> {
} }
}); });
}, },
// trailing: Icon(TranslationBase.of(AppGlobal.context)
// .locale
// .languageCode ==
// 'en'
// ? Icons.keyboard_arrow_right
// : Icons.keyboard_arrow_left),
title: Text(result.clinicDescription, title: Text(result.clinicDescription,
style: TextStyle( style: TextStyle(
fontSize: 14.0, fontSize: 14.0,

@ -109,7 +109,7 @@ class _ExpandableListViewState extends State<ExpandableListView> {
height: 28.0, height: 28.0,
width: 30.0, width: 30.0,
decoration: new BoxDecoration( decoration: new BoxDecoration(
color: Colors.red, color: Color(0xFF40ACC9),
shape: BoxShape.circle, shape: BoxShape.circle,
), ),
child: new Center( child: new Center(

@ -348,7 +348,7 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots>
return children; return children;
}, },
), ),
onDaySelected: (date, event,formats) { onDaySelected: (date, event) {
_onDaySelected(date, event,); _onDaySelected(date, event,);
_animationController.forward(from: 0.0); _animationController.forward(from: 0.0);
}, },

@ -94,7 +94,7 @@ class _AppointmentActionsState extends State<AppointmentActions> {
child: Text(e.title, child: Text(e.title,
overflow: TextOverflow.clip, overflow: TextOverflow.clip,
style: TextStyle( style: TextStyle(
color: new Color(0xFFc5272d), color: new Color(0xFF40ACC9),
letterSpacing: 1.0, letterSpacing: 1.0,
fontSize: 20.0)), fontSize: 20.0)),
), ),

@ -253,7 +253,7 @@ class _ToDoState extends State<ToDo> {
textAlign: TextAlign.end, textAlign: TextAlign.end,
style: TextStyle( style: TextStyle(
fontSize: 12.0, fontSize: 12.0,
color: Colors.red[600], color: new Color(0xFF40ACC9),
decoration: decoration:
TextDecoration.underline)), TextDecoration.underline)),
), ),

@ -191,7 +191,7 @@ class _TodoListCardState extends State<TodoListCard> {
textAlign: TextAlign.end, textAlign: TextAlign.end,
style: TextStyle( style: TextStyle(
fontSize: 12.0, fontSize: 12.0,
color: Colors.red[600], color: new Color(0xFF40ACC9),
decoration: TextDecoration.underline)), decoration: TextDecoration.underline)),
), ),
), ),

@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/models/Authentication/check_activation_code
import 'package:diplomaticquarterapp/models/Authentication/check_paitent_authentication_req.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_paitent_authentication_req.dart';
import 'package:diplomaticquarterapp/models/Authentication/select_device_imei_res.dart'; import 'package:diplomaticquarterapp/models/Authentication/select_device_imei_res.dart';
import 'package:diplomaticquarterapp/models/Authentication/send_activation_request.dart'; import 'package:diplomaticquarterapp/models/Authentication/send_activation_request.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
@ -13,11 +14,9 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart'; import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart'; import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:local_auth/local_auth.dart'; import 'package:local_auth/local_auth.dart';
@ -92,9 +91,9 @@ class _ConfirmLogin extends State<ConfirmLogin> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/habib-logo.png', 'assets/images/DQ/dq_logo_icon.png',
height: 80, height: 90,
width: 80, width: 90,
), ),
AppText( AppText(
TranslationBase.of(context).welcomeBack + TranslationBase.of(context).welcomeBack +
@ -146,9 +145,9 @@ class _ConfirmLogin extends State<ConfirmLogin> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/habib-logo.png', 'assets/images/DQ/dq_logo_icon.png',
height: 80, height: 90,
width: 80, width: 90,
), ),
this.onlySMSBox == false this.onlySMSBox == false
? AppText( ? AppText(
@ -163,7 +162,7 @@ class _ConfirmLogin extends State<ConfirmLogin> {
.verifyFingerprint2, .verifyFingerprint2,
fontSize: fontSize:
SizeConfig.textMultiplier * 2.5, SizeConfig.textMultiplier * 2.5,
textAlign: TextAlign.left, textAlign: TextAlign.start,
), ),
])), ])),
user != null && isMoreOption == false user != null && isMoreOption == false
@ -330,11 +329,10 @@ class _ConfirmLogin extends State<ConfirmLogin> {
var request = this.getCommonRequest(); var request = this.getCommonRequest();
// loading(true); // loading(true);
await this.authService.sendActivationCode(request).then((result) => { await this.authService.sendActivationCode(request).then((result) => {
if (result != null && result['isSMSSent'] == true) if (result != null && result['isSMSSent'] == true)
{this.startSMSService(type)} {this.startSMSService(type)}
}); });
// SMSOTP.showLoadingDialog(context, false), // SMSOTP.showLoadingDialog(context, false),
} }

@ -1,6 +1,6 @@
import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/input/text_field.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart'; import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
@ -16,10 +16,11 @@ class _ForgotPassword extends State<ForgotPassword> {
String selectedType = 'Saudi Arabia'; String selectedType = 'Saudi Arabia';
final TextEditingController nationalIDorFile = null; final TextEditingController nationalIDorFile = null;
final TextEditingController mobileNo = null; final TextEditingController mobileNo = null;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( return AppScaffold(
appBarTitle: TranslationBase.of(context).forgotPassword, appBarTitle: TranslationBase.of(context).forgotFileNoTitle,
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
body: SingleChildScrollView( body: SingleChildScrollView(
@ -32,8 +33,9 @@ class _ForgotPassword extends State<ForgotPassword> {
flex: 1, flex: 1,
child: AppText( child: AppText(
TranslationBase.of(context).forgotDesc, TranslationBase.of(context).forgotDesc,
fontSize: SizeConfig.textMultiplier * 3.5, fontSize: SizeConfig.textMultiplier * 3,
textAlign: TextAlign.left, textAlign: TextAlign.start,
marginTop: 10.0,
)), )),
Expanded( Expanded(
flex: 2, flex: 2,
@ -43,29 +45,29 @@ class _ForgotPassword extends State<ForgotPassword> {
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Expanded( // Expanded(
// add Expanded to have your dropdown button fill remaining space // // add Expanded to have your dropdown button fill remaining space
child: DropdownButtonHideUnderline( // child: DropdownButtonHideUnderline(
child: DropdownButton( // child: DropdownButton(
isExpanded: true, // isExpanded: true,
value: selectedType, // value: selectedType,
iconSize: 40, // iconSize: 40,
elevation: 16, // elevation: 16,
onChanged: (String newValue) => { // onChanged: (String newValue) => {
setState(() { // setState(() {
selectedType = newValue; // selectedType = newValue;
}) // })
}, // },
items: <String>[ // items: <String>[
'Saudi Arabia', // 'Saudi Arabia',
'Dubai', // 'Dubai',
].map<DropdownMenuItem<String>>( // ].map<DropdownMenuItem<String>>(
(String value) { // (String value) {
return DropdownMenuItem<String>( // return DropdownMenuItem<String>(
value: value, // value: value,
child: Text(value), // child: Text(value),
); // );
}).toList()))), // }).toList()))),
], ],
), ),
MobileNo(controller: mobileNo), MobileNo(controller: mobileNo),
@ -80,12 +82,10 @@ class _ForgotPassword extends State<ForgotPassword> {
Row( Row(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: RaisedButton( child: DefaultButton(
color: Colors.grey, TranslationBase.of(context).submit,
textColor: Colors.white, () => {},
child: Text(TranslationBase.of(context).submit), )),
onPressed: () => {},
))
], ],
), ),
], ],

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart'; import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
@ -6,7 +7,6 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/routes.dart';
class LoginType extends StatelessWidget { class LoginType extends StatelessWidget {
static int loginType = 0; static int loginType = 0;
@ -28,14 +28,16 @@ class LoginType extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/habib-logo.png', 'assets/images/DQ/dq_logo_icon.png',
height: 80, height: 90,
width: 80, width: 90,
), ),
AppText( AppText(
TranslationBase.of(context).logintypeRadio, TranslationBase.of(context).logintypeRadio,
fontSize: SizeConfig.textMultiplier * 3.5, fontSize: SizeConfig.textMultiplier * 3.5,
textAlign: TextAlign.left, textAlign: TextAlign.start,
marginBottom: 20.0,
marginTop: 20.0,
), ),
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -75,6 +77,7 @@ class LoginType extends StatelessWidget {
fontSize: fontSize:
SizeConfig.textMultiplier * SizeConfig.textMultiplier *
2, 2,
fontWeight: FontWeight.bold,
) )
], ],
), ),
@ -112,6 +115,7 @@ class LoginType extends StatelessWidget {
fontSize: fontSize:
SizeConfig.textMultiplier * SizeConfig.textMultiplier *
2, 2,
fontWeight: FontWeight.bold,
) )
], ],
), ),
@ -131,7 +135,7 @@ class LoginType extends StatelessWidget {
child: AppText( child: AppText(
TranslationBase.of(context).forgotPassword, TranslationBase.of(context).forgotPassword,
fontSize: SizeConfig.textMultiplier * 2.5, fontSize: SizeConfig.textMultiplier * 2.5,
margin: 10, marginTop: 20.0,
underline: true))) underline: true)))
]), ]),
), ),
@ -150,7 +154,7 @@ class LoginType extends StatelessWidget {
REGISTER, REGISTER,
) )
}, },
)) )),
], ],
), ),
], ],

@ -74,7 +74,7 @@ class _Login extends State<Login> {
child: AppText( child: AppText(
TranslationBase.of(context).enterNationalId, TranslationBase.of(context).enterNationalId,
fontSize: SizeConfig.textMultiplier * 3.5, fontSize: SizeConfig.textMultiplier * 3.5,
textAlign: TextAlign.left, textAlign: TextAlign.start,
)), )),
Expanded( Expanded(
flex: 3, flex: 3,
@ -94,7 +94,7 @@ class _Login extends State<Login> {
loginType == 1 loginType == 1
? Icons.chrome_reader_mode ? Icons.chrome_reader_mode
: Icons.receipt, : Icons.receipt,
color: Colors.red), color: Color(0xFF40ACC9)),
padding: EdgeInsets.only( padding: EdgeInsets.only(
top: 20, bottom: 20, left: 10, right: 10), top: 20, bottom: 20, left: 10, right: 10),
hintText: loginType == 1 hintText: loginType == 1

@ -76,7 +76,7 @@ class _Register extends State<Register> {
controller: nationalIDorFile, controller: nationalIDorFile,
onChanged: (value) => validateForm(), onChanged: (value) => validateForm(),
prefixIcon: prefixIcon:
Icon(Icons.chrome_reader_mode, color: Colors.red), Icon(Icons.chrome_reader_mode, color: Color(0xFF40ACC9)),
padding: EdgeInsets.only( padding: EdgeInsets.only(
top: 20, bottom: 20, left: 10, right: 10), top: 20, bottom: 20, left: 10, right: 10),
hintText: TranslationBase.of(context).nationalID, hintText: TranslationBase.of(context).nationalID,

@ -1,15 +1,10 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart'; import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/models/Authentication/select_device_imei_res.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/routes.dart';
class WelcomeLogin extends StatefulWidget { class WelcomeLogin extends StatefulWidget {
@override @override
@ -18,6 +13,7 @@ class WelcomeLogin extends StatefulWidget {
class _WelcomeLogin extends State<WelcomeLogin> { class _WelcomeLogin extends State<WelcomeLogin> {
bool isLoading = true; bool isLoading = true;
@override @override
void initState() { void initState() {
isLoading = true; isLoading = true;
@ -40,25 +36,23 @@ class _WelcomeLogin extends State<WelcomeLogin> {
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset('assets/images/DQ/dq_logo_icon.png',
'assets/images/habib-logo.png', height: 90, width: 90),
height: 80,
width: 80,
),
Text( Text(
TranslationBase.of(context).welcome, TranslationBase.of(context).welcome,
style: TextStyle(fontSize: 30), style: TextStyle(
textAlign: TextAlign.left, fontSize: 30, fontWeight: FontWeight.bold),
textAlign: TextAlign.start,
), ),
Text( Text(
TranslationBase.of(context).welcomeText, TranslationBase.of(context).welcomeText,
style: TextStyle(fontSize: 24), style: TextStyle(fontSize: 24),
textAlign: TextAlign.left, textAlign: TextAlign.start,
), ),
Text( Text(
TranslationBase.of(context).welcomeText2, TranslationBase.of(context).welcomeText2,
style: TextStyle(fontSize: 24), style: TextStyle(fontSize: 24),
textAlign: TextAlign.left, textAlign: TextAlign.start,
), ),
SizedBox( SizedBox(
height: SizeConfig.realScreenHeight * .15, height: SizeConfig.realScreenHeight * .15,
@ -81,7 +75,7 @@ class _WelcomeLogin extends State<WelcomeLogin> {
LOGIN_TYPE, LOGIN_TYPE,
), ),
}, },
color: Colors.red[900], color: Color(0xFF40ACC9),
textColor: Colors.white, textColor: Colors.white,
)) ))
], ],

@ -0,0 +1,131 @@
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/routes.dart';
class SymptomInfo extends StatefulWidget {
@override
_SymptomInfo createState() => new _SymptomInfo();
}
class _SymptomInfo extends State<SymptomInfo> {
bool checkValue = false;
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: TranslationBase.of(context).termsService,
isShowAppBar: true,
body: Padding(
padding: EdgeInsets.all(20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context).beforeUsing,
fontWeight: FontWeight.bold,
fontSize: 14,
// textAlign: TextAlign.center,
),
Container(
width: MediaQuery.of(context).size.width,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.white,
),
padding: EdgeInsets.all(30),
margin: EdgeInsets.all(10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
AppText(TranslationBase.of(context).remeberthat,
fontSize: 16),
SizedBox(
height: 10,
),
AppText(
'1. ' + TranslationBase.of(context).checkDiagnosis,
fontWeight: FontWeight.bold,
fontSize: 16,
),
AppText(TranslationBase.of(context).informational,
fontSize: 16),
SizedBox(
height: 10,
),
AppText(
'2. ' + TranslationBase.of(context).notUseInEmbergency,
fontWeight: FontWeight.bold,
fontSize: 16,
),
AppText(
TranslationBase.of(context).notUseInEmbergencyDetails,
fontSize: 16),
AppText(
TranslationBase.of(context).notUseInEmbergencyCall,
underline: true,
color: Colors.blue,
fontSize: 16),
SizedBox(
height: 10,
),
AppText(
'3.' + TranslationBase.of(context).dataSafe,
fontWeight: FontWeight.bold,
fontSize: 16,
),
AppText(TranslationBase.of(context).dataSafeInfo,
fontSize: 16),
],
),
),
Expanded(
flex: 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Padding(
padding: EdgeInsets.all(10),
child: CheckboxListTile(
title: AppText(TranslationBase.of(context).accept),
value: checkValue,
onChanged: (newValue) {
setState(() {
this.checkValue = newValue;
});
},
controlAffinity: ListTileControlAffinity
.leading, // <-- leading Checkbox
),
),
Row(
children: <Widget>[
Expanded(
child: DefaultButton(
TranslationBase.of(context).next,
() => {
if (checkValue == true)
{
Navigator.of(context).pushNamed(
SELECT_GENDER,
)
}
},
color: checkValue == true
? Colors.black
: Colors.grey,
textColor: Colors.white,
))
],
),
],
))
],
)));
}
}

@ -0,0 +1,124 @@
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:flutter_xlider/flutter_xlider.dart';
class SelectGender extends StatefulWidget {
@override
_SelectGender createState() => new _SelectGender();
}
class _SelectGender extends State<SelectGender> {
double slider = 22;
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: TranslationBase.of(context).gender,
isShowAppBar: true,
body: Padding(
padding: EdgeInsets.all(20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
//TranslationBase.of(context).beforeUsing,
TranslationBase.of(context).selectGender,
fontWeight: FontWeight.bold,
fontSize: 20,
// textAlign: TextAlign.center,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
AppText(TranslationBase.of(context).iAma, fontSize: 16),
SizedBox(
height: 10,
),
Row(
children: [
Expanded(
child: Container(
height: 200,
width: 150,
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),
),
shadowColor: Colors.red,
child: Image.asset(
'assets/images/female_face.png')))),
Expanded(
child: Container(
height: 200,
width: 150,
child: Card(
shadowColor: Colors.red,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),
),
child: Image.asset(
'assets/images/male_face.png'))))
],
),
AppText(TranslationBase.of(context).selectAge,
fontSize: 25),
SizedBox(
height: 10,
),
AppText(
TranslationBase.of(context).iAm +
' ' +
slider.toString() +
' ' +
TranslationBase.of(context)
.yearOld, //TranslationBase.of(context).remeberthat,
fontSize: 16),
SizedBox(
height: 30,
),
FlutterSlider(
values: [slider],
max: 90,
min: 14,
onDragCompleted: (handlerIndex, lowerValue, upperValue) {
print(lowerValue);
print(upperValue);
setState(() {
slider = upperValue;
});
},
),
],
),
Expanded(
flex: 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Row(
children: <Widget>[
Expanded(
child: DefaultButton(
TranslationBase.of(context).next,
() => {
Navigator.of(context).pushNamed(
SYMPTOM_CHECKER,
)
},
))
],
),
],
))
],
)));
}
}

File diff suppressed because one or more lines are too long

@ -10,6 +10,8 @@ import 'package:diplomaticquarterapp/pages/login/login.dart';
import 'package:diplomaticquarterapp/pages/login/register.dart'; import 'package:diplomaticquarterapp/pages/login/register.dart';
import 'package:diplomaticquarterapp/pages/family/add-family_type.dart'; import 'package:diplomaticquarterapp/pages/family/add-family_type.dart';
import 'package:diplomaticquarterapp/pages/family/add-family-member.dart'; import 'package:diplomaticquarterapp/pages/family/add-family-member.dart';
import 'package:diplomaticquarterapp/pages/symptom-checker/info.dart';
import 'package:diplomaticquarterapp/pages/symptom-checker/select-gender.dart';
import 'package:diplomaticquarterapp/pages/symptom-checker/symtom-checker.dart'; import 'package:diplomaticquarterapp/pages/symptom-checker/symtom-checker.dart';
const String INIT_ROUTE = '/'; const String INIT_ROUTE = '/';
@ -27,6 +29,8 @@ const String ADD_FAMILY_MEMBER_TYPE = 'add-family-member-type';
const String ADD_FAMILY_MEMBER = 'add-family-member'; const String ADD_FAMILY_MEMBER = 'add-family-member';
const String LIVE_CARE = 'live-care'; const String LIVE_CARE = 'live-care';
const String SYMPTOM_CHECKER = 'symptom-checker'; const String SYMPTOM_CHECKER = 'symptom-checker';
const String SYMPTOM_CHECKER_INFO = 'symptom-checker-info';
const String SELECT_GENDER = 'select-gender';
var routes = { var routes = {
HOME: (_) => LandingPage(), HOME: (_) => LandingPage(),
WELCOME_LOGIN: (_) => WelcomeLogin(), WELCOME_LOGIN: (_) => WelcomeLogin(),
@ -40,5 +44,7 @@ var routes = {
ADD_FAMILY_MEMBER_TYPE: (_) => AddFamilyMemberType(), ADD_FAMILY_MEMBER_TYPE: (_) => AddFamilyMemberType(),
ADD_FAMILY_MEMBER: (_) => AddMember(), ADD_FAMILY_MEMBER: (_) => AddMember(),
LIVE_CARE: (_) => LiveCareHome(), LIVE_CARE: (_) => LiveCareHome(),
SYMPTOM_CHECKER: (_) => SymptomChecker() SYMPTOM_CHECKER: (_) => SymptomChecker(),
SYMPTOM_CHECKER_INFO: (_) => SymptomInfo(),
SELECT_GENDER: (_) => SelectGender()
}; };

@ -66,7 +66,8 @@ class DoctorsListService extends BaseService {
// "Latitude": 0, // "Latitude": 0,
// "Longitude": 0, // "Longitude": 0,
// "License": true, // "License": true,
"IsVoiceCommand": doctorId != null && doctorId.length > 0 ? true : false, "SearchForVoiceCommand":
doctorId != null && doctorId.length > 0 ? true : false,
"DoctorIDsList": doctorId, "DoctorIDsList": doctorId,
"Latitude": lat != null ? lat.toString() : 0, "Latitude": lat != null ? lat.toString() : 0,
"Longitude": long != null ? long.toString() : 0, "Longitude": long != null ? long.toString() : 0,
@ -212,8 +213,8 @@ class DoctorsListService extends BaseService {
return Future.value(localRes); return Future.value(localRes);
} }
Future<Map> getDoctorScheduledFreeSlots( Future<Map> getDoctorScheduledFreeSlots(int docID, int clinicID,
int docID, int clinicID, int projectID, int serviceID, BuildContext context) async { int projectID, int serviceID, BuildContext context) async {
Map<String, dynamic> request; Map<String, dynamic> request;
var languageID = await sharedPref.getString(APP_LANGUAGE); var languageID = await sharedPref.getString(APP_LANGUAGE);
Request req = appGlobal.getPublicRequest(); Request req = appGlobal.getPublicRequest();
@ -241,10 +242,10 @@ class DoctorsListService extends BaseService {
await baseAppClient.post(GET_LIVECARE_SCHEDULE_DOCTOR_TIME_SLOTS, await baseAppClient.post(GET_LIVECARE_SCHEDULE_DOCTOR_TIME_SLOTS,
onSuccess: (response, statusCode) async { onSuccess: (response, statusCode) async {
localRes = response; localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
throw error; throw error;
}, body: request); }, body: request);
return Future.value(localRes); return Future.value(localRes);
} }
@ -301,8 +302,14 @@ class DoctorsListService extends BaseService {
return Future.value(localRes); return Future.value(localRes);
} }
Future<Map> insertLiveCareScheduleAppointment(int docID, int clinicID, int projectID, int serviceID, Future<Map> insertLiveCareScheduleAppointment(
String selectedTime, String selectedDate, BuildContext context) async { int docID,
int clinicID,
int projectID,
int serviceID,
String selectedTime,
String selectedDate,
BuildContext context) async {
Map<String, dynamic> request; Map<String, dynamic> request;
if (await this.sharedPref.getObject(USER_PROFILE) != null) { if (await this.sharedPref.getObject(USER_PROFILE) != null) {
@ -348,10 +355,10 @@ class DoctorsListService extends BaseService {
await baseAppClient.post(INSERT_LIVECARE_SCHEDULE_APPOINTMENT, await baseAppClient.post(INSERT_LIVECARE_SCHEDULE_APPOINTMENT,
onSuccess: (response, statusCode) async { onSuccess: (response, statusCode) async {
localRes = response; localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
throw error; throw error;
}, body: request); }, body: request);
return Future.value(localRes); return Future.value(localRes);
} }
@ -437,10 +444,10 @@ class DoctorsListService extends BaseService {
await baseAppClient.post(GET_PATIENT_SHARE_LIVECARE, await baseAppClient.post(GET_PATIENT_SHARE_LIVECARE,
onSuccess: (response, statusCode) async { onSuccess: (response, statusCode) async {
localRes = response['OnlineCheckInAppointments'][0]; localRes = response['OnlineCheckInAppointments'][0];
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
throw error; throw error;
}, body: request); }, body: request);
return Future.value(localRes); return Future.value(localRes);
} }
@ -519,8 +526,8 @@ class DoctorsListService extends BaseService {
return Future.value(localRes); return Future.value(localRes);
} }
Future<Map> confirmAppointment( Future<Map> confirmAppointment(int appoNo, int clinicID, int projectID,
int appoNo, int clinicID, int projectID, bool isLiveCare, BuildContext context) async { bool isLiveCare, BuildContext context) async {
Map<String, dynamic> request; Map<String, dynamic> request;
if (await this.sharedPref.getObject(USER_PROFILE) != null) { if (await this.sharedPref.getObject(USER_PROFILE) != null) {
@ -564,9 +571,8 @@ class DoctorsListService extends BaseService {
return Future.value(localRes); return Future.value(localRes);
} }
Future<Map> insertVIDARequest(int appoNo, int clinicID, int projectID,
Future<Map> insertVIDARequest( int serviceID, int docID, BuildContext context) async {
int appoNo, int clinicID, int projectID, int serviceID, int docID, BuildContext context) async {
Map<String, dynamic> request; Map<String, dynamic> request;
if (await this.sharedPref.getObject(USER_PROFILE) != null) { if (await this.sharedPref.getObject(USER_PROFILE) != null) {
@ -613,10 +619,10 @@ class DoctorsListService extends BaseService {
await baseAppClient.post(INSERT_VIDA_REQUEST, await baseAppClient.post(INSERT_VIDA_REQUEST,
onSuccess: (response, statusCode) async { onSuccess: (response, statusCode) async {
localRes = response; localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
throw error; throw error;
}, body: request); }, body: request);
return Future.value(localRes); return Future.value(localRes);
} }

@ -0,0 +1,18 @@
import 'package:flutter/material.dart';
import '../widgets/Loader/gif_loader_container.dart';
class GifLoaderDialogUtils {
static AlertDialog dialog = AlertDialog(
backgroundColor: Colors.transparent,
content: GifLoaderContainer(),
);
static showMyDialog(BuildContext context) {
showDialog(context: context, child: dialog);
}
static hideDialog(BuildContext context) {
Navigator.of(context).pop();
}
}

@ -1,6 +1,7 @@
import 'dart:async'; import 'dart:async';
import 'package:diplomaticquarterapp/config/localized_values.dart'; import 'package:diplomaticquarterapp/config/localized_values.dart';
import 'package:diplomaticquarterapp/pages/symptom-checker/select-gender.dart';
import 'package:flutter/foundation.dart' show SynchronousFuture; import 'package:flutter/foundation.dart' show SynchronousFuture;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -95,9 +96,11 @@ class TranslationBase {
String get confirm => localizedValues['confirm'][locale.languageCode]; String get confirm => localizedValues['confirm'][locale.languageCode];
String get confirmLiveCare => localizedValues['confirmLiveCare'][locale.languageCode]; String get confirmLiveCare =>
localizedValues['confirmLiveCare'][locale.languageCode];
String get waitingForDoctor => localizedValues['waitingForDoctor'][locale.languageCode]; String get waitingForDoctor =>
localizedValues['waitingForDoctor'][locale.languageCode];
String get confirmLater => String get confirmLater =>
localizedValues['confirmLater'][locale.languageCode]; localizedValues['confirmLater'][locale.languageCode];
@ -119,6 +122,9 @@ class TranslationBase {
String get loginregister => String get loginregister =>
localizedValues['loginregister'][locale.languageCode]; localizedValues['loginregister'][locale.languageCode];
String get poweredBy =>
localizedValues['poweredBy'][locale.languageCode];
String get welcome => localizedValues['welcome'][locale.languageCode]; String get welcome => localizedValues['welcome'][locale.languageCode];
String get welcomeText => String get welcomeText =>
@ -145,6 +151,9 @@ class TranslationBase {
String get forgotPassword => String get forgotPassword =>
localizedValues['forgotFileNo'][locale.languageCode]; localizedValues['forgotFileNo'][locale.languageCode];
String get forgotFileNoTitle =>
localizedValues['forgotFileNoTitle'][locale.languageCode];
String get enterNationalId => String get enterNationalId =>
localizedValues['enter-national-id'][locale.languageCode]; localizedValues['enter-national-id'][locale.languageCode];
@ -674,17 +683,51 @@ class TranslationBase {
localizedValues['DoctorResponses'][locale.languageCode]; localizedValues['DoctorResponses'][locale.languageCode];
String get newDes => localizedValues['New'][locale.languageCode]; String get newDes => localizedValues['New'][locale.languageCode];
String get all => localizedValues['All'][locale.languageCode]; String get all => localizedValues['All'][locale.languageCode];
String get questionHere => localizedValues['QuestionHere'][locale.languageCode]; String get questionHere =>
String get viewDoctorResponses => localizedValues['ViewDoctorResponses'][locale.languageCode]; localizedValues['QuestionHere'][locale.languageCode];
String get serviceInformation => localizedValues['ServiceInformation'][locale.languageCode]; String get viewDoctorResponses =>
String get homeHealthCare => localizedValues['HomeHealthCare'][locale.languageCode]; localizedValues['ViewDoctorResponses'][locale.languageCode];
String get homeHealthCareText => localizedValues['HomeHealthCareText'][locale.languageCode]; String get serviceInformationButton =>
String get loginRegister => localizedValues['LoginRegister'][locale.languageCode]; localizedValues['ServiceInformationButton'][locale.languageCode];
String get serviceInformationTitle =>
localizedValues['ServiceInformationTitle'][locale.languageCode];
String get serviceInformation =>
localizedValues['ServiceInformation'][locale.languageCode];
String get homeHealthCare =>
localizedValues['HomeHealthCare'][locale.languageCode];
String get homeHealthCareText =>
localizedValues['HomeHealthCareText'][locale.languageCode];
String get loginRegister =>
localizedValues['LoginRegister'][locale.languageCode];
String get orderLog => localizedValues['OrderLog'][locale.languageCode]; String get orderLog => localizedValues['OrderLog'][locale.languageCode];
String get serviceInformationButton => localizedValues['ServiceInformationButton'][locale.languageCode];
String get serviceInformationTitle => localizedValues['ServiceInformationTitle'][locale.languageCode];
String get infoLab => localizedValues['info-lab'][locale.languageCode]; String get infoLab => localizedValues['info-lab'][locale.languageCode];
String get infoRadiology => localizedValues['info-radiology'][locale.languageCode]; String get infoRadiology =>
localizedValues['info-radiology'][locale.languageCode];
String get termsService =>
localizedValues['TermsService'][locale.languageCode];
String get beforeUsing => localizedValues['Beforeusing'][locale.languageCode];
String get accept => localizedValues['accept'][locale.languageCode];
String get dataSafeInfo =>
localizedValues['data-safe-info'][locale.languageCode];
String get dataSafe => localizedValues['data-safe'][locale.languageCode];
String get informational =>
localizedValues['informational'][locale.languageCode];
String get checkDiagnosis =>
localizedValues['check-diagnosis'][locale.languageCode];
String get remeberthat => localizedValues['remeberthat'][locale.languageCode];
String get notUseInEmbergency =>
localizedValues['not-use-in-emerbency'][locale.languageCode];
String get notUseInEmbergencyDetails =>
localizedValues['not-use-in-emerbency-details'][locale.languageCode];
String get notUseInEmbergencyCall =>
localizedValues['not-use-in-emerbency-details-call'][locale.languageCode];
String get selectGender =>
localizedValues['select-gender'][locale.languageCode];
String get iAma => localizedValues['i-am-a'][locale.languageCode];
String get selectAge => localizedValues['select-age'][locale.languageCode];
String get iAm => localizedValues['i-am'][locale.languageCode];
String get yearOld => localizedValues['years-old'][locale.languageCode];
} }
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> { class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -0,0 +1,43 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter_gifimage/flutter_gifimage.dart';
class GifLoaderContainer extends StatefulWidget {
@override
_GifLoaderContainerState createState() => _GifLoaderContainerState();
}
class _GifLoaderContainerState extends State<GifLoaderContainer>
with TickerProviderStateMixin {
GifController controller1;
@override
void initState() {
controller1 = GifController(vsync: this);
WidgetsBinding.instance.addPostFrameCallback((_) {
controller1.repeat(
min: 0, max: 12, period: Duration(milliseconds: 750), reverse: true);
});
super.initState();
}
@override
void dispose() {
controller1.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Center(
//progress-loading.gif
child: Container(
margin: EdgeInsets.only(bottom: 40),
child: GifImage(
controller: controller1,
image: AssetImage(
"assets/images/progress-loading.gif"), //NetworkImage("http://img.mp.itc.cn/upload/20161107/5cad975eee9e4b45ae9d3c1238ccf91e.jpg"),
),
));
}
}

@ -1,6 +1,5 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart';
@ -15,6 +14,7 @@ import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:smart_progress_bar/smart_progress_bar.dart'; import 'package:smart_progress_bar/smart_progress_bar.dart';
import '../../config/size_config.dart'; import '../../config/size_config.dart';
import '../../locator.dart'; import '../../locator.dart';
import 'drawer_item_widget.dart'; import 'drawer_item_widget.dart';
@ -35,7 +35,8 @@ class _AppDrawerState extends State<AppDrawer> {
var sharedPref = new AppSharedPreferences(); var sharedPref = new AppSharedPreferences();
var familyFileProvider = FamilyFilesProvider(); var familyFileProvider = FamilyFilesProvider();
AuthenticatedUser user; AuthenticatedUser user;
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>(); AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -59,7 +60,8 @@ class _AppDrawerState extends State<AppDrawer> {
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Container( Container(
child: Image.asset('assets/images/logo.png'), child:
Image.asset('assets/images/DQ/DQ_logo.png'),
margin: EdgeInsets.all( margin: EdgeInsets.all(
SizeConfig.imageSizeMultiplier * 4), SizeConfig.imageSizeMultiplier * 4),
), ),
@ -289,17 +291,29 @@ class _AppDrawerState extends State<AppDrawer> {
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Container( Container(
// This align moves the children to the bottom
child: Align( child: Align(
alignment: FractionalOffset.bottomCenter, alignment: FractionalOffset.bottomCenter,
child: Container( child: Container(
child: Column( child: Row(
children: <Widget>[ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
Text("Powered by"), children: [
Image.asset( Column(
'assets/images/cs_logo_container.png', children: <Widget>[
width: SizeConfig.imageSizeMultiplier * 30, Text(TranslationBase.of(context).poweredBy),
) Image.asset(
'assets/images/cs_logo_container.png',
width: SizeConfig.imageSizeMultiplier * 30,
)
],
),
Column(
children: <Widget>[
Image.asset(
'assets/images/new-design/vidamobile.png',
width: SizeConfig.imageSizeMultiplier * 25,
)
],
),
], ],
), ),
), ),

@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
class MobileNo extends StatefulWidget { class MobileNo extends StatefulWidget {
final bool disabled; final bool disabled;
// final String data; // final String data;
final List<Countries> countries = [ final List<Countries> countries = [
new Countries(name: 'Saudi Arabia', code: '966'), new Countries(name: 'Saudi Arabia', code: '966'),
@ -20,6 +21,7 @@ class MobileNo extends StatefulWidget {
final TextEditingController controller; final TextEditingController controller;
final Function onNumberChange; final Function onNumberChange;
final Function onCountryChange; final Function onCountryChange;
MobileNo( MobileNo(
{this.disabled = false, {this.disabled = false,
this.marginTop = 0, this.marginTop = 0,
@ -38,6 +40,7 @@ class MobileNo extends StatefulWidget {
class _MobileNo extends State<MobileNo> { class _MobileNo extends State<MobileNo> {
var _selectedType = '966'; var _selectedType = '966';
String countryCode = '966'; String countryCode = '966';
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Visibility( return Visibility(
@ -45,8 +48,18 @@ class _MobileNo extends State<MobileNo> {
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Expanded( Container(
// add Expanded to have your dropdown button fill remaining space margin: EdgeInsets.only(bottom: 10.0),
height: 60.0,
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(
color: Colors.grey[400],
width: 1.0,
),
borderRadius: BorderRadius.circular(10),
),
width: MediaQuery.of(context).size.width * 0.89,
child: Padding( child: Padding(
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: DropdownButtonHideUnderline( child: DropdownButtonHideUnderline(
@ -82,14 +95,13 @@ class _MobileNo extends State<MobileNo> {
flex: 1, flex: 1,
child: Icon( child: Icon(
Icons.phone, Icons.phone,
color: Colors.red, color: Color(0xFF40ACC9),
)), )),
Expanded( Expanded(
flex: 1, flex: 1,
child: Text( child: Text(
countryCode, countryCode,
overflow: TextOverflow.clip, overflow: TextOverflow.clip,
)), )),
Expanded( Expanded(
flex: 4, flex: 4,
@ -122,5 +134,6 @@ class _MobileNo extends State<MobileNo> {
class Countries { class Countries {
final String name; final String name;
final String code; final String code;
Countries({this.name, this.code}); Countries({this.name, this.code});
} }

@ -71,7 +71,7 @@ class _AppExpandableNotifier extends State<AppExpandableNotifier> {
height: 28.0, height: 28.0,
width: 30.0, width: 30.0,
decoration: new BoxDecoration( decoration: new BoxDecoration(
color: Colors.red, color: Color(0xFF40ACC9),
shape: BoxShape.circle, shape: BoxShape.circle,
), ),
child: new Center( child: new Center(

@ -51,7 +51,8 @@ class AppScaffold extends StatelessWidget {
this.floatingActionButton, this.floatingActionButton,
this.title, this.title,
this.description, this.description,
this.isShowDecPage = true, this.isBottomBar}); this.isShowDecPage = true,
this.isBottomBar});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -69,7 +70,8 @@ class AppScaffold extends StatelessWidget {
), ),
title: Texts(authenticatedUserObject.isLogin || !isShowDecPage title: Texts(authenticatedUserObject.isLogin || !isShowDecPage
? appBarTitle.toUpperCase() ? appBarTitle.toUpperCase()
: TranslationBase.of(context).serviceInformationTitle),leading: Builder( : TranslationBase.of(context).serviceInformationTitle),
leading: Builder(
builder: (BuildContext context) { builder: (BuildContext context) {
return ArrowBack(); return ArrowBack();
}, },
@ -80,7 +82,10 @@ class AppScaffold extends StatelessWidget {
icon: Icon(FontAwesomeIcons.home), icon: Icon(FontAwesomeIcons.home),
color: Colors.white, color: Colors.white,
onPressed: () { onPressed: () {
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => LandingPage()), (Route<dynamic> r) => false); Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => LandingPage()),
(Route<dynamic> r) => false);
}, },
), ),
], ],
@ -91,14 +96,14 @@ class AppScaffold extends StatelessWidget {
title: appBarTitle, title: appBarTitle,
description: description, description: description,
) )
:baseViewModel != null : baseViewModel != null
? NetworkBaseView( ? NetworkBaseView(
child: buildBodyWidget(), child: buildBodyWidget(),
baseViewModel: baseViewModel, baseViewModel: baseViewModel,
) )
: buildBodyWidget(), : buildBodyWidget(),
bottomSheet: bottomSheet, bottomSheet: bottomSheet,
floatingActionButton: floatingActionButton ?? floatingActionButton, //floatingActionButton: floatingActionButton ?? floatingActionButton,
// bottomNavigationBar: // bottomNavigationBar:
// this.isBottomBar == true ? BottomBarSearch() : SizedBox() // this.isBottomBar == true ? BottomBarSearch() : SizedBox()
// floatingActionButton: FloatingSearchButton(), // floatingActionButton: FloatingSearchButton(),

@ -1,15 +1,32 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/widgets/Loader/gif_loader_container.dart';
import 'package:diplomaticquarterapp/widgets/errors/app_embedded_error.dart'; import 'package:diplomaticquarterapp/widgets/errors/app_embedded_error.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gifimage/flutter_gifimage.dart';
class NetworkBaseView extends StatelessWidget { class NetworkBaseView extends StatefulWidget {
final BaseViewModel baseViewModel; final BaseViewModel baseViewModel;
final Widget child; final Widget child;
NetworkBaseView({Key key, this.baseViewModel, this.child}); NetworkBaseView({Key key, this.baseViewModel, this.child});
@override
_NetworkBaseViewState createState() => _NetworkBaseViewState();
}
class _NetworkBaseViewState extends State<NetworkBaseView>{
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
@ -18,22 +35,34 @@ class NetworkBaseView extends StatelessWidget {
} }
buildBaseViewWidget() { buildBaseViewWidget() {
switch (baseViewModel.state) { switch (widget.baseViewModel.state) {
case ViewState.ErrorLocal: case ViewState.ErrorLocal:
case ViewState.Idle: case ViewState.Idle:
case ViewState.BusyLocal: case ViewState.BusyLocal:
return child; return widget.child;
break; break;
case ViewState.Busy: case ViewState.Busy:
return AppCircularProgressIndicator(); return Stack(
children: [
Container(
height: MediaQuery.of(context).size.height,
color: Colors.grey.withOpacity(0.6),
),
GifLoaderContainer()
],
);
break; break;
case ViewState.Error: case ViewState.Error:
return Center( return Center(
child: AppEmbeddedError( child: AppEmbeddedError(
error: baseViewModel.error, error: widget.baseViewModel.error,
), ),
); );
break; break;
} }
} }
} }

@ -25,7 +25,8 @@ class AppText extends StatefulWidget {
{this.color = Colors.black, {this.color = Colors.black,
this.fontWeight = FontWeight.normal, this.fontWeight = FontWeight.normal,
this.fontSize, this.fontSize,
this.fontFamily = 'WorkSans', // this.fontFamily = 'WorkSans',
this.fontFamily,
this.margin, this.margin,
this.marginTop = 0, this.marginTop = 0,
this.marginRight = 0, this.marginRight = 0,

@ -70,6 +70,7 @@ dependencies:
# Notification Banner # Notification Banner
dropdown_banner: ^1.4.0 dropdown_banner: ^1.4.0
flutter_xlider: ^3.4.0
# flutter_local_notifications: # flutter_local_notifications:
# charts # charts
@ -126,7 +127,6 @@ dependencies:
# Carousel # Carousel
carousel_pro: ^1.0.0 carousel_pro: ^1.0.0
#local_notifications #local_notifications
flutter_local_notifications: ^1.5.0 flutter_local_notifications: ^1.5.0
@ -171,6 +171,8 @@ flutter:
- assets/images/medical/ - assets/images/medical/
- assets/images/new-design/ - assets/images/new-design/
- assets/images/login/ - assets/images/login/
- assets/images/SmartWatches/
- assets/images/DQ/
- assets/json/ - assets/json/
- assets/sounds/ - assets/sounds/
- assets/images/svg/ - assets/images/svg/

Loading…
Cancel
Save