diff --git a/android/app/build.gradle b/android/app/build.gradle
index 09fd0fb..6ac2704 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -44,7 +44,7 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.car_customer_app"
- minSdkVersion 16
+ minSdkVersion 20
targetSdkVersion 31
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
diff --git a/assets/assets/fonts/Poppins-Medium.ttf b/assets/assets/fonts/Poppins-Medium.ttf
deleted file mode 100644
index 6bcdcc2..0000000
Binary files a/assets/assets/fonts/Poppins-Medium.ttf and /dev/null differ
diff --git a/assets/assets/icons/Group 17.png b/assets/assets/icons/Group 17.png
deleted file mode 100644
index 7bb404a..0000000
Binary files a/assets/assets/icons/Group 17.png and /dev/null differ
diff --git a/assets/assets/icons/ic_branchs.svg b/assets/assets/icons/ic_branchs.svg
deleted file mode 100644
index d074656..0000000
--- a/assets/assets/icons/ic_branchs.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
diff --git a/assets/assets/icons/ic_close_account.svg b/assets/assets/icons/ic_close_account.svg
deleted file mode 100644
index 93adb61..0000000
--- a/assets/assets/icons/ic_close_account.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/assets/assets/icons/ic_face.svg b/assets/assets/icons/ic_face.svg
deleted file mode 100644
index 5fa9a9c..0000000
--- a/assets/assets/icons/ic_face.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
diff --git a/assets/assets/icons/ic_face_id.png b/assets/assets/icons/ic_face_id.png
deleted file mode 100644
index 913e850..0000000
Binary files a/assets/assets/icons/ic_face_id.png and /dev/null differ
diff --git a/assets/assets/icons/ic_fingerprint.png b/assets/assets/icons/ic_fingerprint.png
deleted file mode 100644
index bf73197..0000000
Binary files a/assets/assets/icons/ic_fingerprint.png and /dev/null differ
diff --git a/assets/assets/icons/ic_fingerprint.svg b/assets/assets/icons/ic_fingerprint.svg
deleted file mode 100644
index ba45417..0000000
--- a/assets/assets/icons/ic_fingerprint.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/assets/assets/icons/ic_provider.svg b/assets/assets/icons/ic_provider.svg
deleted file mode 100644
index e22c356..0000000
--- a/assets/assets/icons/ic_provider.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/assets/icons/ic_services.svg b/assets/assets/icons/ic_services.svg
deleted file mode 100644
index b0d0606..0000000
--- a/assets/assets/icons/ic_services.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/assets/assets/icons/ic_settings.svg b/assets/assets/icons/ic_settings.svg
deleted file mode 100644
index 6435135..0000000
--- a/assets/assets/icons/ic_settings.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/assets/icons/ic_sms.png b/assets/assets/icons/ic_sms.png
deleted file mode 100644
index aa72e0e..0000000
Binary files a/assets/assets/icons/ic_sms.png and /dev/null differ
diff --git a/assets/assets/icons/ic_sms.svg b/assets/assets/icons/ic_sms.svg
deleted file mode 100644
index 132ab7f..0000000
--- a/assets/assets/icons/ic_sms.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/assets/assets/icons/ic_whatsapp.png b/assets/assets/icons/ic_whatsapp.png
deleted file mode 100644
index 3f36403..0000000
Binary files a/assets/assets/icons/ic_whatsapp.png and /dev/null differ
diff --git a/assets/assets/icons/ic_whatsapp.svg b/assets/assets/icons/ic_whatsapp.svg
deleted file mode 100644
index 073e581..0000000
--- a/assets/assets/icons/ic_whatsapp.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/assets/assets/images/bn_car.jpeg b/assets/assets/images/bn_car.jpeg
deleted file mode 100644
index 5a6bd85..0000000
Binary files a/assets/assets/images/bn_car.jpeg and /dev/null differ
diff --git a/assets/assets/images/bn_logo.svg b/assets/assets/images/bn_logo.svg
deleted file mode 100644
index b0c971d..0000000
--- a/assets/assets/images/bn_logo.svg
+++ /dev/null
@@ -1,560 +0,0 @@
-
diff --git a/assets/assets/images/bn_map.png b/assets/assets/images/bn_map.png
deleted file mode 100644
index b04b5aa..0000000
Binary files a/assets/assets/images/bn_map.png and /dev/null differ
diff --git a/assets/assets/images/ic_car.svg b/assets/assets/images/ic_car.svg
deleted file mode 100644
index 804f607..0000000
--- a/assets/assets/images/ic_car.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/assets/assets/images/ic_edit.svg b/assets/assets/images/ic_edit.svg
deleted file mode 100644
index c14165f..0000000
--- a/assets/assets/images/ic_edit.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/assets/images/ic_email.svg b/assets/assets/images/ic_email.svg
deleted file mode 100644
index 81c4573..0000000
--- a/assets/assets/images/ic_email.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
diff --git a/assets/assets/images/ic_engine.png b/assets/assets/images/ic_engine.png
deleted file mode 100644
index 0256ff0..0000000
Binary files a/assets/assets/images/ic_engine.png and /dev/null differ
diff --git a/assets/assets/images/ic_lock.svg b/assets/assets/images/ic_lock.svg
deleted file mode 100644
index 1273157..0000000
--- a/assets/assets/images/ic_lock.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/assets/images/ic_logo_white.png b/assets/assets/images/ic_logo_white.png
deleted file mode 100644
index 779fda4..0000000
Binary files a/assets/assets/images/ic_logo_white.png and /dev/null differ
diff --git a/assets/assets/images/ic_logout.svg b/assets/assets/images/ic_logout.svg
deleted file mode 100644
index 2be107f..0000000
--- a/assets/assets/images/ic_logout.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/assets/assets/images/ic_mobile.svg b/assets/assets/images/ic_mobile.svg
deleted file mode 100644
index 068cf7a..0000000
--- a/assets/assets/images/ic_mobile.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/assets/assets/images/ic_notes.svg b/assets/assets/images/ic_notes.svg
deleted file mode 100644
index 009cf17..0000000
--- a/assets/assets/images/ic_notes.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/assets/assets/images/ic_notification.svg b/assets/assets/images/ic_notification.svg
deleted file mode 100644
index e45bab2..0000000
--- a/assets/assets/images/ic_notification.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/assets/images/ic_settings.svg b/assets/assets/images/ic_settings.svg
deleted file mode 100644
index 83b64c9..0000000
--- a/assets/assets/images/ic_settings.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/assets/images/ic_world.png b/assets/assets/images/ic_world.png
deleted file mode 100644
index 01ea634..0000000
Binary files a/assets/assets/images/ic_world.png and /dev/null differ
diff --git a/assets/assets/images/logo.svg b/assets/assets/images/logo.svg
deleted file mode 100644
index 8552147..0000000
--- a/assets/assets/images/logo.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-
diff --git a/assets/assets/images/splash_logo.svg b/assets/assets/images/splash_logo.svg
deleted file mode 100644
index 481226e..0000000
--- a/assets/assets/images/splash_logo.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
diff --git a/assets/fonts/Poppins-Medium.ttf b/assets/fonts/Poppins-Medium.ttf
deleted file mode 100644
index 6bcdcc2..0000000
Binary files a/assets/fonts/Poppins-Medium.ttf and /dev/null differ
diff --git a/assets/icons/Group 17.png b/assets/icons/Group 17.png
deleted file mode 100644
index 7bb404a..0000000
Binary files a/assets/icons/Group 17.png and /dev/null differ
diff --git a/assets/icons/ic_branchs.svg b/assets/icons/ic_branchs.svg
deleted file mode 100644
index d074656..0000000
--- a/assets/icons/ic_branchs.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
diff --git a/assets/icons/ic_close_account.svg b/assets/icons/ic_close_account.svg
deleted file mode 100644
index 93adb61..0000000
--- a/assets/icons/ic_close_account.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/assets/icons/ic_face.svg b/assets/icons/ic_face.svg
deleted file mode 100644
index 5fa9a9c..0000000
--- a/assets/icons/ic_face.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
diff --git a/assets/icons/ic_face_id.png b/assets/icons/ic_face_id.png
deleted file mode 100644
index 913e850..0000000
Binary files a/assets/icons/ic_face_id.png and /dev/null differ
diff --git a/assets/icons/ic_fingerprint.png b/assets/icons/ic_fingerprint.png
deleted file mode 100644
index bf73197..0000000
Binary files a/assets/icons/ic_fingerprint.png and /dev/null differ
diff --git a/assets/icons/ic_fingerprint.svg b/assets/icons/ic_fingerprint.svg
deleted file mode 100644
index ba45417..0000000
--- a/assets/icons/ic_fingerprint.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/assets/icons/ic_provider.svg b/assets/icons/ic_provider.svg
deleted file mode 100644
index e22c356..0000000
--- a/assets/icons/ic_provider.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_services.svg b/assets/icons/ic_services.svg
deleted file mode 100644
index b0d0606..0000000
--- a/assets/icons/ic_services.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/assets/icons/ic_settings.svg b/assets/icons/ic_settings.svg
deleted file mode 100644
index 6435135..0000000
--- a/assets/icons/ic_settings.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/icons/ic_sms.png b/assets/icons/ic_sms.png
deleted file mode 100644
index aa72e0e..0000000
Binary files a/assets/icons/ic_sms.png and /dev/null differ
diff --git a/assets/icons/ic_sms.svg b/assets/icons/ic_sms.svg
deleted file mode 100644
index 132ab7f..0000000
--- a/assets/icons/ic_sms.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/assets/icons/ic_whatsapp.png b/assets/icons/ic_whatsapp.png
deleted file mode 100644
index 3f36403..0000000
Binary files a/assets/icons/ic_whatsapp.png and /dev/null differ
diff --git a/assets/icons/ic_whatsapp.svg b/assets/icons/ic_whatsapp.svg
deleted file mode 100644
index 073e581..0000000
--- a/assets/icons/ic_whatsapp.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/assets/images/bc_Intro.svg b/assets/images/bc_Intro.svg
deleted file mode 100644
index deb4ffa..0000000
--- a/assets/images/bc_Intro.svg
+++ /dev/null
@@ -1,26 +0,0 @@
-
diff --git a/assets/images/bn_Intro.png b/assets/images/bn_Intro.png
deleted file mode 100644
index 8c342d2..0000000
Binary files a/assets/images/bn_Intro.png and /dev/null differ
diff --git a/assets/images/bn_car.jpeg b/assets/images/bn_car.jpeg
deleted file mode 100644
index 5a6bd85..0000000
Binary files a/assets/images/bn_car.jpeg and /dev/null differ
diff --git a/assets/images/bn_logo.svg b/assets/images/bn_logo.svg
deleted file mode 100644
index b0c971d..0000000
--- a/assets/images/bn_logo.svg
+++ /dev/null
@@ -1,560 +0,0 @@
-
diff --git a/assets/images/bn_map.png b/assets/images/bn_map.png
deleted file mode 100644
index b04b5aa..0000000
Binary files a/assets/images/bn_map.png and /dev/null differ
diff --git a/assets/images/ic_car.svg b/assets/images/ic_car.svg
deleted file mode 100644
index 804f607..0000000
--- a/assets/images/ic_car.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/assets/images/ic_edit.svg b/assets/images/ic_edit.svg
deleted file mode 100644
index c14165f..0000000
--- a/assets/images/ic_edit.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/images/ic_email.svg b/assets/images/ic_email.svg
deleted file mode 100644
index 81c4573..0000000
--- a/assets/images/ic_email.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
diff --git a/assets/images/ic_engine.png b/assets/images/ic_engine.png
deleted file mode 100644
index 0256ff0..0000000
Binary files a/assets/images/ic_engine.png and /dev/null differ
diff --git a/assets/images/ic_lock.svg b/assets/images/ic_lock.svg
deleted file mode 100644
index 1273157..0000000
--- a/assets/images/ic_lock.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/images/ic_logo_white.png b/assets/images/ic_logo_white.png
deleted file mode 100644
index 779fda4..0000000
Binary files a/assets/images/ic_logo_white.png and /dev/null differ
diff --git a/assets/images/ic_logout.svg b/assets/images/ic_logout.svg
deleted file mode 100644
index 2be107f..0000000
--- a/assets/images/ic_logout.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/assets/images/ic_mobile.svg b/assets/images/ic_mobile.svg
deleted file mode 100644
index 068cf7a..0000000
--- a/assets/images/ic_mobile.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/assets/images/ic_notes.svg b/assets/images/ic_notes.svg
deleted file mode 100644
index 009cf17..0000000
--- a/assets/images/ic_notes.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/assets/images/ic_notification.svg b/assets/images/ic_notification.svg
deleted file mode 100644
index e45bab2..0000000
--- a/assets/images/ic_notification.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/images/ic_settings.svg b/assets/images/ic_settings.svg
deleted file mode 100644
index 83b64c9..0000000
--- a/assets/images/ic_settings.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/images/ic_world.png b/assets/images/ic_world.png
deleted file mode 100644
index 01ea634..0000000
Binary files a/assets/images/ic_world.png and /dev/null differ
diff --git a/assets/images/logo.svg b/assets/images/logo.svg
deleted file mode 100644
index 8552147..0000000
--- a/assets/images/logo.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-
diff --git a/assets/images/splash_logo.svg b/assets/images/splash_logo.svg
deleted file mode 100644
index 481226e..0000000
--- a/assets/images/splash_logo.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json
deleted file mode 100644
index 4d542b6..0000000
--- a/assets/langs/ar-SA.json
+++ /dev/null
@@ -1,138 +0,0 @@
-{
- "firstTimeLogIn": "تسجيل الدخول لأول مره",
- "signUp": "التسجيل",
- "changeMobile": "تغيير رقم الجوال",
- "notifications": "الاشعارات",
- "general": "عام",
- "defineLicences": "تحديد الرخص",
- "dealershipSettings": "اعدادات البيع",
- "changePassword": "تغيير كلمة المرور",
- "retrievePassword" : "استرجاع كلمة المرور",
- "changeEmail": "تغيير الايميل",
- "verify": "تحقق",
- "verified": "تم التحقق",
- "signOut": "تسجيل خروج",
- "enterEmail": "ادخل الايميل",
- "enterNewEmail": "ادخل ايميل جديد",
- "enterCurrentPassword": "كلمة المرور الحاليه",
- "enterNewPassword": "كلمة المرور الجديده",
- "enterOldPassword": "كلمة المرور القديمه",
- "confirm": "تأكيد",
- "enterNewPhoneNumber": "رقم جوال جديد",
- "completeProfile": "الملف الشخصي",
- "continu": "استمرار",
- "confirmPassword": "تأكيد كلمة المرور",
- "createPassword": "انشاء كلمة مرور جديده",
- "email": "ايميل",
- "firstName": "الأسم الأول *",
- "surname": "اسم العائله *",
- "confirmPass": "تأكيد كلمة المرور *",
- "createPass": "انشاء كلمة مرور جديده *",
- "newPassword": " كلمة مرور جديده",
- "forgetPassword": "نسيت كلمة المرور",
- "forgetPasswordRecover": "نسيت كلمة المرور؟ استعادة",
- "editAccount": "تعديل الحساب",
- "change": "تغيير",
- "verifyAccount": "التحقق من الحساب",
- "login" : "تسجيل دخول",
- "welcomeMessage" : "مرحبا",
- "forgetPass": "نسيت كلمة المرور ؟",
- "enterPhoneNumber": "رقم جوال ",
- "phoneNumberVerified": "تم التحقق من الجوال",
- "verifyNewPassword": "التحقق من كلمة المرور",
- "EnterPass": "ادخل كلمة المرور",
- "alreadySigned": " تم تسجيل الدخول",
- "emailChangedSuccessfully": "تم تغيير الايميل بنجاح",
- "passwordIsUpdated" : "تم تحجيث كلمة المرور",
- "passwordShouldContains" : "كلمة المرور يجب ان تحتوي على رمز رقم حرف كبير حرف صغير",
- " successfullyRegistered": "تم التسجيل بنجاح",
- "pleaseEnterSamePassword" : "ادخل كلمة مرور مطابقه",
- "firstNameMandatory" : "ادخل الأسم الأول ",
- "surnameNameMandatory" : "ادخل اسم العائله",
- "passwordNameMandatory" : "ادخل كلمة المرور",
- "enterValidEmail" : "ادخل ايميل صحيح",
- "pleaseAcceptTerms" : "يجب الموافقه على الشروط",
- "emailVerified" : "تم التحقق من الايميل بنجاح",
- "selectMethod" : "اختر",
- "emailAddress" : "ايميل",
- "loginSelection" : "اختر",
- "selectCountryCode" : "اختر رمز الدوله",
- "selectProviderRole" : "اختر نوع الخدمه",
- "addPhoneNo" : "اضف الهاتف",
- "onlyCustomerApp": "نأسف هذا التطبيق فقط للعملاء",
- "imageUploaded" : "تم تحميل الصوره",
- "fileLarger" : "1KB حجم الملف اكبر من",
- "account" : "الحساب",
- "edit" : "تعديل",
- "imageDeleted" : "تم حذف الصوره",
- "dashboard" : "الصفحه الرئيسيه",
- "termsOfService":"من خلال إنشاء حساب فإنك توافق على",
- "userInformation": "معلومات المتسخدم",
- "faceRecognition": "تحقق مع بصمة الوجه",
- "fingerPrint" : "تحقق مع بصمة الاصبع",
- "whatsapp": "تحقق مع Whatsapp",
- "SMS": "رسائل قصيره",
- "selectRole" : "حدد الدور",
- "userRoleOrTitle" : "عنوان المستخدم",
- "codeSentToEmail": "تم ارسال الرمز للايميل",
- "number": "موبايل",
- "english": "English",
- "title": "Hello",
- "msg": "Hello {} in the {} world ",
- "msg_named": "{} are written in the {lang} language",
- "clickMe": "Click me",
- "profile": {
- "reset_password": {
- "label": "Reset Password",
- "username": "Username",
- "password": "password"
- }
- },
- "clicked": {
- "zero": "You clicked {} times!",
- "one": "You clicked {} time!",
- "two": "You clicked {} times!",
- "few": "You clicked {} times!",
- "many": "You clicked {} times!",
- "other": "You clicked {} times!"
- },
- "amount": {
- "zero": "Your amount : {} ",
- "one": "Your amount : {} ",
- "two": "Your amount : {} ",
- "few": "Your amount : {} ",
- "many": "Your amount : {} ",
- "other": "Your amount : {} "
- },
- "gender": {
- "male": "Hi man ;) ",
- "female": "Hello girl :)",
- "with_arg": {
- "male": "Hi man ;) {}",
- "female": "Hello girl :) {}"
- }
- },
- "reset_locale": "Reset Language",
- "welcomeDes": "أنت مكان واحد لكل ما تحتاجه سيارتك",
- "log_in": "تسجيل الدخول",
- "send": "إرسال",
- "phoneNumber": "رقم الهاتف",
- "forgetPasswordQ": "نسيت كلمة المرور؟",
- "recover": "استعادة",
- "retrivePassword": "استرجع كلمة المرور بإحدى الطرق التالية",
- "retriveOnPhone": "سوف نرسل الاختيار إلى رقم هاتفك المحمول المسجل",
- "retriveOnEmail": "سوف نرسل الاختيار إلى عنوان بريدك الإلكتروني المسجل",
- "enterPhoneForVerfication": "الرجاء إدخال رقم هاتفك وسنرسل لك رمز التحقق",
- "welcomeBack": "مرحبًا بعودتك!!!",
- "selectYourCountry": "اختر بلدك",
- "chooseCountry": "اختر الدوله",
- "terms": "بنود الخدمة وخصوصية السياسة",
- "profileMsg": "أدخل التفاصيل أدناه وأكمل معلومات الملف الشخصي",
- "save": "حفظ",
- "insert_otp_code": "ادخل الرمز",
- "type_code": "الرجاء كتابة الرمز الذي أرسلناه إلى",
- "resend_code": "أعد إرسال الرمز",
- "check_code": "التحقق من الشفرة",
- "time_will_expire": "إعادة إرسال الرمز بتنسيق",
- "sec" : "ثانية"
-}
\ No newline at end of file
diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json
deleted file mode 100644
index ae3143e..0000000
--- a/assets/langs/en-US.json
+++ /dev/null
@@ -1,138 +0,0 @@
-{
- "firstTimeLogIn" : "First Time Log In",
- "signUp": "Sign Up",
- "changeMobile": "Change Mobile",
- "notifications": "Notifications",
- "general": "General",
- "defineLicences": "Define Licences",
- "dealershipSettings": "Dealership Settings",
- "changePassword": "Change Password",
- "retrievePassword" : "Retrieve Password",
- "changeEmail": "Change Email",
- "verify": "Verify",
- "verified": "Verified",
- "signOut": "Sign Out",
- "enterEmail": "Enter Email",
- "enterNewEmail": "Enter New Email",
- "enterNewPassword": "Enter New Password",
- "enterCurrentPassword": "Enter Current Password",
- "enterOldPassword": "Enter Old Password",
- "confirm": "Confirm",
- "completeProfile": "Complete Profile",
- "enterNewPhoneNumber": "Enter New Phone Number",
- "enterPhoneNumber": "Enter Phone Number",
- "continu": "Continue",
- "confirmPassword": "Confirm Password",
- "createPassword": "Create Password",
- "email": "Email",
- "firstName": "First Name *",
- "surname": "Surname *",
- "confirmPass": "Confirm Password *",
- "createPass": "Create Password *",
- "newPassword": "New Password",
- "forgetPassword": "Forget Password",
- "forgetPasswordRecover": "Forget Password? Recover",
- "editAccount": "Edit Account",
- "change": "Change",
- "verifyAccount": "Verify Account",
- "login" : "Log In",
- "welcomeMessage" : "Welcome Message",
- "forgetPass": "Forget Password ?",
- "phoneNumberVerified": "Phone Number Verified",
- "verifyNewPassword": "Verify New Password",
- "EnterPass": "Enter Password ?",
- "alreadySigned": " Already Signed Up and Logged In",
- "emailChangedSuccessfully": "Email is Changed Successfully",
- "passwordIsUpdated" : "Password is Updated",
- "passwordShouldContains" : "Password Should contains Character, Number, Capital and small letters,",
- " successfullyRegistered": " Successfully Registered, Please login once,",
- "pleaseEnterSamePassword" : "Please enter same password",
- "firstNameMandatory" : "First name is mandatory",
- "surnameNameMandatory" : "Surname is mandatory",
- "passwordNameMandatory" : "Password is mandatory",
- "enterValidEmail" : "Enter Valid Email",
- "pleaseAcceptTerms" : "Please accept terms",
- "emailVerified" : "Email is verified successfully",
- "selectMethod" : "Select Method",
- "emailAddress" : "Email Address",
- "loginSelection" : "Login Selection",
- "selectCountryCode" : "Please select Country Code",
- "selectProviderRole" : "Please select Provider Role",
- "addPhoneNo" : "Please add Phone No",
- "onlyCustomerApp": "Sorry, Only Customer's can log in this app",
- "imageUploaded" : "Image is uploaded",
- "fileLarger" : "File is larger then 1KB",
- "account" : "Account",
- "edit" : "EDIT",
- "imageDeleted" : "Image is Deleted",
- "dashboard" : "Dashboard/Main Page",
- "termsOfService":"By creating an account you agree to our",
- "userInformation": "User Information",
- "faceRecognition": "Face Recognition",
- "fingerPrint" : "Finger Print",
- "whatsapp": "With Whatsapp",
- "SMS": "With SMS",
- "selectRole" : "Select Role",
- "userRoleOrTitle" : "User role or title",
- "codeSentToEmail": "Code is sent to email",
- "number": "Number",
- "english": "عربي",
- "title": "Hello",
- "msg": "Hello {} in the {} world ",
- "msg_named": "{} are written in the {lang} language",
- "clickMe": "Click me",
- "profile": {
- "reset_password": {
- "label": "Reset Password",
- "username": "Username",
- "password": "password"
- }
- },
- "clicked": {
- "zero": "You clicked {} times!",
- "one": "You clicked {} time!",
- "two": "You clicked {} times!",
- "few": "You clicked {} times!",
- "many": "You clicked {} times!",
- "other": "You clicked {} times!"
- },
- "amount": {
- "zero": "Your amount : {} ",
- "one": "Your amount : {} ",
- "two": "Your amount : {} ",
- "few": "Your amount : {} ",
- "many": "Your amount : {} ",
- "other": "Your amount : {} "
- },
- "gender": {
- "male": "Hi man ;) ",
- "female": "Hello girl :)",
- "with_arg": {
- "male": "Hi man ;) {}",
- "female": "Hello girl :) {}"
- }
- },
- "reset_locale": "Reset Language",
- "welcomeDes": "You one stop place all your car needs",
- "log_in": "Log In",
- "send": "Send",
- "phoneNumber": "Phone Number",
- "forgetPasswordQ": "Forget Password?",
- "recover": "Recover",
- "retrivePassword": "Retrive password by one of following method",
- "retriveOnPhone": "We will send the opt to your registered mobile number",
- "retriveOnEmail": "We will send the opt to your registered email address",
- "enterPhoneForVerfication": "Please enter your phone number We will send you the verification code",
- "welcomeBack": "Welcome Back!!!",
- "selectYourCountry": "Select Your Country",
- "chooseCountry": "Choose Country",
- "terms": "Terms of Service and Privacy Policy",
- "profileMsg": "Enter the details below and complete the profile info",
- "save": "Save",
- "insert_otp_code": "Enter the code",
- "type_code": "Please type the code we sent to",
- "resend_code": "Resend Code",
- "check_code": "Check Code",
- "time_will_expire": "Resend code in",
- "sec" : "sec"
-}
\ No newline at end of file
diff --git a/lib/api/api_client.dart b/lib/api/api_client.dart
deleted file mode 100644
index 65d38dd..0000000
--- a/lib/api/api_client.dart
+++ /dev/null
@@ -1,317 +0,0 @@
-import 'dart:async';
-import 'dart:convert';
-import 'dart:io';
-
-import 'package:car_customer_app/classes/app_state.dart';
-import 'package:car_customer_app/classes/consts.dart';
-import 'package:car_customer_app/exceptions/api_exception.dart';
-import 'package:car_customer_app/models/user/refresh_token.dart';
-import 'package:car_customer_app/models/user/user.dart';
-import 'package:car_customer_app/utils/shared_prefrence.dart';
-import 'package:flutter/foundation.dart';
-import 'package:http/http.dart';
-import 'package:http/io_client.dart';
-
-typedef FactoryConstructor = U Function(dynamic);
-
-class APIError {
- int errorCode;
- String errorMessage;
-
- APIError(this.errorCode, this.errorMessage);
-
- Map toJson() => {'errorCode': errorCode, 'errorMessage': errorMessage};
-
- @override
- String toString() {
- return jsonEncode(this);
- }
-
-
- static APIException throwAPIException(Response response) {
- switch (response.statusCode) {
- case 400:
- APIError? apiError;
- if (response.body != null && response.body.isNotEmpty) {
- var jsonError = jsonDecode(response.body);
- apiError = APIError(jsonError['errorCode'], jsonError['errorMessage']);
- }
- return APIException(APIException.BAD_REQUEST, error: apiError);
- case 401:
- return const APIException(APIException.UNAUTHORIZED);
- case 403:
- return const APIException(APIException.FORBIDDEN);
- case 404:
- return const APIException(APIException.NOT_FOUND);
- case 500:
- return const APIException(APIException.INTERNAL_SERVER_ERROR);
- case 444:
- var downloadUrl = response.headers["location"];
- return APIException(APIException.UPGRADE_REQUIRED, arguments: downloadUrl);
- default:
- return const APIException(APIException.OTHER);
- }
- }
-
-}
-
-abstract class ApiClient {
- Future postJsonForObject(FactoryConstructor factoryConstructor, String url, T jsonObject,
- {String? token, Map? queryParameters, Map? headers, int retryTimes = 0});
-
- Future postJsonForResponse(String url, T jsonObject, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0});
-
- Future getJsonForObject(FactoryConstructor factoryConstructor, String url, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0});
-
- Future getJsonForResponse(String url, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0});
-}
-
-class ApiClientImp implements ApiClient {
- @override
- Future postJsonForObject(FactoryConstructor factoryConstructor, String url, T jsonObject,
- {String? token, Map? queryParameters, Map? headers, int retryTimes = 0}) async {
- var _headers = {'Accept': 'application/json'};
- if (headers != null && headers.isNotEmpty) {
- _headers.addAll(headers);
- }
- if (!kReleaseMode) {
- debugPrint("Url:$url");
- debugPrint("body:$jsonObject");
- }
- var response = await postJsonForResponse(url, jsonObject, token: token, queryParameters: queryParameters, headers: _headers, retryTimes: retryTimes);
- try {
- if (!kReleaseMode) {
- debugPrint("res121:" + response.body);
- debugPrint("res121:" + response.statusCode.toString());
- }
- var jsonData = jsonDecode(response.body);
- return factoryConstructor(jsonData);
- } catch (ex) {
- debugPrint(ex.toString());
- debugPrint("exception:" + ex.toString());
- throw APIException(APIException.BAD_RESPONSE_FORMAT, arguments: ex);
- }
- }
-
- @override
- Future postJsonForResponse(String url, T jsonObject, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0}) async {
- String? requestBody;
- if (jsonObject != null) {
- requestBody = jsonEncode(jsonObject);
- if (headers == null) {
- headers = {'Content-Type': 'application/json'};
- } else {
- headers['Content-Type'] = 'application/json';
- }
- }
-
- return await _postForResponse(url, requestBody, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes);
- }
-
- Future _postForResponse(
- String url,
- requestBody, {
- String? token,
- Map? queryParameters,
- Map? headers,
- int retryTimes = 0,
- }) async {
- try {
- var _headers = {};
- if (token != null) {
- _headers['Authorization'] = 'Bearer $token';
- }
-
- if (headers != null && headers.isNotEmpty) {
- _headers.addAll(headers);
- }
-
- if (queryParameters != null) {
- var queryString = Uri(queryParameters: queryParameters).query;
- url = url + '?' + queryString;
- }
-
- Response response;
-
- response = await _post(Uri.parse(url), body: requestBody, headers: _headers).timeout(const Duration(seconds: 100));
-
- if (!kReleaseMode) {
- debugPrint("Url:$url");
- debugPrint("body:$requestBody");
- debugPrint("res: " + response.body);
- }
- if (response.statusCode >= 200 && response.statusCode < 500) {
- var jsonData = jsonDecode(response.body);
- if (jsonData["StatusMessage"] != null && jsonData["StatusMessage"] == "Unauthorized user attempt to access API") {
- String mToken = await updateUserToken();
- return await _postForResponse(url, requestBody, token: mToken, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes);
- }
- return response;
- } else {
- throw APIError.throwAPIException(response);
- }
- } on SocketException catch (e) {
- if (retryTimes > 0) {
- debugPrint('will retry after 3 seconds...');
- await Future.delayed(const Duration(seconds: 3));
- return await _postForResponse(url, requestBody, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1);
- } else {
- throw APIException(APIException.OTHER, arguments: e);
- }
- } on HttpException catch (e) {
- if (retryTimes > 0) {
- debugPrint('will retry after 3 seconds...');
- await Future.delayed(const Duration(seconds: 3));
- return await _postForResponse(url, requestBody, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1);
- } else {
- throw APIException(APIException.OTHER, arguments: e);
- }
- } on TimeoutException catch (e) {
- throw APIException(APIException.TIMEOUT, arguments: e);
- } on ClientException catch (e) {
- if (retryTimes > 0) {
- debugPrint('will retry after 3 seconds...');
- await Future.delayed(const Duration(seconds: 3));
- return await _postForResponse(url, requestBody, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1);
- } else {
- throw APIException(APIException.OTHER, arguments: e);
- }
- } catch (ex) {
- debugPrint("exception1:" + ex.toString());
- throw APIException(APIException.BAD_RESPONSE_FORMAT, arguments: ex);
- }
- }
-
- bool _certificateCheck(X509Certificate cert, String host, int port) => true;
-
- Future _withClient(Future Function(Client) fn) async {
- var httpClient = HttpClient()..badCertificateCallback = _certificateCheck;
- var client = IOClient(httpClient);
- try {
- return await fn(client);
- } finally {
- client.close();
- }
- }
-
- Future _post(url, {Map? headers, body, Encoding? encoding}) => _withClient((client) => client.post(url, headers: headers, body: body, encoding: encoding));
-
- @override
- Future getJsonForObject(FactoryConstructor factoryConstructor, String url,
- {String? token, Map? queryParameters, Map? headers, int retryTimes = 0}) async {
- var _headers = {'Accept': 'application/json'};
- if (headers != null && headers.isNotEmpty) {
- _headers.addAll(headers);
- }
- var response = await getJsonForResponse(url, token: token, queryParameters: queryParameters, headers: _headers, retryTimes: retryTimes);
- try {
- if (!kReleaseMode) {
- debugPrint("res:" + response.body);
- }
- var jsonData = jsonDecode(response.body);
- return factoryConstructor(jsonData);
- } catch (ex) {
- debugPrint("exception:" + response.body);
- throw APIException(APIException.BAD_RESPONSE_FORMAT, arguments: ex);
- }
- }
-
- @override
- Future getJsonForResponse(String url, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0}) async {
- if (headers == null) {
- headers = {'Content-Type': 'application/json'};
- } else {
- headers['Content-Type'] = 'application/json';
- }
- return await _getForResponse(url, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes);
- }
-
- bool isFirstCall = true;
-
- Future _getForResponse(String url, {String? token, Map? queryParameters, Map? headers, int retryTimes = 0}) async {
- try {
- var _headers = {};
- if (token != null) {
- _headers['Authorization'] = 'Bearer $token';
- }
-
- if (headers != null && headers.isNotEmpty) {
- _headers.addAll(headers);
- }
- if (queryParameters != null) {
- String queryString = Uri(queryParameters: queryParameters).query;
- if (isFirstCall) url = url + '?' + queryString.toString();
- }
-
- if (!kReleaseMode) {
- debugPrint("Url:$url");
- debugPrint("queryParameters:$queryParameters");
- }
- var response = await _get(Uri.parse(url), headers: _headers).timeout(const Duration(seconds: 60));
-
- if (!kReleaseMode) {
- debugPrint("res: " + response.body.toString());
- }
- if (response.statusCode >= 200 && response.statusCode < 500) {
- var jsonData = jsonDecode(response.body);
- if (jsonData["StatusMessage"] != null && jsonData["StatusMessage"] == "Unauthorized user attempt to access API") {
- String mToken = await updateUserToken();
- isFirstCall = false;
- return await _getForResponse(url, token: mToken, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes);
- }
- return response;
- } else {
- throw APIError.throwAPIException(response);
- }
- } on SocketException catch (e) {
- if (retryTimes > 0) {
- debugPrint('will retry after 3 seconds...');
- await Future.delayed(const Duration(seconds: 3));
- return await _getForResponse(url, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1);
- } else {
- throw APIException(APIException.OTHER, arguments: e);
- }
- } on HttpException catch (e) {
- if (retryTimes > 0) {
- debugPrint('will retry after 3 seconds...');
- await Future.delayed(const Duration(seconds: 3));
- return await _getForResponse(url, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1);
- } else {
- throw APIException(APIException.OTHER, arguments: e);
- }
- } on TimeoutException catch (e) {
- throw APIException(APIException.TIMEOUT, arguments: e);
- } on ClientException catch (e) {
- if (retryTimes > 0) {
- await Future.delayed(const Duration(seconds: 3));
- return await _getForResponse(url, token: token, queryParameters: queryParameters, headers: headers, retryTimes: retryTimes - 1);
- } else {
- throw APIException(APIException.OTHER, arguments: e);
- }
- } catch (e) {
- throw APIException(APIException.OTHER, arguments: e);
- }
- }
-
- Future _get(url, {Map? headers}) => _withClient((client) => client.get(url, headers: headers));
-
- Future refreshTokenAPI(String token, String refreshToken) async {
- var postParams = {"token": token, "refreshToken": refreshToken};
- // String t = AppState().getUser.data!.accessToken ?? "";
- return await postJsonForObject((json) => RefreshToken.fromJson(json), ApiConsts.RefreshToken, postParams);
- }
-
- Future updateUserToken() async {
- String token = await SharedPrefManager.getUserToken();
- String refreshToken = await SharedPrefManager.getRefreshToken();
- RefreshToken refresh = await refreshTokenAPI(token, refreshToken);
- SharedPrefManager.setUserToken(refresh.data!.accessToken ?? "");
- SharedPrefManager.setRefreshToken(refresh.data!.refreshToken ?? "");
- String mdata = await SharedPrefManager.getData();
- UserInfo info = UserInfo.fromJson(jsonDecode(mdata));
- User user = User();
- user.data = UserData(accessToken: refresh.data!.accessToken ?? "", refreshToken: refresh.data!.refreshToken ?? "", userInfo: info);
- AppState().setUser = user;
- return refresh.data!.accessToken??"";
- }
-}
diff --git a/lib/api/client/branch_api_client.dart b/lib/api/client/branch_api_client.dart
deleted file mode 100644
index f1fc0b3..0000000
--- a/lib/api/client/branch_api_client.dart
+++ /dev/null
@@ -1,57 +0,0 @@
-// import 'dart:async';
-//
-// import 'package:car_customer_app/classes/app_state.dart';
-// import 'package:car_customer_app/classes/consts.dart';
-// import 'package:car_customer_app/config/dependencies.dart';
-// import 'package:car_customer_app/models/m_response.dart';
-// import 'package:car_customer_app/models/profile/branch.dart';
-// import 'package:car_customer_app/models/profile/categroy.dart';
-// import 'package:car_customer_app/models/profile/services.dart';
-//
-// import '../api_client.dart';
-//
-// class BranchApiClient {
-//
-// Future createBranch(String branchName, String branchDescription, String cityId, String address, String latitude, String longitude) async {
-// var postParams = {
-// // "id": 0,
-// "serviceProviderID": AppState().getUser.data?.userInfo?.providerId ?? "",
-// "branchName": branchName,
-// "branchDescription": branchDescription,
-// "cityID": cityId,
-// "address": address,
-// "latitude": latitude,
-// "longitude": longitude,
-// "isActive": true
-// };
-// String t = AppState().getUser.data!.accessToken ?? "";
-// print("tokeen " + t);
-// return await injector.get().postJsonForObject((json) => MResponse.fromJson(json), ApiConsts.createProviderBranch, postParams, token: t);
-// }
-//
-// Future fetchAllBranches() async {
-// var postParams = {"ServiceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? ""};
-// String t = AppState().getUser.data!.accessToken ?? "";
-// print("tokeen " + t);
-// return await injector.get().getJsonForObject((json) => Branch.fromJson(json), ApiConsts.ServiceProviderBranchGet, queryParameters: postParams, token: t);
-// }
-//
-// Future fetchBranchCategory() async {
-// var postParams = {"ServiceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? ""};
-// String t = AppState().getUser.data!.accessToken ?? "";
-// print("tokeen " + t);
-// return await injector.get().getJsonForObject((json) => Category.fromJson(json), ApiConsts.ServiceCategory_Get, queryParameters: postParams, token: t);
-// }
-//
-// Future fetchServices(String serviceCategoryId) async {
-// var postParams = {"ServiceCategoryID": serviceCategoryId};
-// String t = AppState().getUser.data!.accessToken ?? "";
-// print("tokeen " + t);
-// return await injector.get().getJsonForObject((json) => Services.fromJson(json), ApiConsts.Services_Get, queryParameters: postParams, token: t);
-// }
-//
-// Future createService(List