Merge branch 'sultan' into 'development'

Sultan

See merge request Cloud_Solution/doctor_app_flutter!456
merge-requests/455/merge
Mohammad Aljammal 5 years ago
commit f4f7f0cd92

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -4,8 +4,8 @@ const MAX_SMALL_SCREEN = 660;
const ONLY_NUMBERS = "[0-9]"; const ONLY_NUMBERS = "[0-9]";
const ONLY_LETTERS = "[a-zA-Z &'\"]"; const ONLY_LETTERS = "[a-zA-Z &'\"]";
const ONLY_DATE = "[0-9/]"; const ONLY_DATE = "[0-9/]";
const BASE_URL = 'https://hmgwebservices.com/'; //const BASE_URL = 'https://hmgwebservices.com/';
// const BASE_URL = 'https://uat.hmgwebservices.com/'; const BASE_URL = 'https://uat.hmgwebservices.com/';
const PHARMACY_ITEMS_URL = "Services/Lists.svc/REST/GetPharmcyItems_Region_enh"; const PHARMACY_ITEMS_URL = "Services/Lists.svc/REST/GetPharmcyItems_Region_enh";
const PHARMACY_LIST_URL = "Services/Patients.svc/REST/GetPharmcyList"; const PHARMACY_LIST_URL = "Services/Patients.svc/REST/GetPharmcyList";
const PATIENT_PROGRESS_NOTE_URL = const PATIENT_PROGRESS_NOTE_URL =

@ -128,22 +128,22 @@ const Map<String, Map<String, String>> localizedValues = {
'description': {'en': 'Description', 'ar': 'الوصف'}, 'description': {'en': 'Description', 'ar': 'الوصف'},
'value': {'en': 'Value', 'ar': 'القيمة'}, 'value': {'en': 'Value', 'ar': 'القيمة'},
'range': {'en': 'Range', 'ar': 'النطاق'}, 'range': {'en': 'Range', 'ar': 'النطاق'},
'enterId': {'en': 'Enter ID', 'ar': 'الهوية'}, 'enterId': {'en': 'User ID', 'ar': 'معرف المستخدم'},
'pleaseEnterYourID': { 'pleaseEnterYourID': {
'en': 'Please enter your ID', 'en': 'Please enter your ID',
'ar': 'الرجاء ادخال الهوية' 'ar': 'الرجاء ادخال الهوية'
}, },
'enterPassword': {'en': 'Enter Password', 'ar': 'الرقم السري'}, 'enterPassword': {'en': 'Password', 'ar': 'كلمه السر'},
'pleaseEnterPassword': { 'pleaseEnterPassword': {
'en': 'Please Enter Password', 'en': 'Please Enter Password',
'ar': 'الرجاء ادخال الرقم السري' 'ar': 'الرجاء ادخال الرقم السري'
}, },
'selectYourProject': {'en': 'Select Your Project', 'ar': 'اختر المستشفى'}, 'selectYourProject': {'en': 'Branch', 'ar': 'فرع'},
'pleaseEnterYourProject': { 'pleaseEnterYourProject': {
'en': 'Please Enter Your Project', 'en': 'Please Enter Your Project',
'ar': 'الرجاء ادخال مستشفى' 'ar': 'الرجاء ادخال مستشفى'
}, },
'login': {'en': 'LOGIN', 'ar': 'تسجيل دخول'}, 'login': {'en': 'Login', 'ar': 'تسجيل دخول'},
'drSulaimanAlHabib': {'en': 'Dr Sulaiman Al Habib', 'ar': 'د.سليمان الحبيب'}, 'drSulaimanAlHabib': {'en': 'Dr Sulaiman Al Habib', 'ar': 'د.سليمان الحبيب'},
'welcomeTo': {'en': 'Welcome to', 'ar': 'مرحبا بك'}, 'welcomeTo': {'en': 'Welcome to', 'ar': 'مرحبا بك'},
'welcomeBackTo': {'en': 'Welcome Back to', 'ar': 'مرحبًا بعودتك الى '}, 'welcomeBackTo': {'en': 'Welcome Back to', 'ar': 'مرحبًا بعودتك الى '},
@ -306,6 +306,7 @@ const Map<String, Map<String, String>> localizedValues = {
'en': "No sick leave available, apply Now", 'en': "No sick leave available, apply Now",
'ar': 'لا توجد إجازة مرضية متاحة ، تقدم بطلب الآن' 'ar': 'لا توجد إجازة مرضية متاحة ، تقدم بطلب الآن'
}, },
'no-sickleve': {'en': "No sick leave available", 'ar': 'لا توجد إجازة مرضية'},
'applynow': {'en': "Apply Now", 'ar': 'قدم الآن'}, 'applynow': {'en': "Apply Now", 'ar': 'قدم الآن'},
'add-sickleave': {'en': "ADD SICK LEAVE", 'ar': 'أضف إجازة مرضية'}, 'add-sickleave': {'en': "ADD SICK LEAVE", 'ar': 'أضف إجازة مرضية'},
'add': {'en': "Add", 'ar': 'أضف'}, 'add': {'en': "Add", 'ar': 'أضف'},
@ -572,11 +573,14 @@ const Map<String, Map<String, String>> localizedValues = {
"ar": "الرجاء اختيار احدى الخيارات التالية للتحقق من البيانات" "ar": "الرجاء اختيار احدى الخيارات التالية للتحقق من البيانات"
}, },
"register-user": {"en": "Register", "ar": "تسجيل"}, "register-user": {"en": "Register", "ar": "تسجيل"},
"verify-with-fingerprint": {"en": "Fingerprint", "ar": "بصمة"}, "verify-with-fingerprint": {"en": "Verify through Fingerprint", "ar": "بصمة"},
"verify-with-faceid": {"en": "Face ID", "ar": "معرف الوجه"}, "verify-with-faceid": {"en": "Verify through Face ID", "ar": "معرف الوجه"},
"verify-with-sms": {"en": "SMS", "ar": "الرسائل القصيرة"}, "verify-with-sms": {"en": "Verify through SMS", "ar": "الرسائل القصيرة"},
"verify-with-whatsapp": {"en": "Whatsapp", "ar": " الواتس اب"}, "verify-with-whatsapp": {"en": "Verify through WhatsApp", "ar": " الواتس اب"},
"last-login": {"en": "LAST LOGIN AT:", "ar": "آخر تسجيل دخول"}, "last-login": {
"en": "Last login details:",
"ar": "تفاصيل تسجيل الدخول الأخير:"
},
"last-login-with": {"en": "VERIFICATION TYPE:", "ar": "نوع التحقق:"}, "last-login-with": {"en": "VERIFICATION TYPE:", "ar": "نوع التحقق:"},
"verify-fingerprint": { "verify-fingerprint": {
"en": "en":
@ -826,11 +830,12 @@ const Map<String, Map<String, String>> localizedValues = {
"unReplied": {"en": "UnReplied", "ar": "لم يتم الرد"}, "unReplied": {"en": "UnReplied", "ar": "لم يتم الرد"},
"searchHere": {"en": "Search here", "ar": "إبحث هنا"}, "searchHere": {"en": "Search here", "ar": "إبحث هنا"},
"replied": {"en": "Replied", "ar": " تم الرد"}, "replied": {"en": "Replied", "ar": " تم الرد"},
"typeHereToReply": { "typeHereToReply": {"en": "Type here to reply", "ar": "اكتب هنا للرد"},
"en": "Type here to reply", "remove": {"en": "Remove", "ar": "حذف"},
"ar": "اكتب هنا للرد" "changeOfSchedule": {"en": "Change of Schedule", "ar": "تغيير الجدول"},
},"remove": { "newSchedule": {"en": "New Schedule", "ar": "جدول جديد"},
"en": "Remove", "enter_credentials": {
"ar": "حذف" "en": "Enter the user credentials below",
"ar": "أدخل بيانات اعتماد المستخدم أدناه"
}, },
}; };

@ -2299,6 +2299,62 @@
"search": [ "search": [
"obese-bmi-r" "obese-bmi-r"
] ]
} },
{
"uid": "3375043683ed20c80d3307cef405e3ff",
"css": "verify-face",
"code": 59395,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M181.3 0H36.2A36.3 36.3 0 0 0 0 36.2V253.7A36.2 36.2 0 0 0 72.5 253.7V72.5H181.3A36.2 36.2 0 1 0 181.3 0ZM181.3 927.5H72.5V746.2A36.2 36.2 0 1 0 0 746.2V963.7A36.3 36.3 0 0 0 36.2 1000H181.3A36.2 36.2 0 1 0 181.3 927.5ZM978.8 0H833.7A36.2 36.2 0 0 0 833.7 72.5H942.5V253.8A36.2 36.2 0 0 0 1015 253.8V36.2A36.3 36.3 0 0 0 978.8 0ZM978.8 710A36.3 36.3 0 0 0 942.5 746.2V927.5H833.8A36.2 36.2 0 0 0 833.8 1000H978.8A36.3 36.3 0 0 0 1015 963.8V746.3A36.3 36.3 0 0 0 978.8 710ZM507.5 144.9A350.9 350.9 0 1 0 858.4 495.8 350.9 350.9 0 0 0 507.5 144.9ZM637 378.9A50.3 50.3 0 1 1 586.7 429.2 50.3 50.3 0 0 1 637 378.9ZM378 378.9A50.3 50.3 0 1 1 327.7 429.2 50.3 50.3 0 0 1 378 378.9ZM696.8 617.8A229.7 229.7 0 0 1 318.1 617.8 30.7 30.7 0 1 1 368.8 582.9 168.3 168.3 0 0 0 646.3 582.9 30.7 30.7 0 1 1 696.8 617.8Z",
"width": 1015
},
"search": [
"verify-face"
]
},
{
"uid": "49b31d628bdc0d2127dc489c84c7101b",
"css": "verify-finger",
"code": 59394,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M792.5 147.2H237.8A76.6 76.6 0 0 0 161.3 223.7V778.4A76.6 76.6 0 0 0 237.8 854.9H792.5A76.6 76.6 0 0 0 869.1 778.4V223.7A76.6 76.6 0 0 0 792.5 147.2ZM292.8 283.5C439.9 176.7 595 177.8 739.9 285.4A20.8 20.8 0 0 1 727.6 322.8C704.1 322.8 543.8 152.4 317.1 317.1A20.7 20.7 0 0 1 292.8 283.5ZM486.1 816.8A20.7 20.7 0 0 1 457.2 811.5C428 769.3 361.6 722.1 361.6 633.8A159.5 159.5 0 0 1 515.1 469.3 159.5 159.5 0 0 1 668.7 633.8V655.9A20.7 20.7 0 0 1 627.2 655.9V633.8A118 118 0 0 0 515.2 510.7 118 118 0 0 0 403.3 633.8C403.3 733.7 530.5 786.1 486.2 816.8ZM743.8 709.5A108.7 108.7 0 0 1 538.7 656C538.7 566.5 477.5 596.6 491.1 650.9A20.7 20.7 0 0 1 450.8 661C422.6 548 580.2 502.2 580.2 656A66.9 66.9 0 0 0 632.1 725C728.1 747.7 756.6 589.3 660.8 487.4 528.5 346.3 314.7 455.1 314.7 622.8A167.7 167.7 0 0 0 344.1 732.4 20.7 20.7 0 0 1 310.4 756.5 211.3 211.3 0 0 1 273.3 622.8 245.9 245.9 0 0 1 515.3 380.8C694.1 380.8 807.9 581.4 744.1 709.6ZM757.7 452.8A20.7 20.7 0 0 1 729.4 445.1C688.2 372.8 588.3 333.9 515.3 333.9A296.7 296.7 0 0 0 300.3 446.4 20.7 20.7 0 0 1 265.8 423.4 336.1 336.1 0 0 1 515.3 292.5C668.9 292.5 806 425.3 757.8 452.9ZM181.3 0H36.2A36.3 36.3 0 0 0 0 36.2V253.7A36.2 36.2 0 0 0 72.5 253.7V72.5H181.3A36.2 36.2 0 1 0 181.3 0ZM181.3 927.5H72.5V746.2A36.2 36.2 0 1 0 0 746.2V963.7A36.3 36.3 0 0 0 36.2 1000H181.3A36.2 36.2 0 1 0 181.3 927.5ZM978.8 0H833.7A36.2 36.2 0 0 0 833.7 72.5H942.5V253.8A36.2 36.2 0 0 0 1015 253.8V36.2A36.3 36.3 0 0 0 978.8 0ZM978.8 710A36.3 36.3 0 0 0 942.5 746.2V927.5H833.8A36.2 36.2 0 0 0 833.8 1000H978.8A36.3 36.3 0 0 0 1015 963.8V746.3A36.3 36.3 0 0 0 978.8 710Z",
"width": 1015
},
"search": [
"verify-finger"
]
},
{
"uid": "f57a7cc9bc5e75095215adfc141a8b17",
"css": "verify-whtsapp",
"code": 59393,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M132.6 857.5L196.3 666.3A364.2 364.2 0 1 1 340.1 802.9ZM742 601.7C725.1 569.9 663.1 533.6 663.1 533.6 649 525.7 632.1 524.7 624.1 538.8A321.2 321.2 0 0 1 598.8 566.5 47.1 47.1 0 0 1 531.8 559.8L481 508.9 430.1 458A47.1 47.1 0 0 1 423.5 391.3 321.3 321.3 0 0 1 451.1 366C465.4 358.1 464.5 341.1 456.4 327.1 456.4 327.1 420 265 388.2 248.2A34.8 34.8 0 0 0 347.3 254.3L324.8 276.8C253.6 348 288.6 428.5 359.9 499.8L425.3 564.9 490.5 630C561.7 701.3 642.2 736.4 713.5 665.1L735.9 642.6A34.9 34.9 0 0 0 742 601.7ZM181.3 0H36.2A36.3 36.3 0 0 0 0 36.2V253.7A36.2 36.2 0 0 0 72.5 253.7V72.5H181.3A36.2 36.2 0 1 0 181.3 0ZM181.3 927.5H72.5V746.3A36.2 36.2 0 1 0 0 746.3V963.8A36.3 36.3 0 0 0 36.2 1000H181.3A36.2 36.2 0 1 0 181.3 927.5ZM978.8 0H833.7A36.2 36.2 0 0 0 833.7 72.5H942.5V253.8A36.2 36.2 0 0 0 1015 253.8V36.2A36.3 36.3 0 0 0 978.8 0ZM978.8 710A36.3 36.3 0 0 0 942.5 746.3V927.5H833.8A36.2 36.2 0 0 0 833.8 1000H978.8A36.3 36.3 0 0 0 1015 963.8V746.3A36.3 36.3 0 0 0 978.8 710Z",
"width": 1015
},
"search": [
"verify-whtsapp"
]
},
{
"uid": "89f9e9928bf0aa0ec55c15055f8ce27a",
"css": "verify-sms",
"code": 59392,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M766.3 175.1H252.2A64.5 64.5 0 0 0 187.9 239.4V817.7L316.4 689.2H766.1A64.5 64.5 0 0 0 830.5 624.8V239.4A64.5 64.5 0 0 0 766.3 175.1ZM412.8 464.4H348.5V400H412.8ZM541.3 464.4H477.2V400H541.3ZM669.8 464.4H605.6V400H669.9ZM181.3 0H36.2A36.3 36.3 0 0 0 0 36.2V253.7A36.2 36.2 0 0 0 72.5 253.7V72.5H181.3A36.2 36.2 0 1 0 181.3 0ZM181.3 927.5H72.5V746.2A36.2 36.2 0 1 0 0 746.2V963.7A36.3 36.3 0 0 0 36.2 1000H181.3A36.2 36.2 0 1 0 181.3 927.5ZM978.8 0H833.7A36.2 36.2 0 0 0 833.7 72.5H942.5V253.8A36.2 36.2 0 0 0 1015 253.8V36.2A36.3 36.3 0 0 0 978.8 0ZM978.8 710A36.3 36.3 0 0 0 942.5 746.2V927.5H833.8A36.2 36.2 0 0 0 833.8 1000H978.8A36.3 36.3 0 0 0 1015 963.8V746.3A36.3 36.3 0 0 0 978.8 710Z",
"width": 1015
},
"search": [
"verify-sms"
]
}
] ]
} }

@ -202,14 +202,14 @@ class DoctorApp {
IconData(0xe857, fontFamily: _kFontFam, fontPackage: _kFontPkg); IconData(0xe857, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData external_link = static const IconData external_link =
IconData(0xe858, fontFamily: _kFontFam, fontPackage: _kFontPkg); IconData(0xe858, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_face = // static const IconData verify_face =
IconData(0xe859, fontFamily: _kFontFam, fontPackage: _kFontPkg); // IconData(0xe859, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_sms = // static const IconData verify_sms =
IconData(0xe85a, fontFamily: _kFontFam, fontPackage: _kFontPkg); // IconData(0xe85a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home = static const IconData home =
IconData(0xe85b, fontFamily: _kFontFam, fontPackage: _kFontPkg); IconData(0xe85b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_finger = // static const IconData verify_finger =
IconData(0xe85c, fontFamily: _kFontFam, fontPackage: _kFontPkg); // IconData(0xe85c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData dr_reply_active = static const IconData dr_reply_active =
IconData(0xe85d, fontFamily: _kFontFam, fontPackage: _kFontPkg); IconData(0xe85d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData dr_reply = static const IconData dr_reply =
@ -350,4 +350,12 @@ class DoctorApp {
IconData(0xe8a1, fontFamily: _kFontFam, fontPackage: _kFontPkg); IconData(0xe8a1, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData home_active_1 = static const IconData home_active_1 =
IconData(0xe8a2, fontFamily: _kFontFam, fontPackage: _kFontPkg); IconData(0xe8a2, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_sms =
IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_whtsapp =
IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_finger =
IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData verify_face =
IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
} }

@ -12,6 +12,7 @@ import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
@ -101,6 +102,7 @@ class _LoginsreenState extends State<Loginsreen> {
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
baseViewModel: model, baseViewModel: model,
isShowAppBar: false, isShowAppBar: false,
backgroundColor: HexColor('#F8F8F8'),
body: SafeArea( body: SafeArea(
child: (_isLoading == false) child: (_isLoading == false)
? ListView(children: <Widget>[ ? ListView(children: <Widget>[
@ -116,6 +118,9 @@ class _LoginsreenState extends State<Loginsreen> {
CrossAxisAlignment.start, CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AuthHeader(loginType.knownUser), AuthHeader(loginType.knownUser),
SizedBox(
height: 60,
),
LoginForm( LoginForm(
changeLoadingStata: changeLoadingStata, changeLoadingStata: changeLoadingStata,
), ),

@ -1,5 +1,6 @@
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import '../../lookups/auth_lookup.dart'; import '../../lookups/auth_lookup.dart';
import '../../widgets/auth/auth_header.dart'; import '../../widgets/auth/auth_header.dart';
@ -43,13 +44,18 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
return AppScaffold( return AppScaffold(
isLoading: _isLoading, isLoading: _isLoading,
isShowAppBar: false, isShowAppBar: false,
isHomeIcon: false,
backgroundColor: HexColor('#F8F8F8'),
body: ListView(children: <Widget>[ body: ListView(children: <Widget>[
Container( Container(
margin: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 0), margin: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AuthHeader(loginType.verificationMethods), // AuthHeader(loginType.verificationMethods),
SizedBox(
height: 50,
),
VerificationMethods( VerificationMethods(
password: widget.password, password: widget.password,
changeLoadingStata: changeLoadingStata, changeLoadingStata: changeLoadingStata,

@ -155,9 +155,16 @@ class AddRescheduleLeavScreen extends StatelessWidget {
item.requisitionType == 1 item.requisitionType == 1
? TranslationBase.of(context) ? TranslationBase.of(context)
.offTime .offTime
: TranslationBase.of(context) : item.requisitionType == 2
.holiday + ? TranslationBase.of(context)
' ', .holiday
: item.requisitionType == 3
? TranslationBase.of(
context)
.changeOfSchedule
: TranslationBase.of(
context)
.newSchedule,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
)), )),
SizedBox( SizedBox(

@ -233,7 +233,21 @@ class AddSickLeavScreen extends StatelessWidget {
)); ));
}).toList(), }).toList(),
) )
: SizedBox() : patient.patientStatusType != 43
? Container(
height: 200,
width: SizeConfig.screenWidth,
color: Colors.white,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
AppText(
TranslationBase.of(context).noSickLeave,
color: Colors.red,
)
]),
)
: SizedBox()
// : new Builder(builder: (context) { // : new Builder(builder: (context) {
// return Column( // return Column(
// crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,

@ -661,7 +661,8 @@ class TranslationBase {
String get bmiOverWeight => String get bmiOverWeight =>
localizedValues['bmiOverWeight'][locale.languageCode]; localizedValues['bmiOverWeight'][locale.languageCode];
String get bmiObese => localizedValues['bmiObese'][locale.languageCode]; String get bmiObese => localizedValues['bmiObese'][locale.languageCode];
String get bmiObeseExtreme => localizedValues['bmiObeseExtreme'][locale.languageCode]; String get bmiObeseExtreme =>
localizedValues['bmiObeseExtreme'][locale.languageCode];
String get method => localizedValues['method'][locale.languageCode]; String get method => localizedValues['method'][locale.languageCode];
@ -1204,9 +1205,16 @@ class TranslationBase {
String get cancelled => localizedValues['cancelled'][locale.languageCode]; String get cancelled => localizedValues['cancelled'][locale.languageCode];
String get unReplied => localizedValues['unReplied'][locale.languageCode]; String get unReplied => localizedValues['unReplied'][locale.languageCode];
String get replied => localizedValues['replied'][locale.languageCode]; String get replied => localizedValues['replied'][locale.languageCode];
String get typeHereToReply => localizedValues['typeHereToReply'][locale.languageCode]; String get typeHereToReply =>
localizedValues['typeHereToReply'][locale.languageCode];
String get searchHere => localizedValues['searchHere'][locale.languageCode]; String get searchHere => localizedValues['searchHere'][locale.languageCode];
String get remove => localizedValues['remove'][locale.languageCode]; String get remove => localizedValues['remove'][locale.languageCode];
String get noSickLeave => localizedValues['no-sickleve'][locale.languageCode];
String get changeOfSchedule =>
localizedValues['changeOfSchedule'][locale.languageCode];
String get newSchedule => localizedValues['newSchedule'][locale.languageCode];
String get enterCredentials =>
localizedValues['enter_credentials'][locale.languageCode];
} }
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> { class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -1,3 +1,4 @@
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
@ -23,18 +24,18 @@ class AuthHeader extends StatelessWidget {
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Container( // Container(
margin: SizeConfig.isMobile // margin: SizeConfig.isMobile
? EdgeInsetsDirectional.fromSTEB( // ? EdgeInsetsDirectional.fromSTEB(
0, SizeConfig.realScreenHeight * 0.03, 0, 0) // 0, SizeConfig.realScreenHeight * 0.03, 0, 0)
: EdgeInsetsDirectional.fromSTEB( // : EdgeInsetsDirectional.fromSTEB(
SizeConfig.realScreenWidth * 0.13, 0, 0, 0), // SizeConfig.realScreenWidth * 0.13, 0, 0, 0),
child: buildImageLogo(), // child: buildImageLogo(),
), // ),
SizedBox( SizedBox(
height: 10, height: 30,
), ),
buildTextUnderLogo(context), //buildTextUnderLogo(context),
], ],
), ),
Column( Column(
@ -146,15 +147,15 @@ class AuthHeader extends StatelessWidget {
return Container(); return Container();
} }
return Container( return Container(
margin: SizeConfig.isMobile // margin: SizeConfig.isMobile
? null // ? null
: EdgeInsetsDirectional.fromSTEB( // : EdgeInsetsDirectional.fromSTEB(
SizeConfig.realScreenWidth * 0.13, 0, 0, 0), // SizeConfig.realScreenWidth * 0.13, 0, 0, 0),
child: Text( child: Text(
"Doctor App", "Doctor App",
style: TextStyle( style: TextStyle(
fontSize: fontSize:
SizeConfig.isMobile ? 26 : SizeConfig.realScreenWidth * 0.030, SizeConfig.isMobile ? 16 : SizeConfig.realScreenWidth * 0.030,
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
color: HexColor('#B8382C')), color: HexColor('#B8382C')),
), ),
@ -170,10 +171,10 @@ class AuthHeader extends StatelessWidget {
return Text( return Text(
TranslationBase.of(context).drSulaimanAlHabib, TranslationBase.of(context).drSulaimanAlHabib,
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
fontSize: SizeConfig.isMobile ? 24 : SizeConfig.realScreenWidth * 0.029, fontSize:
color: HexColor('#B8382C'), SizeConfig.isMobile ? 24 : SizeConfig.realScreenWidth * 0.029,
), fontFamily: 'Poppins'),
); );
} }
@ -187,11 +188,11 @@ class AuthHeader extends StatelessWidget {
userType == loginType.verificationMethods) { userType == loginType.verificationMethods) {
return Text(''); return Text('');
} }
return Text( return AppText(
text, text,
style: TextStyle( // style: TextStyle(
fontSize: fontSize: 16,
SizeConfig.isMobile ? 24 : SizeConfig.realScreenWidth * 0.029), fontWeight: FontWeight.w600,
); );
} }
} }

@ -1,6 +1,9 @@
import 'package:doctor_app_flutter/lookups/hospital_lookup.dart'; import 'package:doctor_app_flutter/lookups/hospital_lookup.dart';
import 'package:doctor_app_flutter/screens/auth/verification_methods_screen.dart'; import 'package:doctor_app_flutter/screens/auth/verification_methods_screen.dart';
import 'package:doctor_app_flutter/widgets/shared/app_button.dart';
import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
import 'package:doctor_app_flutter/widgets/shared/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:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
@ -72,119 +75,212 @@ class _LoginFormState extends State<LoginForm> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
buildSizedBox(), buildSizedBox(),
TextFormField( Padding(
keyboardType: TextInputType.number, child: AppText(
textInputAction: TextInputAction.next, TranslationBase.of(context).enterCredentials,
decoration: buildInputDecoration( fontSize: 18,
context, fontWeight: FontWeight.w600,
TranslationBase.of(context).enterId, ),
'assets/images/user_id_icon.png'), padding: EdgeInsets.only(top: 10, bottom: 10)),
validator: (value) { Container(
if (value.isEmpty) { decoration: BoxDecoration(
return TranslationBase.of(context).pleaseEnterYourID; borderRadius: BorderRadius.all(Radius.circular(6.0)),
} border: Border.all(
return null; width: 1.0,
}, color: HexColor("#CCCCCC"),
onSaved: (value) { ),
userInfo.userID = value.trim(); color: Colors.white),
}, child: Column(
onChanged: (value) { crossAxisAlignment: CrossAxisAlignment.start,
userInfo.userID = value.trim(); children: [
}, Padding(
onFieldSubmitted: (_) { padding: EdgeInsets.only(left: 10, top: 10),
focusPass.nextFocus(); child: AppText(
}, TranslationBase.of(context).enterId,
onEditingComplete: () {}, fontWeight: FontWeight.w600,
autofocus: false, )),
), AppTextFormField(
labelText: '',
borderColor: Colors.white,
// keyboardType: TextInputType.number,
textInputAction: TextInputAction.next,
// decoration: buildInputDecoration(
// context,
// TranslationBase.of(context).enterId,
// 'assets/images/user_id_icon.png'),
validator: (value) {
if (value != null && value.isEmpty) {
return TranslationBase.of(context)
.pleaseEnterYourID;
}
return null;
},
onSaved: (value) {
if (value != null) userInfo.userID = value.trim();
},
onChanged: (value) {
if (value != null) userInfo.userID = value.trim();
},
onFieldSubmitted: (_) {
focusPass.nextFocus();
},
// onEditingComplete: () {},
// autofocus: false,
)
])),
buildSizedBox(), buildSizedBox(),
TextFormField( Container(
focusNode: focusPass, decoration: BoxDecoration(
obscureText: true, borderRadius: BorderRadius.all(Radius.circular(6.0)),
textInputAction: TextInputAction.next, border: Border.all(
decoration: buildInputDecoration( width: 1.0,
context, color: HexColor("#CCCCCC"),
TranslationBase.of(context).enterPassword, ),
'assets/images/password_icon.png'), color: Colors.white),
validator: (value) { child: Column(
if (value.isEmpty) { crossAxisAlignment: CrossAxisAlignment.start,
return TranslationBase.of(context).pleaseEnterPassword; children: [
} Padding(
return null; padding: EdgeInsets.only(left: 10, top: 10),
}, child: AppText(
onSaved: (value) { TranslationBase.of(context).enterPassword,
userInfo.password = value; fontWeight: FontWeight.w600,
}, )),
onFieldSubmitted: (_) { AppTextFormField(
focusPass.nextFocus(); focusNode: focusPass,
helpers.showCupertinoPicker( obscureText: true,
context, projectsList, 'facilityName', onSelectProject); borderColor: Colors.white,
}, textInputAction: TextInputAction.next,
onTap: () { // decoration: buildInputDecoration(
this.getProjects(userInfo.userID); // context,
}, // TranslationBase.of(context).enterPassword,
), // 'assets/images/password_icon.png'),
validator: (value) {
if (value != null && value.isEmpty) {
return TranslationBase.of(context)
.pleaseEnterPassword;
}
return null;
},
onSaved: (value) {
userInfo.password = value;
},
onFieldSubmitted: (_) {
focusPass.nextFocus();
helpers.showCupertinoPicker(context, projectsList,
'facilityName', onSelectProject);
},
onTap: () {
this.getProjects(userInfo.userID);
},
)
])),
buildSizedBox(), buildSizedBox(),
projectsList.length > 0 projectsList.length > 0
? TextFormField( ? Container(
focusNode: focusProject, decoration: BoxDecoration(
controller: projectIdController, borderRadius: BorderRadius.all(Radius.circular(6.0)),
onTap: () { border: Border.all(
helpers.showCupertinoPicker(context, projectsList, width: 1.0,
'facilityName', onSelectProject); color: HexColor("#CCCCCC"),
}, ),
showCursor: false, color: Colors.white),
//readOnly: true, child: Column(
decoration: buildInputDecoration( crossAxisAlignment: CrossAxisAlignment.start,
context, children: [
TranslationBase.of(context).selectYourProject, Padding(
'assets/images/password_icon.png'), padding: EdgeInsets.only(left: 10, top: 10),
validator: (value) { child: AppText(
if (value.isEmpty) { TranslationBase.of(context).selectYourProject,
return TranslationBase.of(context) fontWeight: FontWeight.w600,
.pleaseEnterYourProject; )),
} AppTextFormField(
return null; focusNode: focusProject,
}) controller: projectIdController,
: TextFormField( borderColor: Colors.white,
readOnly: true, onTap: () {
decoration: buildInputDecoration( helpers.showCupertinoPicker(
context, context,
TranslationBase.of(context).pleaseEnterYourProject, projectsList,
'assets/images/password_icon.png')), 'facilityName',
onSelectProject);
},
// showCursor: false,
// //readOnly: true,
// decoration: buildInputDecoration(
// context,
// TranslationBase.of(context).selectYourProject,
// 'assets/images/password_icon.png'),
validator: (value) {
if (value != null && value.isEmpty) {
return TranslationBase.of(context)
.pleaseEnterYourProject;
}
return null;
})
]))
: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(6.0)),
border: Border.all(
width: 1.0,
color: HexColor("#CCCCCC"),
),
color: Colors.white),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(left: 10, top: 10),
child: AppText(
TranslationBase.of(context).selectYourProject,
fontWeight: FontWeight.w600,
)),
AppTextFormField(
readOnly: true, borderColor: Colors.white
// decoration: buildInputDecoration(
// context,
// TranslationBase.of(context)
// .pleaseEnterYourProject,
// 'assets/images/password_icon.png')
)
])),
buildSizedBox(), buildSizedBox(),
Row( Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[
RaisedButton( Expanded(
onPressed: () { child: Button(
title: TranslationBase.of(context).login,
color: Colors.red[700],
onTap: () {
login(context, authProv, widget.changeLoadingStata); login(context, authProv, widget.changeLoadingStata);
}, },
textColor: Colors.white, )),
elevation: 0.0,
padding: const EdgeInsets.all(0.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
side: BorderSide(width: 0.5, color: HexColor('#CCCCCC'))),
child: Container(
padding: const EdgeInsets.all(10.0),
height: 50,
width: SizeConfig.realScreenWidth * 0.35,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(TranslationBase.of(context).login,
style: TextStyle(
fontSize: SizeConfig.isMobilePortrait
? 2.3 * SizeConfig.textMultiplier
: 2.3 * SizeConfig.textMultiplier)),
Image.asset('assets/images/login_btn_arrow_icon.png')
],
),
),
)
], ],
), )
// Row(
// mainAxisAlignment: MainAxisAlignment.end,
// children: <Widget>[
// RaisedButton(
// onPressed: () {
// login(context, authProv, widget.changeLoadingStata);
// },
// textColor: Colors.white,
// elevation: 0.0,
// padding: const EdgeInsets.all(0.0),
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(10),
// side: BorderSide(width: 0.5, color: HexColor('#CCCCCC'))),
// child: Container(
// padding: const EdgeInsets.all(10.0),
// height: 50,
// width: SizeConfig.realScreenWidth * 0.35,
// child: ),
// )
// ],
// ),
], ],
), ),
), ),
@ -200,23 +296,24 @@ class _LoginFormState extends State<LoginForm> {
*/ */
InputDecoration buildInputDecoration(BuildContext context, hint, asset) { InputDecoration buildInputDecoration(BuildContext context, hint, asset) {
return InputDecoration( return InputDecoration(
prefixIcon: Image.asset(asset), // prefixIcon: Image.asset(asset),
hintText: hint, hintText: hint,
hintStyle: TextStyle(fontSize: 2 * SizeConfig.textMultiplier), hintStyle: TextStyle(fontSize: 2 * SizeConfig.textMultiplier),
fillColor: Colors.white,
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(20)), //borderRadius: BorderRadius.all(Radius.circular(20)),
borderSide: BorderSide(color: HexColor('#CCCCCC')), borderSide: BorderSide(color: HexColor('#CCCCCC')),
), ),
focusedBorder: OutlineInputBorder( focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)), // borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).primaryColor), borderSide: BorderSide(color: Theme.of(context).primaryColor),
), ),
errorBorder: OutlineInputBorder( errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)), // borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).errorColor), borderSide: BorderSide(color: Theme.of(context).errorColor),
), ),
focusedErrorBorder: OutlineInputBorder( focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)), // borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).errorColor), borderSide: BorderSide(color: Theme.of(context).errorColor),
), ),
); );

@ -114,13 +114,13 @@ class _VerificationMethodsState extends State<VerificationMethods> {
} else { } else {
return SingleChildScrollView( return SingleChildScrollView(
child: Container( child: Container(
height: SizeConfig.realScreenHeight, height: SizeConfig.realScreenHeight * .9,
width: SizeConfig.realScreenWidth, width: SizeConfig.realScreenWidth,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[ children: <Widget>[
Container( Container(
// height: SizeConfig.realScreenHeight * 0.6,
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
user != null && isMoreOption == false user != null && isMoreOption == false
@ -130,13 +130,13 @@ class _VerificationMethodsState extends State<VerificationMethods> {
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment.start, CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
AppText(TranslationBase.of(context)
.welcomeBack),
AppText( AppText(
TranslationBase.of(context) Helpers.capitalize(user.doctorName),
.welcomeBack +
' ' +
user.doctorName,
fontSize: fontSize:
SizeConfig.textMultiplier * 3.5, SizeConfig.textMultiplier * 3.5,
fontWeight: FontWeight.bold,
), ),
SizedBox( SizedBox(
height: 20, height: 20,
@ -145,55 +145,86 @@ class _VerificationMethodsState extends State<VerificationMethods> {
TranslationBase.of(context).accountInfo, TranslationBase.of(context).accountInfo,
fontSize: fontSize:
SizeConfig.textMultiplier * 2.5, SizeConfig.textMultiplier * 2.5,
fontWeight: FontWeight.w600,
), ),
SizedBox( SizedBox(
height: 20, height: 20,
), ),
Card( Card(
color: Colors.grey[300], color: Colors.white,
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Flexible( Flexible(
flex: 4,
child: ListTile( child: ListTile(
title: Text( title: Text(
TranslationBase.of(context) TranslationBase.of(
.lastLoginAt, context)
textAlign: TextAlign.center, .lastLoginAt,
overflow: overflow: TextOverflow
TextOverflow.ellipsis, .ellipsis,
), style: TextStyle(
subtitle: Text( fontFamily: 'Poppins',
user.editedOn != null fontWeight:
? formatDate(Helpers FontWeight.w600,
.convertStringToDate( ),
user.editedOn)) ),
: user.createdOn != null subtitle: AppText(
? formatDate(Helpers getType(
.convertStringToDate(user user.logInTypeID,
.createdOn)) context),
: '--', )
overflow: // Text(
TextOverflow.ellipsis, // user.editedOn != null
textAlign: // ? formatDate(Helpers
TextAlign.center), // .convertStringToDate(
)), // user.editedOn))
// : user.createdOn != null
// ? formatDate(Helpers
// .convertStringToDate(user
// .createdOn))
// : '--',
// overflow:
// TextOverflow.ellipsis,
// style: TextStyle(
// fontFamily: 'Poppins'),
// textAlign:
// TextAlign.center),
)),
Flexible( Flexible(
flex: 2,
child: ListTile( child: ListTile(
title: Text( title: AppText(
TranslationBase.of(context) user.editedOn != null
.lastLoginWith, ? getDate(Helpers
overflow: .convertStringToDate(
TextOverflow.ellipsis, user
textAlign: .editedOn))
TextAlign.center), : user.createdOn !=
subtitle: Text( null
getType(user.logInTypeID, ? getDate(Helpers
context), .convertStringToDate(
overflow: user.createdOn))
TextOverflow.ellipsis, : '--',
textAlign: textAlign:
TextAlign.center), TextAlign.right,
)) ),
subtitle: AppText(
user.editedOn != null
? getTime(Helpers
.convertStringToDate(
user
.editedOn))
: user.createdOn !=
null
? getTime(Helpers
.convertStringToDate(
user.createdOn))
: '--',
textAlign:
TextAlign.right,
),
))
], ],
)), )),
], ],
@ -232,6 +263,11 @@ class _VerificationMethodsState extends State<VerificationMethods> {
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.center, MainAxisAlignment.center,
children: <Widget>[ children: <Widget>[
// Expanded(
// child:
// getButton(3, authProv)),
// Expanded(
// child: getButton(4, authProv))
Expanded( Expanded(
child: InkWell( child: InkWell(
onTap: () => { onTap: () => {
@ -243,7 +279,17 @@ class _VerificationMethodsState extends State<VerificationMethods> {
authProv))), authProv))),
Expanded( Expanded(
child: getButton(5, authProv)) child: getButton(5, authProv))
]) ]),
// Row(
// mainAxisAlignment:
// MainAxisAlignment.center,
// children: <Widget>[
// Expanded(
// child: getButton(1, authProv)),
// Expanded(
// child: getButton(2, authProv))
// ],
// )
]) ])
: Column( : Column(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
@ -290,6 +336,7 @@ class _VerificationMethodsState extends State<VerificationMethods> {
child: Button( child: Button(
title: TranslationBase.of(context) title: TranslationBase.of(context)
.useAnotherAccount, .useAnotherAccount,
color: Colors.red[700],
onTap: () { onTap: () {
Navigator.of(context).pushNamed(LOGIN); Navigator.of(context).pushNamed(LOGIN);
}, },
@ -424,25 +471,33 @@ class _VerificationMethodsState extends State<VerificationMethods> {
case 2: case 2:
return InkWell( return InkWell(
onTap: () => {authenticateUser(2, true, authProv)}, onTap: () => {authenticateUser(2, true, authProv)},
child: RoundedContainer( child: Container(
borderColor: Colors.grey, margin: EdgeInsets.all(10),
showBorder: true, decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.white,
),
child: Padding( child: Padding(
padding: EdgeInsets.fromLTRB(30, 15, 30, 15), padding: EdgeInsets.fromLTRB(20, 15, 20, 15),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Image.asset( Row(
'assets/images/login/104.png', children: [
height: SizeConfig.imageSizeMultiplier * 13, Image.asset(
width: SizeConfig.imageSizeMultiplier * 16, 'assets/images/verify-whtsapp.png',
height: SizeConfig.imageSizeMultiplier * 13,
width: SizeConfig.imageSizeMultiplier * 16,
),
],
), ),
SizedBox( SizedBox(
height: 20, height: 20,
), ),
AppText( AppText(
TranslationBase.of(context).verifyWhatsApp, TranslationBase.of(context).verifyWhatsApp,
fontSize: SizeConfig.textMultiplier * 2, fontSize: SizeConfig.textMultiplier * 2.2,
textAlign: TextAlign.center,
) )
], ],
), ),
@ -451,16 +506,20 @@ class _VerificationMethodsState extends State<VerificationMethods> {
case 1: case 1:
return InkWell( return InkWell(
onTap: () => {authenticateUser(1, true, authProv)}, onTap: () => {authenticateUser(1, true, authProv)},
child: RoundedContainer( child: Container(
borderColor: Colors.grey, margin: EdgeInsets.all(10),
showBorder: true, decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.white,
),
child: Padding( child: Padding(
padding: EdgeInsets.fromLTRB(5, 15, 5, 15), padding: EdgeInsets.fromLTRB(20, 15, 20, 15),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/login/103.png', 'assets/images/verify-sms.png',
height: SizeConfig.imageSizeMultiplier * 13, height: SizeConfig.imageSizeMultiplier * 13,
width: SizeConfig.imageSizeMultiplier * 16, width: SizeConfig.imageSizeMultiplier * 16,
), ),
@ -475,8 +534,7 @@ class _VerificationMethodsState extends State<VerificationMethods> {
TranslationBase.of(context).verifySMS, TranslationBase.of(context).verifySMS,
fontSize: projectsProvider.isArabic fontSize: projectsProvider.isArabic
? SizeConfig.textMultiplier * 1.8 ? SizeConfig.textMultiplier * 1.8
: SizeConfig.textMultiplier * 2, : SizeConfig.textMultiplier * 2.2,
textAlign: TextAlign.center,
) )
], ],
), ),
@ -488,19 +546,20 @@ class _VerificationMethodsState extends State<VerificationMethods> {
if (checkIfBiometricAvailable(BiometricType.fingerprint)) if (checkIfBiometricAvailable(BiometricType.fingerprint))
{authenticateUser(3, true, authProv)} {authenticateUser(3, true, authProv)}
}, },
child: RoundedContainer( child: Container(
backgroundColor: margin: EdgeInsets.all(10),
checkIfBiometricAvailable(BiometricType.fingerprint) decoration: BoxDecoration(
? Colors.white borderRadius: BorderRadius.circular(10),
: Colors.white.withOpacity(.7), color: Colors.white,
borderColor: Colors.grey, ),
showBorder: true,
child: Padding( child: Padding(
padding: EdgeInsets.fromLTRB(5, 15, 5, 15), padding: EdgeInsets.fromLTRB(20, 15, 20, 15),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/login/102.png', 'assets/images/verification_fingerprint_icon.png',
height: SizeConfig.imageSizeMultiplier * 13, height: SizeConfig.imageSizeMultiplier * 13,
width: SizeConfig.imageSizeMultiplier * 16, width: SizeConfig.imageSizeMultiplier * 16,
), ),
@ -509,8 +568,7 @@ class _VerificationMethodsState extends State<VerificationMethods> {
), ),
AppText( AppText(
TranslationBase.of(context).verifyFingerprint, TranslationBase.of(context).verifyFingerprint,
fontSize: SizeConfig.textMultiplier * 2, fontSize: SizeConfig.textMultiplier * 2.2,
textAlign: TextAlign.center,
) )
], ],
), ),
@ -523,33 +581,40 @@ class _VerificationMethodsState extends State<VerificationMethods> {
authenticateUser(4, true, authProv); authenticateUser(4, true, authProv);
} }
}, },
child: RoundedContainer( child:
backgroundColor: checkIfBiometricAvailable(BiometricType.face) // RoundedContainer(
? Colors.white // backgroundColor: checkIfBiometricAvailable(BiometricType.face)
: Colors.white.withOpacity(.7), // ? Colors.white
borderColor: Colors.grey, // : Colors.white.withOpacity(.7),
showBorder: true, // borderColor: Colors.grey,
child: Padding( // showBorder: false,
padding: EdgeInsets.fromLTRB(5, 15, 5, 15), Container(
child: Column( decoration: BoxDecoration(
mainAxisAlignment: MainAxisAlignment.center, borderRadius: BorderRadius.circular(10),
children: <Widget>[ color: Colors.white,
Image.asset( ),
'assets/images/login/101.png', margin: EdgeInsets.all(10),
height: SizeConfig.imageSizeMultiplier * 13, child: Padding(
width: SizeConfig.imageSizeMultiplier * 16, padding: EdgeInsets.fromLTRB(20, 15, 20, 15),
), child: Column(
SizedBox( mainAxisAlignment: MainAxisAlignment.center,
height: 20, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Image.asset(
'assets/images/verification_faceid_icon.png',
height: SizeConfig.imageSizeMultiplier * 13,
width: SizeConfig.imageSizeMultiplier * 16,
),
SizedBox(
height: 20,
),
AppText(
TranslationBase.of(context).verifyFaceID,
fontSize: SizeConfig.textMultiplier * 2.2,
)
],
), ),
AppText( )));
TranslationBase.of(context).verifyFaceID,
fontSize: SizeConfig.textMultiplier * 2,
textAlign: TextAlign.center,
)
],
),
)));
break; break;
default: default:
@ -559,13 +624,19 @@ class _VerificationMethodsState extends State<VerificationMethods> {
isMoreOption = true; isMoreOption = true;
}) })
}, },
child: RoundedContainer( child: Container(
backgroundColor: Colors.white, // backgroundColor: Colors.white,
borderColor: Colors.grey, // borderColor: Colors.grey,
showBorder: true, // showBorder: false,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.white,
),
child: Padding( child: Padding(
padding: EdgeInsets.fromLTRB(5, 0, 5, 5), padding: EdgeInsets.fromLTRB(20, 15, 20, 15),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset(
'assets/images/login/more_icon.png', 'assets/images/login/more_icon.png',
@ -574,15 +645,15 @@ class _VerificationMethodsState extends State<VerificationMethods> {
), ),
projectsProvider.isArabic projectsProvider.isArabic
? SizedBox( ? SizedBox(
height: 15, height: 20,
) )
: SizedBox( : SizedBox(
height: 10, height: 10,
), ),
AppText( AppText(
TranslationBase.of(context).moreVerification, TranslationBase.of(context).moreVerification,
fontSize: SizeConfig.textMultiplier * 2, fontSize: SizeConfig.textMultiplier * 2.2,
textAlign: TextAlign.center, // textAlign: TextAlign.center,
) )
], ],
), ),
@ -800,4 +871,16 @@ class _VerificationMethodsState extends State<VerificationMethods> {
helpers.showErrorToast(err); helpers.showErrorToast(err);
}); });
} }
getDate(DateTime date) {
final DateFormat formatter = DateFormat('dd MMM yyyy');
return formatter.format(date);
}
getTime(DateTime date) {
final DateFormat formatter = DateFormat('HH:mm a');
return formatter.format(date);
}
} }

@ -2,6 +2,7 @@ import 'dart:async';
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -59,6 +60,7 @@ class SMSOTP {
builder: (context) { builder: (context) {
projectProvider = Provider.of(context); projectProvider = Provider.of(context);
return AlertDialog( return AlertDialog(
contentPadding: EdgeInsets.fromLTRB(24.0, 20.0, 0.0, 24.0),
title: Row( title: Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[
@ -72,8 +74,8 @@ class SMSOTP {
) )
], ],
), ),
shape: RoundedRectangleBorder( // shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0))), // borderRadius: BorderRadius.all(Radius.circular(10.0))),
content: StatefulBuilder(builder: (context, setState) { content: StatefulBuilder(builder: (context, setState) {
if (displayTime == '') { if (displayTime == '') {
startTimer(setState); startTimer(setState);
@ -85,11 +87,23 @@ class SMSOTP {
child: Center( child: Center(
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
type == 1 type == 1
? Image.asset('assets/images/login/103.png') ? Padding(
: Image.asset('assets/images/login/104.png'), child: Icon(
DoctorApp.verify_sms_1,
size: 40,
),
padding: EdgeInsets.only(bottom: 20),
)
: Padding(
child: Icon(
DoctorApp.verify_whtsapp,
size: 40,
),
padding: EdgeInsets.only(bottom: 20),
),
Padding( Padding(
padding: EdgeInsets.only(top: 5), padding: EdgeInsets.only(top: 5),
child: AppText( child: AppText(
@ -98,7 +112,8 @@ class SMSOTP {
mobileNo mobileNo
.toString() .toString()
.substring(mobileNo.toString().length - 3), .substring(mobileNo.toString().length - 3),
textAlign: TextAlign.center, textAlign: TextAlign.start,
fontWeight: FontWeight.w600,
)), )),
Form( Form(
key: verifyAccountForm, key: verifyAccountForm,
@ -220,13 +235,18 @@ class SMSOTP {
), ),
Padding( Padding(
padding: EdgeInsets.only(top: 10), padding: EdgeInsets.only(top: 10),
child: AppText( child: Row(children: [
TranslationBase.of(context).validationMessage + AppText(
' ' + TranslationBase.of(context).validationMessage + ' ',
displayTime, fontWeight: FontWeight.w600,
color: Colors.red, ),
textAlign: TextAlign.center, AppText(
)) displayTime,
color: Colors.red,
textAlign: TextAlign.center,
fontWeight: FontWeight.bold,
)
]))
], ],
))), ))),
); );
@ -248,15 +268,15 @@ class SMSOTP {
// contentPadding: EdgeInsets.only(top: 20, bottom: 20), // contentPadding: EdgeInsets.only(top: 20, bottom: 20),
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10)), borderRadius: BorderRadius.all(Radius.circular(10)),
borderSide: BorderSide(color: Colors.black), borderSide: BorderSide(color: Colors.grey[100]),
), ),
focusedBorder: OutlineInputBorder( focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)), borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).primaryColor), borderSide: BorderSide(color: Colors.grey[100]),
), ),
errorBorder: OutlineInputBorder( errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)), borderRadius: BorderRadius.all(Radius.circular(10.0)),
borderSide: BorderSide(color: Theme.of(context).errorColor), borderSide: BorderSide(color: Colors.grey[100]),
), ),
focusedErrorBorder: OutlineInputBorder( focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)), borderRadius: BorderRadius.all(Radius.circular(10.0)),

@ -20,6 +20,7 @@ class AppScaffold extends StatelessWidget {
final Widget bottomSheet; final Widget bottomSheet;
final Color backgroundColor; final Color backgroundColor;
final Widget appBar; final Widget appBar;
final bool isHomeIcon;
AppScaffold( AppScaffold(
{this.appBarTitle = '', {this.appBarTitle = '',
this.body, this.body,
@ -28,6 +29,7 @@ class AppScaffold extends StatelessWidget {
this.baseViewModel, this.baseViewModel,
this.bottomSheet, this.bottomSheet,
this.backgroundColor, this.backgroundColor,
this.isHomeIcon = true,
this.appBar}); this.appBar});
@override @override
@ -60,12 +62,14 @@ class AppScaffold extends StatelessWidget {
}), }),
centerTitle: true, centerTitle: true,
actions: <Widget>[ actions: <Widget>[
IconButton( isHomeIcon
icon: Icon(DoctorApp.home_icon_active), ? IconButton(
color: Colors.black, //Colors.black, icon: Icon(DoctorApp.home_icon_active),
onPressed: () => Navigator.pushNamedAndRemoveUntil( color: Colors.black, //Colors.black,
context, HOME, (r) => false), onPressed: () => Navigator.pushNamedAndRemoveUntil(
), context, HOME, (r) => false),
)
: SizedBox()
], ],
) )
: null, : null,

Loading…
Cancel
Save