diff --git a/assets/fonts/DoctorApp.ttf b/assets/fonts/DoctorApp.ttf
new file mode 100644
index 0000000..4ef2028
Binary files /dev/null and b/assets/fonts/DoctorApp.ttf differ
diff --git a/assets/fonts/Poppins/Poppins-Bold.ttf b/assets/fonts/Poppins/Poppins-Bold.ttf
new file mode 100644
index 0000000..b94d47f
Binary files /dev/null and b/assets/fonts/Poppins/Poppins-Bold.ttf differ
diff --git a/assets/fonts/Poppins/Poppins-Medium.ttf b/assets/fonts/Poppins/Poppins-Medium.ttf
new file mode 100644
index 0000000..e90e87e
Binary files /dev/null and b/assets/fonts/Poppins/Poppins-Medium.ttf differ
diff --git a/assets/fonts/Poppins/Poppins-Regular.ttf b/assets/fonts/Poppins/Poppins-Regular.ttf
new file mode 100644
index 0000000..be06e7f
Binary files /dev/null and b/assets/fonts/Poppins/Poppins-Regular.ttf differ
diff --git a/assets/fonts/Poppins/Poppins-SemiBold.ttf b/assets/fonts/Poppins/Poppins-SemiBold.ttf
new file mode 100644
index 0000000..8987d80
Binary files /dev/null and b/assets/fonts/Poppins/Poppins-SemiBold.ttf differ
diff --git a/assets/fonts/Work_Sans/OFL.txt b/assets/fonts/Work_Sans/OFL.txt
new file mode 100644
index 0000000..5c0354e
--- /dev/null
+++ b/assets/fonts/Work_Sans/OFL.txt
@@ -0,0 +1,93 @@
+Copyright (c) 2014-2015 Wei Huang (wweeiihhuuaanngg@gmail.com)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/assets/fonts/Work_Sans/WorkSans-Black.ttf b/assets/fonts/Work_Sans/WorkSans-Black.ttf
new file mode 100644
index 0000000..fb74420
Binary files /dev/null and b/assets/fonts/Work_Sans/WorkSans-Black.ttf differ
diff --git a/assets/fonts/Work_Sans/WorkSans-Bold.ttf b/assets/fonts/Work_Sans/WorkSans-Bold.ttf
new file mode 100644
index 0000000..7caa359
Binary files /dev/null and b/assets/fonts/Work_Sans/WorkSans-Bold.ttf differ
diff --git a/assets/fonts/Work_Sans/WorkSans-ExtraBold.ttf b/assets/fonts/Work_Sans/WorkSans-ExtraBold.ttf
new file mode 100644
index 0000000..fd4b912
Binary files /dev/null and b/assets/fonts/Work_Sans/WorkSans-ExtraBold.ttf differ
diff --git a/assets/fonts/Work_Sans/WorkSans-ExtraLight.ttf b/assets/fonts/Work_Sans/WorkSans-ExtraLight.ttf
new file mode 100644
index 0000000..b97cf8c
Binary files /dev/null and b/assets/fonts/Work_Sans/WorkSans-ExtraLight.ttf differ
diff --git a/assets/fonts/Work_Sans/WorkSans-Light.ttf b/assets/fonts/Work_Sans/WorkSans-Light.ttf
new file mode 100644
index 0000000..3e981fb
Binary files /dev/null and b/assets/fonts/Work_Sans/WorkSans-Light.ttf differ
diff --git a/assets/fonts/Work_Sans/WorkSans-Medium.ttf b/assets/fonts/Work_Sans/WorkSans-Medium.ttf
new file mode 100644
index 0000000..7a2645b
Binary files /dev/null and b/assets/fonts/Work_Sans/WorkSans-Medium.ttf differ
diff --git a/assets/fonts/Work_Sans/WorkSans-Regular.ttf b/assets/fonts/Work_Sans/WorkSans-Regular.ttf
new file mode 100644
index 0000000..0ac4520
Binary files /dev/null and b/assets/fonts/Work_Sans/WorkSans-Regular.ttf differ
diff --git a/assets/fonts/Work_Sans/WorkSans-SemiBold.ttf b/assets/fonts/Work_Sans/WorkSans-SemiBold.ttf
new file mode 100644
index 0000000..589a5f5
Binary files /dev/null and b/assets/fonts/Work_Sans/WorkSans-SemiBold.ttf differ
diff --git a/assets/fonts/Work_Sans/WorkSans-Thin.ttf b/assets/fonts/Work_Sans/WorkSans-Thin.ttf
new file mode 100644
index 0000000..011fcd3
Binary files /dev/null and b/assets/fonts/Work_Sans/WorkSans-Thin.ttf differ
diff --git a/assets/images/login/more_icon.png b/assets/images/login/more_icon.png
new file mode 100644
index 0000000..b696d34
Binary files /dev/null and b/assets/images/login/more_icon.png differ
diff --git a/assets/images/login/verify_face.svg b/assets/images/login/verify_face.svg
new file mode 100644
index 0000000..e50d1a6
--- /dev/null
+++ b/assets/images/login/verify_face.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/images/login/verify_sms.svg b/assets/images/login/verify_sms.svg
new file mode 100644
index 0000000..ae5fa9f
--- /dev/null
+++ b/assets/images/login/verify_sms.svg
@@ -0,0 +1,11 @@
+
diff --git a/assets/images/login/verify_thumb.svg b/assets/images/login/verify_thumb.svg
new file mode 100644
index 0000000..e626baf
--- /dev/null
+++ b/assets/images/login/verify_thumb.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/images/login/verify_whatsapp.svg b/assets/images/login/verify_whatsapp.svg
new file mode 100644
index 0000000..09ac85c
--- /dev/null
+++ b/assets/images/login/verify_whatsapp.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/images/patient/admission_req.png b/assets/images/patient/admission_req.png
new file mode 100644
index 0000000..b233508
Binary files /dev/null and b/assets/images/patient/admission_req.png differ
diff --git a/assets/images/patient/ic_ref_arrow_left.png b/assets/images/patient/ic_ref_arrow_left.png
new file mode 100644
index 0000000..09e05ab
Binary files /dev/null and b/assets/images/patient/ic_ref_arrow_left.png differ
diff --git a/assets/images/patient/ic_ref_arrow_up.png b/assets/images/patient/ic_ref_arrow_up.png
new file mode 100644
index 0000000..8294cfe
Binary files /dev/null and b/assets/images/patient/ic_ref_arrow_up.png differ
diff --git a/assets/images/patient/refer_patient.png b/assets/images/patient/refer_patient.png
new file mode 100644
index 0000000..ac3aea6
Binary files /dev/null and b/assets/images/patient/refer_patient.png differ
diff --git a/assets/images/patient/ucaf.png b/assets/images/patient/ucaf.png
new file mode 100644
index 0000000..f729359
Binary files /dev/null and b/assets/images/patient/ucaf.png differ
diff --git a/assets/images/patient/vital_signs/Obese_BMI-r.png b/assets/images/patient/vital_signs/Obese_BMI-r.png
new file mode 100644
index 0000000..50b3282
Binary files /dev/null and b/assets/images/patient/vital_signs/Obese_BMI-r.png differ
diff --git a/assets/images/patient/vital_signs/Obese_BMI.png b/assets/images/patient/vital_signs/Obese_BMI.png
new file mode 100644
index 0000000..540d4bc
Binary files /dev/null and b/assets/images/patient/vital_signs/Obese_BMI.png differ
diff --git a/assets/images/patient/vital_signs/blood_pressure.png b/assets/images/patient/vital_signs/blood_pressure.png
new file mode 100644
index 0000000..9670187
Binary files /dev/null and b/assets/images/patient/vital_signs/blood_pressure.png differ
diff --git a/assets/images/patient/vital_signs/health_BMI-r.png b/assets/images/patient/vital_signs/health_BMI-r.png
new file mode 100644
index 0000000..96189d3
Binary files /dev/null and b/assets/images/patient/vital_signs/health_BMI-r.png differ
diff --git a/assets/images/patient/vital_signs/health_BMI.png b/assets/images/patient/vital_signs/health_BMI.png
new file mode 100644
index 0000000..c87a042
Binary files /dev/null and b/assets/images/patient/vital_signs/health_BMI.png differ
diff --git a/assets/images/patient/vital_signs/heart_rate.png b/assets/images/patient/vital_signs/heart_rate.png
new file mode 100644
index 0000000..7601719
Binary files /dev/null and b/assets/images/patient/vital_signs/heart_rate.png differ
diff --git a/assets/images/patient/vital_signs/height.png b/assets/images/patient/vital_signs/height.png
new file mode 100644
index 0000000..e176c45
Binary files /dev/null and b/assets/images/patient/vital_signs/height.png differ
diff --git a/assets/images/patient/vital_signs/ovrweight_BMI-r.png b/assets/images/patient/vital_signs/ovrweight_BMI-r.png
new file mode 100644
index 0000000..ff24fc6
Binary files /dev/null and b/assets/images/patient/vital_signs/ovrweight_BMI-r.png differ
diff --git a/assets/images/patient/vital_signs/ovrweight_BMI.png b/assets/images/patient/vital_signs/ovrweight_BMI.png
new file mode 100644
index 0000000..da8e67b
Binary files /dev/null and b/assets/images/patient/vital_signs/ovrweight_BMI.png differ
diff --git a/assets/images/patient/vital_signs/oxg.png b/assets/images/patient/vital_signs/oxg.png
new file mode 100644
index 0000000..344344e
Binary files /dev/null and b/assets/images/patient/vital_signs/oxg.png differ
diff --git a/assets/images/patient/vital_signs/painScale.png b/assets/images/patient/vital_signs/painScale.png
new file mode 100644
index 0000000..36b6b9f
Binary files /dev/null and b/assets/images/patient/vital_signs/painScale.png differ
diff --git a/assets/images/patient/vital_signs/respiration_rate.png b/assets/images/patient/vital_signs/respiration_rate.png
new file mode 100644
index 0000000..ff695de
Binary files /dev/null and b/assets/images/patient/vital_signs/respiration_rate.png differ
diff --git a/assets/images/patient/vital_signs/temperature.png b/assets/images/patient/vital_signs/temperature.png
new file mode 100644
index 0000000..9953a13
Binary files /dev/null and b/assets/images/patient/vital_signs/temperature.png differ
diff --git a/assets/images/patient/vital_signs/underweight_BMI-r.png b/assets/images/patient/vital_signs/underweight_BMI-r.png
new file mode 100644
index 0000000..2f633b4
Binary files /dev/null and b/assets/images/patient/vital_signs/underweight_BMI-r.png differ
diff --git a/assets/images/patient/vital_signs/underweight_BMI.png b/assets/images/patient/vital_signs/underweight_BMI.png
new file mode 100644
index 0000000..83b0260
Binary files /dev/null and b/assets/images/patient/vital_signs/underweight_BMI.png differ
diff --git a/assets/images/patient/vital_signs/weight.png b/assets/images/patient/vital_signs/weight.png
new file mode 100644
index 0000000..4a3bd2c
Binary files /dev/null and b/assets/images/patient/vital_signs/weight.png differ
diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json
index cb952f2..1038617 100644
--- a/assets/langs/ar-SA.json
+++ b/assets/langs/ar-SA.json
@@ -2,6 +2,49 @@
"mohemm": "Mohemm",
"english": "English",
"arabic": "عربي",
- "login": "تسجيل الدخول"
-
+ "login": "تسجيل الدخول",
+ "drSulaiman": "سليمان الحبيب",
+ "welcomeTo": "مرحبا بك في",
+ "userID" : "معرف المستخدم",
+ "password" : "كلمة المرور",
+ "branch" : "فرع",
+ "pleaseEnterLoginDetails": "الرجاء إدخال التفاصيل أدناه لتسجيل الدخول",
+ "username": "اسم المستخدم",
+ "welcomeBack": "مرحبا بعودتك",
+ "wouldYouLikeToLoginWithCurrentUsername": "هل ترغب في تسجيل الدخول باسم المستخدم الحالي؟",
+ "lastLoginDetails": "تفاصيل تسجيل الدخول الأخير:",
+ "verificationType": "نوع التحقق:",
+ "pleaseVerify": "ارجوك تحقق",
+ "pleaseVerifyForBio": "الرجاء التحقق من تسجيل الدخول باستخدام أحد هذه الخيارات",
+ "verifyThroughFace": "تحقق من خلال الوجه",
+ "verifyThroughFingerprint": "تحقق من خلال بصمة الإصبع",
+ "verifyThroughSMS": "تحقق من خلال الرسائل القصيرة",
+ "verifyThroughWhatsapp": "تحقق من خلال Whatsapp",
+ "useAnotherAccount": "استخدم حسابا آخر",
+ "pleaseEnterTheVerificationCodeSentTo": "الرجاء إدخال رمز التحقق المرسل إلى ",
+ "theVerificationCodeWillExpireIn": "ستنتهي صلاحية رمز التحقق في ",
+ "goodMorning": "صباح الخير",
+ "markAttendance": "علامة الحضور",
+ "timeLeftToday": "الوقت المتبقي اليوم",
+ "checkIn": "تحقق في",
+ "workList": "قائمة العمل",
+ "doNotUseRecentPassword": "لا تستخدم كلمة مرور حديثة",
+ "atLeastOneLowercase": "حرف صغير واحد على الأقل",
+ "atLeastOneUppercase": "حرف كبير واحد على الأقل",
+ "atLeastOneNumeric": "رقم واحد على الأقل",
+ "minimum8Characters": "8 أحرف على الأقل",
+ "doNotAddRepeatingLetters": "لا تقم بإضافة أحرف متكررة",
+ "itShouldContainSpecialCharacter": "يجب أن يحتوي على طابع خاص",
+ "confirmPasswordMustMatch": "يجب أن يتطابق تأكيد كلمة المرور",
+ "sms": "رسالة قصيرة",
+ "fingerPrint": "بصمة",
+ "face": "التعرف على الوجه",
+ "whatsapp": "واتس اب",
+ "reject": "يرفض",
+ "approve": "يوافق",
+ "cancel": "إلغاء",
+ "otp": "OTP",
+ "verification": "تَحَقّق",
+ "resend": "إعادة إرسال",
+ "codeExpire": "انتهت صلاحية رمز التحقق"
}
\ No newline at end of file
diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json
index afb883f..27757e5 100644
--- a/assets/langs/en-US.json
+++ b/assets/langs/en-US.json
@@ -2,6 +2,49 @@
"mohemm": "Mohemm",
"english": "English",
"arabic": "عربي",
- "login": "Login"
-
+ "login": "Login",
+ "drSulaiman" : "Dr Sulaiman Al Habib",
+ "welcomeTo": "Welcome to",
+ "userID" : "User ID",
+ "password" : "Password",
+ "branch" : "Branch",
+ "pleaseEnterLoginDetails": "Please enter the detail below to login",
+ "username": "Username",
+ "welcomeBack": "Welcome back",
+ "wouldYouLikeToLoginWithCurrentUsername": "Would you like to login with current Username?",
+ "lastLoginDetails": "Last Login Details:",
+ "verificationType": "Verification Type:",
+ "pleaseVerify": "Please Verify",
+ "pleaseVerifyForBio": "Please verify login with one of the following options",
+ "verifyThroughFace": "Verify Through Face",
+ "verifyThroughFingerprint": "Verify Through Fingerprint",
+ "verifyThroughSMS": "Verify Through SMS",
+ "verifyThroughWhatsapp": "Verify Through Whatsapp",
+ "useAnotherAccount": "Use Another Account",
+ "pleaseEnterTheVerificationCodeSentTo": "Please enter the verification code sent to ",
+ "theVerificationCodeWillExpireIn": "The verification code will expire in ",
+ "goodMorning": "Good Morning",
+ "markAttendance": "Mark Attendance",
+ "timeLeftToday": "Time Left Today",
+ "checkIn": "Check In",
+ "workList": "Work List",
+ "doNotUseRecentPassword": "Do not use recent password",
+ "atLeastOneLowercase": "At least one lowercase",
+ "atLeastOneUppercase": "At least one uppercase",
+ "atLeastOneNumeric": "At least one numeric",
+ "minimum8Characters": "Minimum 8 characters",
+ "doNotAddRepeatingLetters": "Do not add repeating letters",
+ "itShouldContainSpecialCharacter": "It should contain special character",
+ "confirmPasswordMustMatch": "Confirm password must match",
+ "sms": "SMS",
+ "fingerPrint": "Fingerprint",
+ "face": "Face",
+ "whatsapp": "Whatsapp",
+ "reject": "Reject",
+ "approve": "Approve",
+ "cancel": "Cancel",
+ "otp": "OTP",
+ "verification": "Verification",
+ "resend": "Resend",
+ "codeExpire": "The verification code has been expired"
}
\ No newline at end of file
diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig
index 592ceee..ec97fc6 100644
--- a/ios/Flutter/Debug.xcconfig
+++ b/ios/Flutter/Debug.xcconfig
@@ -1 +1,2 @@
+#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"
diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig
index 592ceee..c4855bf 100644
--- a/ios/Flutter/Release.xcconfig
+++ b/ios/Flutter/Release.xcconfig
@@ -1 +1,2 @@
+#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 92e4416..48c23d2 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 50;
+ objectVersion = 51;
objects = {
/* Begin PBXBuildFile section */
@@ -13,6 +13,7 @@
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+ 9D12EA470E69A39F3F4EEEAC /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBDA1EC0585A028F26394B8F /* Pods_Runner.framework */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -31,6 +32,7 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
+ 27FAD59055A271CDB6345D20 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
@@ -42,6 +44,9 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ CBDA1EC0585A028F26394B8F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ E8F2C56CA7A126F5FC598365 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
+ FF2E7CCDDEE1BDF1A3E7D477 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -49,12 +54,21 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 9D12EA470E69A39F3F4EEEAC /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ 5070F4CF6F638C91B59F4B67 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ CBDA1EC0585A028F26394B8F /* Pods_Runner.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
@@ -72,6 +86,8 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
+ CACFC9B4D329C2F774D03EE9 /* Pods */,
+ 5070F4CF6F638C91B59F4B67 /* Frameworks */,
);
sourceTree = "";
};
@@ -98,6 +114,16 @@
path = Runner;
sourceTree = "";
};
+ CACFC9B4D329C2F774D03EE9 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ FF2E7CCDDEE1BDF1A3E7D477 /* Pods-Runner.debug.xcconfig */,
+ 27FAD59055A271CDB6345D20 /* Pods-Runner.release.xcconfig */,
+ E8F2C56CA7A126F5FC598365 /* Pods-Runner.profile.xcconfig */,
+ );
+ path = Pods;
+ sourceTree = "";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -105,12 +131,14 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
+ CDED494F0D32669A035C1EA5 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+ 2CEBFA1962BF46DCB0A31085 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -169,6 +197,23 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
+ 2CEBFA1962BF46DCB0A31085 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -197,6 +242,28 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
+ CDED494F0D32669A035C1EA5 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -288,6 +355,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+ DEVELOPMENT_TEAM = KT58FV5WJU;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -416,6 +484,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+ DEVELOPMENT_TEAM = KT58FV5WJU;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -438,6 +507,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+ DEVELOPMENT_TEAM = KT58FV5WJU;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata
index 1d526a1..21a3cc1 100644
--- a/ios/Runner.xcworkspace/contents.xcworkspacedata
+++ b/ios/Runner.xcworkspace/contents.xcworkspacedata
@@ -4,4 +4,7 @@
+
+
diff --git a/lib/config/routes.dart b/lib/config/routes.dart
index eca978f..3938565 100644
--- a/lib/config/routes.dart
+++ b/lib/config/routes.dart
@@ -1,25 +1,17 @@
import 'package:flutter/material.dart';
-import 'package:hmg_nurses/ui/login/splash_page.dart';
-
-
+import 'package:hmg_nurses/ui/login/login_method_page.dart';
+import 'package:hmg_nurses/ui/login/login_page.dart';
class AppRoutes {
-
//Login
static const String splash = "/splash";
static const String registerSelection = "/registerSelection";
- static const String loginVerifyAccount = "/loginVerifyAccount";
+ static const String loginMethodsPage = "/loginMethodsPage";
static const String login = "/login";
-
-
static final Map routes = {
-
//Login
- splash: (BuildContext context) => SplashPage(),
- // login: (BuildContext context) => LoginScreen(),
-
-
-
+ login: (BuildContext context) => const LoginPage(),
+ loginMethodsPage: (BuildContext context) => const LoginMethodsPage(),
};
}
diff --git a/lib/dialogs/otp_dialog.dart b/lib/dialogs/otp_dialog.dart
index 28b1fc0..4355884 100644
--- a/lib/dialogs/otp_dialog.dart
+++ b/lib/dialogs/otp_dialog.dart
@@ -1,15 +1,15 @@
import 'dart:async';
-import 'package:easy_localization/src/public_ext.dart';
+import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:hmg_nurses/classes/colors.dart';
import 'package:hmg_nurses/extensions/int_extensions.dart';
import 'package:hmg_nurses/extensions/string_extensions.dart';
+import 'package:hmg_nurses/generated/locale_keys.g.dart';
import 'package:hmg_nurses/widgets/button/default_button.dart';
import 'package:hmg_nurses/widgets/otp_widget.dart';
-
final ValueNotifier otpFieldClear = ValueNotifier("");
class OtpDialog {
@@ -17,18 +17,13 @@ class OtpDialog {
final int? mobileNo;
final Function(String, TextEditingController _pinPutController) onSuccess;
final Function onFailure;
- final BuildContext context;
final Function onResendCode;
int remainingTime = 120;
Future? timer;
- static BuildContext? _context;
-
- static bool? _loading;
-
- OtpDialog(this.context, this.type, this.mobileNo, this.onSuccess, this.onFailure, {required this.onResendCode});
+ OtpDialog({required this.type, required this.mobileNo, required this.onSuccess, required this.onFailure, required this.onResendCode});
GlobalKey? verifyAccountForm = GlobalKey();
@@ -53,7 +48,6 @@ class OtpDialog {
// ProjectViewModel projectProvider;
String displayTime = '';
- String? _code;
dynamic setState;
bool stopTimer = false;
@@ -75,7 +69,7 @@ class OtpDialog {
}
return Container(
- padding: EdgeInsets.all(21),
+ padding: const EdgeInsets.all(21),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
@@ -92,38 +86,33 @@ class OtpDialog {
width: 50,
),
12.height,
- "LocaleKeys.otp.tr()".toText14(),
- "LocaleKeys.verification.tr()".toText24(isBold: true),
+ LocaleKeys.otp.tr().toText14(),
+ LocaleKeys.verification.tr().toText24(isBold: true),
6.height,
- ("LocaleKeys.pleaseEnterTheVerificationCodeSentTo.tr()" + ' xxxxxxxx' + mobileNo.toString().substring(mobileNo.toString().length - 3)).toText16(),
+ ('${LocaleKeys.pleaseEnterTheVerificationCodeSentTo.tr()} xxxxxxxx${mobileNo.toString().substring(mobileNo.toString().length - 3)}').toText16(),
18.height,
ValueListenableBuilder(
builder: (BuildContext context, String value, Widget? child) {
- // This builder will only get called when the _counter
- // is updated.
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- Directionality(
- textDirection: TextDirection.ltr,
- child: Center(
- child: OTPWidget(
- autoFocus: true,
- controller: _pinPutController,
- defaultBorderColor: const Color(0xffD8D8D8),
- maxLength: 4,
- onTextChanged: (text) {},
- pinBoxColor: Colors.white,
- onDone: (code) => _onOtpCallBack(code, null),
- textBorderColor: const Color(0xffD8D8D8),
- pinBoxWidth: 60,
- pinBoxHeight: 60,
- pinTextStyle: const TextStyle(fontSize: 24.0, color: MyColors.darkTextColor),
- pinTextAnimatedSwitcherTransition: ProvidedPinBoxTextAnimation.scalingTransition,
- pinTextAnimatedSwitcherDuration: const Duration(milliseconds: 300),
- pinBoxRadius: 10,
- keyboardType: TextInputType.number,
- ),
+ Center(
+ child: OTPWidget(
+ autoFocus: true,
+ controller: _pinPutController,
+ defaultBorderColor: const Color(0xffD8D8D8),
+ maxLength: 4,
+ onTextChanged: (text) {},
+ pinBoxColor: Colors.white,
+ onDone: (code) => _onOtpCallBack(code, null),
+ textBorderColor: const Color(0xffD8D8D8),
+ pinBoxWidth: 60,
+ pinBoxHeight: 60,
+ pinTextStyle: const TextStyle(fontSize: 24.0, color: MyColors.darkTextColor),
+ pinTextAnimatedSwitcherTransition: ProvidedPinBoxTextAnimation.scalingTransition,
+ pinTextAnimatedSwitcherDuration: const Duration(milliseconds: 300),
+ pinBoxRadius: 10,
+ keyboardType: TextInputType.number,
),
),
10.height,
@@ -131,7 +120,7 @@ class OtpDialog {
? Row(
children: [
Expanded(
- child: "LocaleKeys.codeExpire.tr()".toText16(
+ child: LocaleKeys.codeExpire.tr().toText16(
color: MyColors.redColor,
),
),
@@ -146,7 +135,7 @@ class OtpDialog {
)
: RichText(
text: TextSpan(
- text: "LocaleKeys.theVerificationCodeWillExpireIn.tr()" + '\n',
+ text: '${LocaleKeys.theVerificationCodeWillExpireIn.tr()}\n',
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: MyColors.darkTextColor, letterSpacing: -0.48),
children: [
TextSpan(
@@ -163,7 +152,7 @@ class OtpDialog {
),
18.height,
DefaultButton(
- stopTimer ? "LocaleKeys.resend.tr()" : "LocaleKeys.cancel.tr()",
+ stopTimer ? LocaleKeys.resend.tr() : LocaleKeys.cancel.tr(),
() async {
if (stopTimer) {
hideSMSBox(context);
@@ -177,8 +166,8 @@ class OtpDialog {
colors: stopTimer
? null
: [
- MyColors.pinkDarkColor,
- MyColors.pinkDarkColor,
+ MyColors.redColor,
+ MyColors.redColor,
],
),
],
@@ -211,16 +200,6 @@ class OtpDialog {
);
}
- // String validateCodeDigit(value) {
- // if (value.isEmpty) {
- // return ' ';
- // } else if (value.length == 3) {
- // print(value);
- // } else {
- // return null;
- // }
- // }
-
String getSecondsAsDigitalClock(int inputSeconds) {
int secNum = int.parse(inputSeconds.toString()); // don't forget the second param
int hours = (secNum / 3600).floor();
@@ -228,9 +207,9 @@ class OtpDialog {
double seconds = secNum - hours * 3600 - minutes * 60;
String minutesString = "";
String secondsString = "";
- minutesString = minutes < 10 ? "0" + minutes.toString() : minutes.toString();
- secondsString = seconds < 10 ? "0" + seconds.toStringAsFixed(0) : seconds.toStringAsFixed(0);
- return minutesString + ":" + secondsString;
+ minutesString = minutes < 10 ? "0$minutes" : minutes.toString();
+ secondsString = seconds < 10 ? "0${seconds.toStringAsFixed(0)}" : seconds.toStringAsFixed(0);
+ return "$minutesString:$secondsString";
}
void startTimer(setState) {
diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart
index 113e677..73e4320 100644
--- a/lib/generated/codegen_loader.g.dart
+++ b/lib/generated/codegen_loader.g.dart
@@ -6,15 +6,113 @@ import 'dart:ui';
import 'package:easy_localization/easy_localization.dart' show AssetLoader;
-class CodegenLoader extends AssetLoader {
+class CodegenLoader extends AssetLoader{
const CodegenLoader();
@override
- Future