fix issues

fatima
Fatimah Alshammari 4 years ago
parent 3dc5da827d
commit 44f2868790

@ -1,3 +1,4 @@
import 'package:car_provider_app/models/post_params_model.dart';
import 'package:car_provider_app/models/user/user.dart'; import 'package:car_provider_app/models/user/user.dart';
class AppState { class AppState {
@ -18,4 +19,13 @@ class AppState {
set setUser(v) => _user = v; set setUser(v) => _user = v;
User get getUser => _user??User(); User get getUser => _user??User();
PostParamsModel? _postParams;
PostParamsModel? get postParamsObject => _postParams;
Map<String, dynamic> get postParamsJson => _postParams?.toJson() ?? {};
void setPostParamsModel(PostParamsModel _postParams) {
this._postParams = _postParams;
}
} }

@ -14,7 +14,101 @@ class CodegenLoader extends AssetLoader{
return Future.value(mapLocales[locale.toString()]); return Future.value(mapLocales[locale.toString()]);
} }
static const Map<String,dynamic> en = { static const Map<String,dynamic> ar_SA = {
"firstTimeLogIn": "تسجيل الدخول لأول مره",
"signUp": "تسجيل دخول",
"changeMobile": "تغيير رقم الجوال",
"notifications": "الاشعارات",
"general": "عام",
"defineLicences": "تحديد الرخص",
"dealershipSettings": "اعدادات البيع",
"changePassword": "تغيير كلمة المرور",
"retrievePassword": "استرجاع كلمة المرور",
"changeEmail": "تغيير الايميل",
"verify": "تحقق",
"signOut": "تسجيل خروج",
"enterEmail": "ادخل الايميل",
"enterNewEmail": "ادخل ايميل جديد",
"enterCurrentPassword": "كلمة المرور الحاليه",
"enterNewPassword": "كلمة المرور الجديده",
"enterOldPassword": "كلمة المرور القديمه",
"confirm": "تأكيد",
"enterNewPhoneNumber": "رقم جوال جديد",
"completeProfile": "الملف الشخصي",
"continu": "استمرار",
"confirmPassword": "تأكيد كلمة المرور",
"createPassword": "انشاء كلمة مرور جديده",
"email": "ايميل",
"firstName": "الأسم الأول *",
"surname": "اسم العائله *",
"confirmPass": "تأكيد كلمة المرور *",
"createPass": "انشاء كلمة مرور جديده *",
"newPassword": " كلمة مرور جديده",
"forgetPassword": "نسيت كلمة المرور",
"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": "اضف الهاتف",
"onlyProviderApp": "نأسف هذا التطبيق فقط لمقدمي الخدمات",
"imageUploaded": "تم تحميل الصوره",
"fileLarger": "1KB حجم الملف اكبر من",
"account": "الحساب",
"edit": "تعديل",
"imageDeleted": "تم حذف الصوره",
"dashboard": "الصفحه الرئيسيه",
"pickAddress": "اختر العنوان",
"pickLocation": "اختر الموقع",
"save": "حفظ",
"defineServices": "تحديد الخدمات",
"selectBranch ": "اختر الفرع",
"selectServiceCategory": "اختر فئة الخدمة",
"defineBranches": "تحديد الفروع",
"defineProviders": "تحديد الموفرين",
"closeAccount": "اغلاق الحساب",
"createBranch": "انشاء فرع",
"address": "العنوان",
"branchDescription": "وصف الفرع",
"branchName": "اسم الفرع",
"chooseCity": "اختر المدينه",
"chooseCountry": "اختر الدوله",
"selectAttachment": "اختيار مرفق",
"somethingWrong": "هناك خطأ ما",
"documentsUploaded": "تم ارفاق الملف بنجاح",
"update": "تحديث",
"termsOfService": "من خلال إنشاء حساب فإنك توافق على شروط الخدمة و\n سياسة الخصوصية",
"branchInfo": "معلومات الفرع و الخدمات",
"profileCompleted": "الملف الشخصي مكتمل",
"selectLocationMap": "اختر الموقع",
"licensesAndCertifications": "الرخص و الشهادات",
"completeProfile1": "اكمل الملف الشخصي 1/3",
"completeProfile2": "اكمل الملف الشخصي 2/3",
"completeProfile3": "اكمل الملف الشخصي 3/3",
"userInformation": "User Information",
"provider": "Provider",
"title": "Hello", "title": "Hello",
"msg": "Hello {} in the {} world ", "msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language", "msg_named": "{} are written in the {lang} language",
@ -53,6 +147,100 @@ class CodegenLoader extends AssetLoader{
"reset_locale": "Reset Language" "reset_locale": "Reset Language"
}; };
static const Map<String,dynamic> en_US = { static const Map<String,dynamic> en_US = {
"firstTimeLogIn": "First Time Log In",
"signUp": "Sing 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",
"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",
"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",
"pickAddress": "Pick Address",
"pickLocation": "Pick Location",
"save": "Save",
"defineServices": "Define Services",
"selectBranch ": "Select Branch ",
"selectServiceCategory": "Select Service Category",
"defineBranches": "Define Branches",
"defineProviders": "Define Providers",
"closeAccount": "Close Account",
"createBranch": "Create Branch",
"address": "Address",
"branchDescription": "Branch Description",
"branchName": "Branch Name",
"chooseCity": "Choose City",
"chooseCountry": "Choose Country",
"selectAttachment": "Select Attachment",
"somethingWrong": "Something went wrong",
"documentsUploaded": "Documents uploaded successfully",
"update": "Update",
"termsOfService": "By creating an account you agree to our Terms of Service and\n Privacy Policy",
"branchInfo": "Branch Info and Services",
"profileCompleted": "Profile Completed",
"selectLocationMap": "Select Location Map",
"licensesAndCertifications": "licenses & certifications",
"completeProfile1": "Complete Profile 1/3",
"completeProfile2": "Complete Profile 2/3",
"completeProfile3": "Complete Profile 3/3",
"userInformation": "User Information",
"provider": "Provider",
"title": "Hello", "title": "Hello",
"msg": "Hello {} in the {} world ", "msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language", "msg_named": "{} are written in the {lang} language",
@ -90,5 +278,5 @@ static const Map<String,dynamic> en_US = {
}, },
"reset_locale": "Reset Language" "reset_locale": "Reset Language"
}; };
static const Map<String, Map<String,dynamic>> mapLocales = {"en": en, "en_US": en_US}; static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
} }

@ -1,4 +1,6 @@
import 'package:car_provider_app/classes/app_state.dart';
import 'package:car_provider_app/config/app_provider.dart'; import 'package:car_provider_app/config/app_provider.dart';
import 'package:car_provider_app/models/post_params_model.dart';
import 'package:car_provider_app/theme/app_theme.dart'; import 'package:car_provider_app/theme/app_theme.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -13,16 +15,25 @@ Future<void> main() async {
runApp( runApp(
EasyLocalization( EasyLocalization(
supportedLocales: [ supportedLocales: [
Locale('en', 'US'), Locale('ar', 'SA'),
Locale('en', 'US')
], ],
fallbackLocale: Locale('ar', 'SA'),
path: 'resources/langs', path: 'resources/langs',
child: MyApp(), child: MyApp(),
), ),
); );
} }
// todo terminal command to genertate translation files
// flutter pub run easy_localization:generate --source-dir ./resources/langs
// todo terminal command to genertate translation keys
// flutter pub run easy_localization:generate --source-dir ./resources/langs -f keys -o locale_keys.g.dart
// command to generate languages data from json
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
// This widget is the root of your application. //This widget is the root of your application.
MyApp() {} MyApp() {}
@override @override
@ -30,8 +41,11 @@ class MyApp extends StatelessWidget {
return AppProvider( return AppProvider(
child: Sizer( child: Sizer(
builder: (context, orientation, deviceType) { builder: (context, orientation, deviceType) {
AppState().setPostParamsModel(
PostParamsModel(languageID: EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2,),
);
return MaterialApp( return MaterialApp(
theme: AppTheme.getTheme(), theme: AppTheme.getTheme(EasyLocalization.of(context)?.locale.languageCode == "ar"),
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
localizationsDelegates: context.localizationDelegates, localizationsDelegates: context.localizationDelegates,
supportedLocales: context.supportedLocales, supportedLocales: context.supportedLocales,
@ -44,3 +58,26 @@ class MyApp extends StatelessWidget {
); );
} }
} }
// class MyApp extends StatelessWidget {
// // This widget is the root of your application.
// MyApp() {}
//
// @override
// Widget build(BuildContext context) {
// return AppProvider(
// child: Sizer(
// builder: (context, orientation, deviceType) {
// return MaterialApp(
// theme: AppTheme.getTheme(),
// debugShowCheckedModeBanner: false,
// localizationsDelegates: context.localizationDelegates,
// supportedLocales: context.supportedLocales,
// locale: context.locale,
// initialRoute: AppRoutes.initialRoute,
// routes: AppRoutes.routes,
// );
// },
// ),
// );
// }
// }

@ -0,0 +1,36 @@
class PostParamsModel {
double? versionID;
int? channel;
int? languageID;
String? mobileType;
String? logInTokenID;
String? tokenID;
PostParamsModel({this.versionID, this.channel, this.languageID, this.mobileType, this.logInTokenID, this.tokenID});
PostParamsModel.fromJson(Map<String, dynamic> json) {
versionID = json['VersionID'];
channel = json['Channel'];
languageID = json['LanguageID'];
mobileType = json['MobileType'];
logInTokenID = json['LogInTokenID'];
tokenID = json['TokenID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['LanguageID'] = this.languageID;
data['MobileType'] = this.mobileType;
data['LogInTokenID'] = this.logInTokenID;
data['TokenID'] = this.tokenID;
return data;
}
set setLogInTokenID(String? token) => logInTokenID = token;
set setTokenID(String? token) => tokenID = token;
}

@ -1,5 +1,6 @@
import 'package:car_provider_app/api/shared_prefrence.dart'; import 'package:car_provider_app/api/shared_prefrence.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/theme/colors.dart'; import 'package:car_provider_app/theme/colors.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
import 'package:car_provider_app/widgets/app_bar.dart'; import 'package:car_provider_app/widgets/app_bar.dart';
@ -7,6 +8,7 @@ import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
@ -54,7 +56,7 @@ class _DashboardPageState extends State<DashboardPage> {
body: Container( body: Container(
child: Container( child: Container(
child: Center( child: Center(
child: "Dashboard/Main Page".toText24(), child: LocaleKeys.dashboard.tr().toText24(),
), ),
), ),
), ),
@ -129,7 +131,7 @@ class _DashboardPageState extends State<DashboardPage> {
), ),
), ),
ShowFillButton( ShowFillButton(
title: "EDIT", title: LocaleKeys.edit.tr(),
onPressed: () { onPressed: () {
navigateWithName(context, AppRoutes.editAccoundPage); navigateWithName(context, AppRoutes.editAccoundPage);
}, },
@ -139,22 +141,22 @@ class _DashboardPageState extends State<DashboardPage> {
), ),
ListTile( ListTile(
leading: SvgPicture.asset("assets/images/ic_notification.svg"), leading: SvgPicture.asset("assets/images/ic_notification.svg"),
title: "Notifications".toText12(), title: LocaleKeys.notifications.tr().toText12(),
), ),
ListTile( ListTile(
leading: SvgPicture.asset("assets/images/ic_settings.svg"), leading: SvgPicture.asset("assets/images/ic_settings.svg"),
title: "General".toText12(), title: LocaleKeys.general.tr().toText12(),
), ),
ListTile( ListTile(
leading: SvgPicture.asset("assets/images/ic_notes.svg"), leading: SvgPicture.asset("assets/images/ic_notes.svg"),
title: "Define Licenses".toText12(), title: LocaleKeys.defineLicences.tr().toText12(),
onTap: (){ onTap: (){
navigateWithName(context, AppRoutes.defineLicense); navigateWithName(context, AppRoutes.defineLicense);
}, },
), ),
ListTile( ListTile(
leading: SvgPicture.asset("assets/images/ic_car.svg"), leading: SvgPicture.asset("assets/images/ic_car.svg"),
title: "Dealership Settings".toText12(), title: LocaleKeys.dealershipSettings.tr().toText12(),
onTap: (){ onTap: (){
navigateWithName(context, AppRoutes.dealershipSetting); navigateWithName(context, AppRoutes.dealershipSetting);
}, },
@ -182,7 +184,7 @@ class _DashboardPageState extends State<DashboardPage> {
// ), // ),
ListTile( ListTile(
leading: SvgPicture.asset("assets/images/ic_logout.svg"), leading: SvgPicture.asset("assets/images/ic_logout.svg"),
title: "Sign Out".toText12(), title: LocaleKeys.signOut.tr().toText12(),
onTap: () { onTap: () {
pop(context); pop(context);
pop(context); pop(context);

@ -1,7 +1,9 @@
import 'dart:async'; import 'dart:async';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:geocoding/geocoding.dart'; import 'package:geocoding/geocoding.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
@ -54,7 +56,7 @@ class _PickLocationPageState extends State<PickLocationPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text("Pick Location"), title: Text(LocaleKeys.pickLocation.tr()),
), ),
body: Container( body: Container(
child: Stack( child: Stack(
@ -91,7 +93,7 @@ class _PickLocationPageState extends State<PickLocationPage> {
child: Padding( child: Padding(
padding: const EdgeInsets.all(12.0), padding: const EdgeInsets.all(12.0),
child: ShowFillButton( child: ShowFillButton(
title: "Pick Address", title: LocaleKeys.pickAddress.tr(),
onPressed: () { onPressed: () {
widget.onPickAddress(latitude, longitude, _counter.value); widget.onPickAddress(latitude, longitude, _counter.value);
pop(context); pop(context);

@ -1,5 +1,6 @@
import 'package:car_provider_app/api/client/branch_api_client.dart'; import 'package:car_provider_app/api/client/branch_api_client.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/m_response.dart'; import 'package:car_provider_app/models/m_response.dart';
import 'package:car_provider_app/models/profile/branch.dart'; import 'package:car_provider_app/models/profile/branch.dart';
import 'package:car_provider_app/models/profile/categroy.dart'; import 'package:car_provider_app/models/profile/categroy.dart';
@ -7,6 +8,7 @@ import 'package:car_provider_app/models/profile/services.dart';
import 'package:car_provider_app/models/user/country.dart'; import 'package:car_provider_app/models/user/country.dart';
import 'package:car_provider_app/widgets/dropdown/dropdow_field.dart'; import 'package:car_provider_app/widgets/dropdown/dropdow_field.dart';
import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
@ -61,7 +63,7 @@ class _CreateServicesPageState extends State<CreateServicesPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text("Define Services"), title: Text(LocaleKeys.defineServices.tr()),
), ),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
@ -83,7 +85,7 @@ class _CreateServicesPageState extends State<CreateServicesPage> {
branchId = value.id; branchId = value.id;
fetchBrancheCategory(); fetchBrancheCategory();
}); });
}, list: countryDropList, hint: "Select Branch") }, list: countryDropList, hint: LocaleKeys.selectBranch.tr())
: CircularProgressIndicator(), : CircularProgressIndicator(),
12.height, 12.height,
(category != null) (category != null)
@ -95,7 +97,7 @@ class _CreateServicesPageState extends State<CreateServicesPage> {
categoryId = value.id; categoryId = value.id;
fetchServices(); fetchServices();
}); });
}, list: categoryDropList, hint: "Select Service Category") }, list: categoryDropList, hint: LocaleKeys.selectServiceCategory.tr())
: branchId == -1 : branchId == -1
? Container() ? Container()
: CircularProgressIndicator(), : CircularProgressIndicator(),
@ -137,7 +139,7 @@ class _CreateServicesPageState extends State<CreateServicesPage> {
Padding( Padding(
padding: const EdgeInsets.all(12.0), padding: const EdgeInsets.all(12.0),
child: ShowFillButton( child: ShowFillButton(
title: "Save", title: LocaleKeys.save.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
createService(); createService();

@ -1,6 +1,8 @@
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
@ -9,7 +11,7 @@ class DealershipPage extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text("Dealership Setting"), title: Text(LocaleKeys.dealershipSettings.tr()),
), ),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
@ -18,29 +20,29 @@ class DealershipPage extends StatelessWidget {
children: [ children: [
ListTile( ListTile(
leading: SvgPicture.asset("assets/icons/ic_settings.svg"), leading: SvgPicture.asset("assets/icons/ic_settings.svg"),
title: "General".toText12(), title: LocaleKeys.general.tr().toText12(),
), ),
ListTile( ListTile(
leading: SvgPicture.asset("assets/icons/ic_branchs.svg"), leading: SvgPicture.asset("assets/icons/ic_branchs.svg"),
title: "Define Branches".toText12(), title: LocaleKeys.defineBranches.tr().toText12(),
onTap: () { onTap: () {
navigateWithName(context, AppRoutes.defineBranch); navigateWithName(context, AppRoutes.defineBranch);
}, },
), ),
ListTile( ListTile(
leading: SvgPicture.asset("assets/icons/ic_services.svg"), leading: SvgPicture.asset("assets/icons/ic_services.svg"),
title: "Define Services".toText12(), title: LocaleKeys.defineServices.tr().toText12(),
onTap: () { onTap: () {
navigateWithName(context, AppRoutes.createServices); navigateWithName(context, AppRoutes.createServices);
}, },
), ),
ListTile( ListTile(
leading: SvgPicture.asset("assets/icons/ic_provider.svg"), leading: SvgPicture.asset("assets/icons/ic_provider.svg"),
title: "Define Providers".toText12(), title: LocaleKeys.defineProviders.tr().toText12(),
), ),
ListTile( ListTile(
leading: SvgPicture.asset("assets/icons/ic_close_account.svg"), leading: SvgPicture.asset("assets/icons/ic_close_account.svg"),
title: "Close Account".toText12(), title: LocaleKeys.closeAccount.tr().toText12(),
), ),
], ],
), ),

@ -2,6 +2,7 @@ import 'package:car_provider_app/api/client/branch_api_client.dart';
import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/api/client/user_api_client.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/m_response.dart'; import 'package:car_provider_app/models/m_response.dart';
import 'package:car_provider_app/models/user/cities.dart'; import 'package:car_provider_app/models/user/cities.dart';
import 'package:car_provider_app/models/user/country.dart'; import 'package:car_provider_app/models/user/country.dart';
@ -10,6 +11,7 @@ import 'package:car_provider_app/utils/utils.dart';
import 'package:car_provider_app/widgets/dropdown/dropdow_field.dart'; import 'package:car_provider_app/widgets/dropdown/dropdow_field.dart';
import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class DefineBranchPage extends StatefulWidget { class DefineBranchPage extends StatefulWidget {
@ -58,7 +60,7 @@ class _DefineBranchPageState extends State<DefineBranchPage> {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text( title: Text(
"Define Branch", LocaleKeys.defineBranches.tr(),
), ),
), ),
body: Container( body: Container(
@ -79,7 +81,7 @@ class _DefineBranchPageState extends State<DefineBranchPage> {
countryId = value.id; countryId = value.id;
fetchCites(); fetchCites();
}); });
}, list: countryDropList, hint: "Chosse Country") }, list: countryDropList, hint: LocaleKeys.chooseCountry.tr())
: CircularProgressIndicator(), : CircularProgressIndicator(),
12.height, 12.height,
if (countryId != -1) if (countryId != -1)
@ -89,14 +91,14 @@ class _DefineBranchPageState extends State<DefineBranchPage> {
// countryCode = value.subValue; // countryCode = value.subValue;
cityId = value.id; cityId = value.id;
}); });
}, list: citiesDropList, hint: "Chosse City") }, list: citiesDropList, hint: LocaleKeys.chooseCity.tr())
: CircularProgressIndicator(), : CircularProgressIndicator(),
12.height, 12.height,
if (cityId != -1) if (cityId != -1)
Column( Column(
children: [ children: [
TxtField( TxtField(
hint: "Branch Name", hint: LocaleKeys.branchName.tr(),
value: branchName, value: branchName,
onChanged: (v) { onChanged: (v) {
branchName = v; branchName = v;
@ -104,7 +106,7 @@ class _DefineBranchPageState extends State<DefineBranchPage> {
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Branch Description", hint: LocaleKeys.branchDescription.tr(),
value: branchDescription, value: branchDescription,
onChanged: (v) { onChanged: (v) {
branchDescription = v; branchDescription = v;
@ -112,7 +114,7 @@ class _DefineBranchPageState extends State<DefineBranchPage> {
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Address", hint: LocaleKeys.address.tr(),
isNeedClickAll: true, isNeedClickAll: true,
maxLines: 5, maxLines: 5,
value: address, value: address,
@ -120,7 +122,7 @@ class _DefineBranchPageState extends State<DefineBranchPage> {
), ),
12.height, 12.height,
ShowFillButton( ShowFillButton(
title: "Pick Address", title: LocaleKeys.pickAddress.tr(),
onPressed: () { onPressed: () {
navigateTo( navigateTo(
context, context,
@ -146,7 +148,7 @@ class _DefineBranchPageState extends State<DefineBranchPage> {
Padding( Padding(
padding: const EdgeInsets.all(12.0), padding: const EdgeInsets.all(12.0),
child: ShowFillButton( child: ShowFillButton(
title: "Create Branch", title: LocaleKeys.createBranch.tr(),
onPressed: () async { onPressed: () async {
Utils.showLoading(context); Utils.showLoading(context);
MResponse res = await BranchApiClent().createBranch(branchName, branchDescription, cityId.toString(), address, latitude.toString(), longitude.toString()); MResponse res = await BranchApiClent().createBranch(branchName, branchDescription, cityId.toString(), address, latitude.toString(), longitude.toString());

@ -4,10 +4,12 @@ import 'dart:io';
import 'package:car_provider_app/api/client/profile_api_client.dart'; import 'package:car_provider_app/api/client/profile_api_client.dart';
import 'package:car_provider_app/classes/app_state.dart'; import 'package:car_provider_app/classes/app_state.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/profile/document.dart'; import 'package:car_provider_app/models/profile/document.dart';
import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/utils/utils.dart';
import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
@ -36,7 +38,7 @@ class _DefineLicensePageState extends State<DefineLicensePage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text("Define Licenses"), title: Text(LocaleKeys.defineLicences.tr()),
), ),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
@ -49,14 +51,14 @@ class _DefineLicensePageState extends State<DefineLicensePage> {
Padding( Padding(
padding: const EdgeInsets.all(12.0), padding: const EdgeInsets.all(12.0),
child: ShowFillButton( child: ShowFillButton(
title: "Update", title: LocaleKeys.update.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
Utils.showLoading(context); Utils.showLoading(context);
ProfileApiClent().serviceProviderDocumentsUpdate(document!.data).then((value) { ProfileApiClent().serviceProviderDocumentsUpdate(document!.data).then((value) {
Utils.hideLoading(context); Utils.hideLoading(context);
if (value.messageStatus == 1) { if (value.messageStatus == 1) {
Utils.showToast("Documents uploaded successfully"); Utils.showToast(LocaleKeys.documentsUploaded.tr());
} else { } else {
Utils.showToast(value.message ?? ""); Utils.showToast(value.message ?? "");
} }
@ -73,14 +75,14 @@ class _DefineLicensePageState extends State<DefineLicensePage> {
Widget showWidget() { Widget showWidget() {
if (document != null) { if (document != null) {
return document!.data!.length == 0 return document!.data!.length == 0
? Text("Something went wrong") ? Text(LocaleKeys.somethingWrong.tr())
: ListView.separated( : ListView.separated(
itemBuilder: (context, index) { itemBuilder: (context, index) {
return Row( return Row(
children: [ children: [
Flexible( Flexible(
child: TxtField( child: TxtField(
hint: "Select Attachment", hint: LocaleKeys.selectAttachment.tr(),
value: document?.data![index].documentUrl ?? "", value: document?.data![index].documentUrl ?? "",
isNeedClickAll: true, isNeedClickAll: true,
maxLines: 2, maxLines: 2,

@ -4,6 +4,7 @@ import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/change_email.dart'; import 'package:car_provider_app/models/user/change_email.dart';
import 'package:car_provider_app/models/user/confirm_email.dart'; import 'package:car_provider_app/models/user/confirm_email.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
@ -12,6 +13,7 @@ import 'package:car_provider_app/widgets/dialog/dialogs.dart';
import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart';
import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart';
import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:convert'; import 'dart:convert';
@ -97,7 +99,7 @@ class _ChangeEmailPageState extends State<ChangeEmailPage> {
showMDialog( showMDialog(
context, context,
child: MessageDialog( child: MessageDialog(
title: "Email is Changed Successfully", title: LocaleKeys.emailChangedSuccessfully.tr(),
onClick: () { onClick: () {
Navigator.of(context).pushNamedAndRemoveUntil(AppRoutes.loginWithPassword, (Route<dynamic> route) => false); Navigator.of(context).pushNamedAndRemoveUntil(AppRoutes.loginWithPassword, (Route<dynamic> route) => false);
}, },

@ -4,6 +4,7 @@ import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/change_mobile.dart'; import 'package:car_provider_app/models/user/change_mobile.dart';
import 'package:car_provider_app/models/user/confirm_mobile.dart'; import 'package:car_provider_app/models/user/confirm_mobile.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
@ -12,6 +13,7 @@ import 'package:car_provider_app/widgets/dialog/dialogs.dart';
import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart';
import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart';
import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:convert'; import 'dart:convert';
@ -31,7 +33,7 @@ class _ChangeMobilePageState extends State<ChangeMobilePage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Change Mobile Number"), appBar: appBar(title: LocaleKeys.changeMobile.tr()),
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
// width: double.infinity, // width: double.infinity,
@ -39,11 +41,11 @@ class _ChangeMobilePageState extends State<ChangeMobilePage> {
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Enter New Phone Number".toText24(), LocaleKeys.enterNewPhoneNumber.tr().toText24(),
12.height, 12.height,
TextFormField( TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: "Enter New Phone Number", hintText: LocaleKeys.enterNewPhoneNumber.tr(),
hintStyle: TextStyle(color: Colors.grey), hintStyle: TextStyle(color: Colors.grey),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: const BorderRadius.all( borderRadius: const BorderRadius.all(
@ -57,7 +59,7 @@ class _ChangeMobilePageState extends State<ChangeMobilePage> {
12.height, 12.height,
TextFormField( TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: "Enter Current Password", hintText: LocaleKeys.enterCurrentPassword.tr(),
hintStyle: TextStyle(color: Colors.grey), hintStyle: TextStyle(color: Colors.grey),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: const BorderRadius.all( borderRadius: const BorderRadius.all(
@ -70,7 +72,7 @@ class _ChangeMobilePageState extends State<ChangeMobilePage> {
), ),
40.height, 40.height,
ShowFillButton( ShowFillButton(
title: "Confirm", title: LocaleKeys.confirm.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
changeMobile(context); changeMobile(context);
@ -98,7 +100,7 @@ class _ChangeMobilePageState extends State<ChangeMobilePage> {
showMDialog( showMDialog(
context, context,
child: MessageDialog( child: MessageDialog(
title: "Phone Number Verified", title:LocaleKeys.phoneNumberVerified.tr(),
onClick: () { onClick: () {
Navigator.of(context).pushNamedAndRemoveUntil(AppRoutes.loginWithPassword, (Route<dynamic> route) => false); Navigator.of(context).pushNamedAndRemoveUntil(AppRoutes.loginWithPassword, (Route<dynamic> route) => false);
}, },

@ -2,6 +2,7 @@ import 'package:car_provider_app/api/client/user_api_client.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/change_password.dart'; import 'package:car_provider_app/models/user/change_password.dart';
import 'package:car_provider_app/models/user/confirm_password.dart'; import 'package:car_provider_app/models/user/confirm_password.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
@ -13,6 +14,7 @@ import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:convert'; import 'dart:convert';
@ -34,7 +36,7 @@ class _ChangePasswordPageState extends State<ChangePasswordPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Change Password"), appBar: appBar(title: LocaleKeys.changePassword.tr()),
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
// width: double.infinity, // width: double.infinity,
@ -42,11 +44,11 @@ class _ChangePasswordPageState extends State<ChangePasswordPage> {
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Enter New Password".toText24(), LocaleKeys.enterNewPassword.tr().toText24(),
12.height, 12.height,
TextFormField( TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: "Enter Old Password", hintText: LocaleKeys.enterOldPassword.tr(),
hintStyle: TextStyle(color: Colors.grey), hintStyle: TextStyle(color: Colors.grey),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: const BorderRadius.all( borderRadius: const BorderRadius.all(
@ -60,7 +62,7 @@ class _ChangePasswordPageState extends State<ChangePasswordPage> {
12.height, 12.height,
TextFormField( TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: "Enter New Password", hintText: LocaleKeys.enterNewPassword.tr(),
hintStyle: TextStyle(color: Colors.grey), hintStyle: TextStyle(color: Colors.grey),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: const BorderRadius.all( borderRadius: const BorderRadius.all(
@ -73,7 +75,7 @@ class _ChangePasswordPageState extends State<ChangePasswordPage> {
), ),
40.height, 40.height,
ShowFillButton( ShowFillButton(
title: "Confirm", title: LocaleKeys.confirm.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
changePassword(context); changePassword(context);
@ -92,7 +94,8 @@ class _ChangePasswordPageState extends State<ChangePasswordPage> {
MResponse res = await UserApiClent().ChangePassword(currentPasswor, newPassword); MResponse res = await UserApiClent().ChangePassword(currentPasswor, newPassword);
Utils.hideLoading(context); Utils.hideLoading(context);
if (res.messageStatus == 1) { if (res.messageStatus == 1) {
Utils.showToast("Password is Updated"); Utils.showToast(LocaleKeys.passwordIsUpdated.tr());
//("Password is Updated");
// navigateWithName(context, AppRoutes.loginWithPassword); // navigateWithName(context, AppRoutes.loginWithPassword);
Navigator.of(context) Navigator.of(context)
.pushNamedAndRemoveUntil(AppRoutes.loginWithPassword, (Route<dynamic> route) => false); .pushNamedAndRemoveUntil(AppRoutes.loginWithPassword, (Route<dynamic> route) => false);
@ -100,7 +103,8 @@ class _ChangePasswordPageState extends State<ChangePasswordPage> {
Utils.showToast(res.message ?? ""); Utils.showToast(res.message ?? "");
} }
} else { } else {
Utils.showToast("Password Should contains Character, Number, Capital and small letters"); Utils.showToast(LocaleKeys.passwordShouldContains.tr());
//("Password Should contains Character, Number, Capital and small letters");
} }
} }

@ -1,6 +1,7 @@
import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/api/client/user_api_client.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/m_response.dart'; import 'package:car_provider_app/models/m_response.dart';
import 'package:car_provider_app/models/user/basic_otp.dart'; import 'package:car_provider_app/models/user/basic_otp.dart';
import 'package:car_provider_app/models/user/register_user.dart'; import 'package:car_provider_app/models/user/register_user.dart';
@ -15,6 +16,7 @@ import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class CompleteProfilePage extends StatefulWidget { class CompleteProfilePage extends StatefulWidget {
@ -39,7 +41,7 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Sign Up"), appBar: appBar(title: LocaleKeys.signUp.tr(),),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
@ -48,11 +50,11 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
padding: EdgeInsets.all(20), padding: EdgeInsets.all(20),
child: Column( child: Column(
children: [ children: [
"Complete Profile".toText24(), LocaleKeys.completeProfile.tr().toText24(),
12.height, 12.height,
TxtField( TxtField(
hint: "First Name *", hint: LocaleKeys.firstName.tr(),
value: firstName, value: firstName,
onChanged: (v) { onChanged: (v) {
firstName = v; firstName = v;
@ -60,7 +62,7 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Surname *", hint: LocaleKeys.surname.tr(),
value: lastName, value: lastName,
onChanged: (v) { onChanged: (v) {
lastName = v; lastName = v;
@ -68,17 +70,17 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Email", hint: LocaleKeys.email.tr(),
value: email, value: email,
// isButtonEnable: email!.length > 0 ? true : false, // isButtonEnable: email!.length > 0 ? true : false,
buttonTitle: "Verify", buttonTitle: LocaleKeys.verify.tr(),
onChanged: (v) { onChanged: (v) {
email = v; email = v;
}, },
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Create Password *", hint: LocaleKeys.createPass.tr(),
isPasswordEnabled: true, isPasswordEnabled: true,
maxLines: 1, maxLines: 1,
value: password, value: password,
@ -88,7 +90,7 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Confirm Password *", hint: LocaleKeys.confirmPass.tr(),
isPasswordEnabled: true, isPasswordEnabled: true,
maxLines: 1, maxLines: 1,
value: confirmPassword, value: confirmPassword,
@ -104,12 +106,12 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
Row( Row(
children: [ children: [
buildCheckbox(), buildCheckbox(),
"By creating an account you agree to our Terms of Service and\n Privacy Policy".toText12(), LocaleKeys.termsOfService.tr().toText12(),
], ],
), ),
16.height, 16.height,
ShowFillButton( ShowFillButton(
title: "Continue", title: LocaleKeys.continu.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
if (validation()) performCompleteProfile(); if (validation()) performCompleteProfile();
@ -165,17 +167,20 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
RegisterUser user = await UserApiClent().basicComplete(widget.user.data?.userId ?? "", firstName!, lastName!, email!, password!); RegisterUser user = await UserApiClent().basicComplete(widget.user.data?.userId ?? "", firstName!, lastName!, email!, password!);
Utils.hideLoading(context); Utils.hideLoading(context);
if (user.messageStatus == 1) { if (user.messageStatus == 1) {
Utils.showToast("Successfully Registered, Please login once"); Utils.showToast(LocaleKeys.successfullyRegistered.tr(),);
//("Successfully Registered, Please login once");
pop(context); pop(context);
// navigateReplaceWithName(context, AppRoutes.dashboard,arguments: user); // navigateReplaceWithName(context, AppRoutes.dashboard,arguments: user);
} else { } else {
Utils.showToast(user.message ?? ""); Utils.showToast(user.message ?? "");
} }
} else { } else {
Utils.showToast("Please enter same password"); Utils.showToast(LocaleKeys.pleaseEnterSamePassword.tr(),);
//("Please enter same password");
} }
} else { } else {
Utils.showToast("Password Should contains Character, Number, Capital and small letters"); Utils.showToast(LocaleKeys.passwordShouldContains.tr(),);
//("Password Should contains Character, Number, Capital and small letters");
} }
} }
@ -194,18 +199,29 @@ class _CompleteProfilePageState extends State<CompleteProfilePage> {
bool validation() { bool validation() {
bool isValid = true; bool isValid = true;
if (firstName!.isEmpty) { if (firstName!.isEmpty) {
Utils.showToast("First name is mandatory"); Utils.showToast(LocaleKeys.firstNameMandatory.tr());
//("First name is mandatory");
isValid = false; isValid = false;
} else if (lastName!.isEmpty) { } else if (lastName!.isEmpty) {
Utils.showToast("Surname is mandatory"); Utils.showToast(LocaleKeys.surnameNameMandatory.tr());
//("Surname is mandatory");
isValid = false; isValid = false;
}else if (email!.isNotEmpty) {
if(!isEmail(email!)){
Utils.showToast(LocaleKeys.enterValidEmail.tr());
//("Enter Valid Email");
isValid = false;
}
} else if (password!.isEmpty) { } else if (password!.isEmpty) {
Utils.showToast("Password is mandatory"); Utils.showToast(LocaleKeys.passwordNameMandatory.tr());
//("Password is mandatory");
isValid = false; isValid = false;
} else if (!isChecked) { } else if (!isChecked) {
Utils.showToast("Please accept terms"); Utils.showToast(LocaleKeys.pleaseAcceptTerms.tr());
//("Please accept terms");
isValid = false; isValid = false;
} }
return isValid; return isValid;
} }
} }

@ -2,6 +2,7 @@ import 'package:car_provider_app/api/client/user_api_client.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/confirm_password.dart'; import 'package:car_provider_app/models/user/confirm_password.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/utils/utils.dart';
@ -12,6 +13,7 @@ import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:convert'; import 'dart:convert';
@ -33,7 +35,7 @@ class _ConfirmNewPasswordPageState extends State<ConfirmNewPasswordPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Forget Password"), appBar: appBar(title:LocaleKeys.forgetPassword.tr()),
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
// width: double.infinity, // width: double.infinity,
@ -41,11 +43,11 @@ class _ConfirmNewPasswordPageState extends State<ConfirmNewPasswordPage> {
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"New Password".toText24(), LocaleKeys.newPassword.tr().toText24(),
12.height, 12.height,
TextFormField( TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: "Enter New Password", hintText: LocaleKeys.enterNewPassword.tr(),
hintStyle: TextStyle(color: Colors.grey), hintStyle: TextStyle(color: Colors.grey),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: const BorderRadius.all( borderRadius: const BorderRadius.all(
@ -59,7 +61,7 @@ class _ConfirmNewPasswordPageState extends State<ConfirmNewPasswordPage> {
12.height, 12.height,
TextFormField( TextFormField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: "Confirm Password", hintText: LocaleKeys.confirmPassword.tr(),
hintStyle: TextStyle(color: Colors.grey), hintStyle: TextStyle(color: Colors.grey),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: const BorderRadius.all( borderRadius: const BorderRadius.all(
@ -72,7 +74,7 @@ class _ConfirmNewPasswordPageState extends State<ConfirmNewPasswordPage> {
), ),
40.height, 40.height,
ShowFillButton( ShowFillButton(
title: "Confirm", title: LocaleKeys.confirm.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
if (validation()) confirmPasswordOTP(context); if (validation()) confirmPasswordOTP(context);
@ -92,13 +94,15 @@ class _ConfirmNewPasswordPageState extends State<ConfirmNewPasswordPage> {
Utils.hideLoading(context); Utils.hideLoading(context);
ConfirmPassword data = ConfirmPassword.fromJson(jsonDecode(res.body)); ConfirmPassword data = ConfirmPassword.fromJson(jsonDecode(res.body));
if (data.messageStatus == 1) { if (data.messageStatus == 1) {
Utils.showToast("Password is Updated"); Utils.showToast(LocaleKeys.passwordIsUpdated.tr());
//("Password is Updated");
navigateWithName(context, AppRoutes.loginWithPassword); navigateWithName(context, AppRoutes.loginWithPassword);
} else { } else {
Utils.showToast(data.message ?? ""); Utils.showToast(data.message ?? "");
} }
}else{ }else{
Utils.showToast("Password Should contains Character, Number, Capital and small letters"); Utils.showToast(LocaleKeys.passwordShouldContains.tr());
//("Password Should contains Character, Number, Capital and small letters");
} }
} }

@ -8,6 +8,7 @@ import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/m_response.dart'; import 'package:car_provider_app/models/m_response.dart';
import 'package:car_provider_app/models/user/verify_email.dart'; import 'package:car_provider_app/models/user/verify_email.dart';
import 'package:car_provider_app/models/user/verify_email_otp.dart'; import 'package:car_provider_app/models/user/verify_email_otp.dart';
@ -16,6 +17,7 @@ import 'package:car_provider_app/widgets/app_bar.dart';
import 'package:car_provider_app/widgets/dialog/dialogs.dart'; import 'package:car_provider_app/widgets/dialog/dialogs.dart';
import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart';
import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
@ -33,7 +35,7 @@ class _EditAccountPageState extends State<EditAccountPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Edit Account"), appBar: appBar(title: LocaleKeys.editAccount.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
@ -43,7 +45,7 @@ class _EditAccountPageState extends State<EditAccountPage> {
20.height, 20.height,
ListTile( ListTile(
leading: SvgPicture.asset("assets/images/ic_lock.svg"), leading: SvgPicture.asset("assets/images/ic_lock.svg"),
title: "Change Password".toText12(), title: LocaleKeys.changePassword.tr().toText12(),
onTap: (){ onTap: (){
navigateWithName(context, AppRoutes.changePassword); navigateWithName(context, AppRoutes.changePassword);
}, },
@ -53,13 +55,13 @@ class _EditAccountPageState extends State<EditAccountPage> {
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [ children: [
SvgPicture.asset("assets/images/ic_mobile.svg"), SvgPicture.asset("assets/images/ic_mobile.svg"),
"Change Mobile".toText12(), LocaleKeys.changeMobile.tr().toText12(),
"Verify".toText12(), LocaleKeys.verify.tr().toText12(),
RaisedButton( RaisedButton(
onPressed: (){ onPressed: (){
navigateWithName(context, AppRoutes.changeMobilePage); navigateWithName(context, AppRoutes.changeMobilePage);
}, },
child: Text("Change", child: Text(LocaleKeys.change.tr(),
style: TextStyle(fontSize: 14, style: TextStyle(fontSize: 14,
fontWeight: FontWeight.w600,),),color:Colors.blue, fontWeight: FontWeight.w600,),),color:Colors.blue,
textColor: Colors.white, textColor: Colors.white,
@ -72,7 +74,7 @@ class _EditAccountPageState extends State<EditAccountPage> {
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [ children: [
Icon(Icons.email, color: Colors.blue,), Icon(Icons.email, color: Colors.blue,),
"Change Email".toText12(), LocaleKeys.changeEmail.tr().toText12(),
InkWell( InkWell(
child:((AppState().getUser.data!.userInfo!.isEmailVerified??false)?"Verified" :"Verify").toText12(), child:((AppState().getUser.data!.userInfo!.isEmailVerified??false)?"Verified" :"Verify").toText12(),
onTap: onTap:
@ -86,7 +88,7 @@ class _EditAccountPageState extends State<EditAccountPage> {
onPressed: (){ onPressed: (){
navigateWithName(context, AppRoutes.changeEmailPage); navigateWithName(context, AppRoutes.changeEmailPage);
}, },
child: Text("Change", child: Text(LocaleKeys.change.tr(),
style: TextStyle(fontSize: 14, style: TextStyle(fontSize: 14,
fontWeight: FontWeight.w600,),),color:Colors.blue, fontWeight: FontWeight.w600,),),color:Colors.blue,
textColor: Colors.white, textColor: Colors.white,
@ -131,7 +133,8 @@ class _EditAccountPageState extends State<EditAccountPage> {
AppState().getUser.data!.userInfo!.isEmailVerified=true; AppState().getUser.data!.userInfo!.isEmailVerified=true;
setState(() { setState(() {
}); });
Utils.showToast("Email is verified successfully"); Utils.showToast(LocaleKeys.emailVerified.tr());
//("Email is verified successfully");
// Navigator.of(context).pushNamedAndRemoveUntil(AppRoutes.dashboard, (Route<dynamic> route) => false); // Navigator.of(context).pushNamedAndRemoveUntil(AppRoutes.dashboard, (Route<dynamic> route) => false);
// showMDialog( // showMDialog(
// context, // context,

@ -8,6 +8,7 @@ import 'package:car_provider_app/config/constants.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/forget_password_otp_compare.dart'; import 'package:car_provider_app/models/user/forget_password_otp_compare.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/utils/utils.dart';
@ -15,6 +16,7 @@ import 'package:car_provider_app/widgets/app_bar.dart';
import 'package:car_provider_app/widgets/button/show_image_button.dart'; import 'package:car_provider_app/widgets/button/show_image_button.dart';
import 'package:car_provider_app/widgets/dialog/dialogs.dart'; import 'package:car_provider_app/widgets/dialog/dialogs.dart';
import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
@ -34,14 +36,14 @@ class _ForgetPasswordMethodPageState extends State<ForgetPasswordMethodPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Forget Password"), appBar: appBar(title: LocaleKeys.forgetPassword.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Select Method".toText24(), LocaleKeys.selectMethod.tr().toText24(),
12.height, 12.height,
Row( Row(
children: [ children: [

@ -4,6 +4,7 @@ import 'package:car_provider_app/api/shared_prefrence.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/constants.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/country.dart'; import 'package:car_provider_app/models/user/country.dart';
import 'package:car_provider_app/models/user/forget_password_otp_compare.dart'; import 'package:car_provider_app/models/user/forget_password_otp_compare.dart';
import 'package:car_provider_app/models/user/forget_password_otp_request.dart'; import 'package:car_provider_app/models/user/forget_password_otp_request.dart';
@ -22,6 +23,7 @@ import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:car_provider_app/widgets/tab/login_email_tab.dart'; import 'package:car_provider_app/widgets/tab/login_email_tab.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:car_provider_app/models/user/user.dart'; import 'package:car_provider_app/models/user/user.dart';
@ -58,7 +60,7 @@ class _ForgetPasswordPageState extends State<ForgetPasswordPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Change Password"), appBar: appBar(title: LocaleKeys.changePassword.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
@ -74,7 +76,7 @@ class _ForgetPasswordPageState extends State<ForgetPasswordPage> {
}, },
), ),
50.height, 50.height,
"Retrieve Password".toText24(), LocaleKeys.retrievePassword.tr().toText24(),
12.height, 12.height,
type == ClassType.NUMBER ? Column(children: [ type == ClassType.NUMBER ? Column(children: [
getCountry(), getCountry(),
@ -84,9 +86,10 @@ class _ForgetPasswordPageState extends State<ForgetPasswordPage> {
onChanged: (v) { onChanged: (v) {
userName = v; userName = v;
}, },
keyboardType: TextInputType.number,
) )
],) : TxtField( ],) : TxtField(
hint: "Email Address", hint: LocaleKeys.emailAddress.tr(),
value: userName, value: userName,
onChanged: (v) { onChanged: (v) {
userName = v; userName = v;
@ -94,7 +97,7 @@ class _ForgetPasswordPageState extends State<ForgetPasswordPage> {
), ),
50.height, 50.height,
ShowFillButton( ShowFillButton(
title: "Continue", title: LocaleKeys.continu.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
if (userName.isNum()&& type==ClassType.NUMBER) { if (userName.isNum()&& type==ClassType.NUMBER) {

@ -6,6 +6,7 @@ import 'package:car_provider_app/classes/app_state.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/constants.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/login_password.dart'; import 'package:car_provider_app/models/user/login_password.dart';
import 'package:car_provider_app/models/user/register_user.dart'; import 'package:car_provider_app/models/user/register_user.dart';
import 'package:car_provider_app/models/user/user.dart'; import 'package:car_provider_app/models/user/user.dart';
@ -20,6 +21,7 @@ import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
@ -31,14 +33,14 @@ class LoginMethodSelectionPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Log In"), appBar: appBar(title: LocaleKeys.login.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Login Selection".toText24(), LocaleKeys.loginSelection.tr().toText24(),
mFlex(2), mFlex(2),
Row( Row(
children: [ children: [

@ -6,6 +6,7 @@ import 'package:car_provider_app/classes/app_state.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/constants.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/login_password.dart'; import 'package:car_provider_app/models/user/login_password.dart';
import 'package:car_provider_app/models/user/register_user.dart'; import 'package:car_provider_app/models/user/register_user.dart';
import 'package:car_provider_app/models/user/user.dart'; import 'package:car_provider_app/models/user/user.dart';
@ -20,6 +21,7 @@ import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
@ -86,14 +88,14 @@ class _LoginVerificationPageState extends State<LoginVerificationPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Log In"), appBar: appBar(title: LocaleKeys.login.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Verify Account".toText24(), LocaleKeys.verifyAccount.tr().toText24(),
mFlex(2), mFlex(2),
Row( Row(
children: [ children: [

@ -2,6 +2,7 @@ import 'package:car_provider_app/api/client/user_api_client.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/constants.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/basic_otp.dart'; import 'package:car_provider_app/models/user/basic_otp.dart';
import 'package:car_provider_app/models/user/register_user.dart'; import 'package:car_provider_app/models/user/register_user.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
@ -15,6 +16,7 @@ import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class LoginVerifyAccountPage extends StatelessWidget { class LoginVerifyAccountPage extends StatelessWidget {
@ -24,14 +26,14 @@ class LoginVerifyAccountPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Log In"), appBar: appBar(title: LocaleKeys.login.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Verify Account".toText24(), LocaleKeys.verifyAccount.tr().toText24(),
mFlex(1), mFlex(1),
TxtField( TxtField(
hint: "966501234567", hint: "966501234567",
@ -125,7 +127,7 @@ class LoginVerifyAccountPage extends StatelessWidget {
showMDialog( showMDialog(
context, context,
child: MessageDialog( child: MessageDialog(
title: "Phone Number Verified", title: LocaleKeys.phoneNumberVerified.tr(),
onClick: () { onClick: () {
pop(context); pop(context);
navigateWithName(context, AppRoutes.profile1,arguments: user); navigateWithName(context, AppRoutes.profile1,arguments: user);

@ -5,6 +5,7 @@ import 'package:car_provider_app/api/client/user_api_client.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/constants.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/basic_otp.dart'; import 'package:car_provider_app/models/user/basic_otp.dart';
import 'package:car_provider_app/models/user/login_password.dart'; import 'package:car_provider_app/models/user/login_password.dart';
import 'package:car_provider_app/models/user/register_user.dart'; import 'package:car_provider_app/models/user/register_user.dart';
@ -21,6 +22,7 @@ import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:car_provider_app/widgets/tab/login_email_tab.dart'; import 'package:car_provider_app/widgets/tab/login_email_tab.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
@ -41,7 +43,7 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Log In"), appBar: appBar(title: LocaleKeys.login.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
@ -69,7 +71,7 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Enter Password?", hint: LocaleKeys.EnterPass.tr(),
value: password, value: password,
isPasswordEnabled: true, isPasswordEnabled: true,
maxLines: 1, maxLines: 1,
@ -83,14 +85,14 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
Row( Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
"Forget Password".toText12(color: Colors.blue).onPress(() { LocaleKeys.forgetPassword.tr().toText12(color: Colors.blue).onPress(() {
navigateWithName(context, AppRoutes.forgetPassword); navigateWithName(context, AppRoutes.forgetPassword);
}), }),
], ],
), ),
50.height, 50.height,
ShowFillButton( ShowFillButton(
title: "Log In", title: LocaleKeys.login.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
performBasicOtp(context); performBasicOtp(context);

@ -1,17 +1,19 @@
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
import 'package:car_provider_app/widgets/app_bar.dart'; import 'package:car_provider_app/widgets/app_bar.dart';
import 'package:car_provider_app/widgets/extensions/int_extensions.dart'; import 'package:car_provider_app/widgets/extensions/int_extensions.dart';
import 'package:car_provider_app/widgets/extensions/string_extensions.dart'; import 'package:car_provider_app/widgets/extensions/string_extensions.dart';
import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class Profile1Page extends StatelessWidget { class Profile1Page extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Sign Up"), appBar: appBar(title: LocaleKeys.signUp.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
@ -20,41 +22,41 @@ class Profile1Page extends StatelessWidget {
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Complete Profile 1/3".toText16(), LocaleKeys.completeProfile1.tr().toText16(),
"User Information".toText14(), LocaleKeys.userInformation.tr().toText14(),
12.height, 12.height,
TxtField( TxtField(
hint: "Provider", hint: LocaleKeys.provider.tr(),
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "First Name", hint: LocaleKeys.firstName.tr(),
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Surname", hint:LocaleKeys.surname.tr(),
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Email", hint: LocaleKeys.email.tr(),
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Create Password", hint: LocaleKeys.createPassword.tr(),
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Confirm Password", hint:LocaleKeys.confirmPassword.tr(),
), ),
12.height, 12.height,
TxtField( TxtField(
hint: "Phone Number", hint: LocaleKeys.enterPhoneNumber.tr(),
), ),
50.height, 50.height,
"By creating an account you agree to our Terms of Service and Privacy Policy".toText14(), LocaleKeys.termsOfService.tr().toText14(),
16.height, 16.height,
ShowFillButton( ShowFillButton(
title: "Continue", title: LocaleKeys.continu.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
navigateWithName(context, AppRoutes.profile2); navigateWithName(context, AppRoutes.profile2);

@ -1,4 +1,5 @@
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/utils/utils.dart';
import 'package:car_provider_app/widgets/app_bar.dart'; import 'package:car_provider_app/widgets/app_bar.dart';
@ -6,13 +7,14 @@ import 'package:car_provider_app/widgets/extensions/int_extensions.dart';
import 'package:car_provider_app/widgets/extensions/string_extensions.dart'; import 'package:car_provider_app/widgets/extensions/string_extensions.dart';
import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class Profile2Page extends StatelessWidget { class Profile2Page extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Sign Up"), appBar: appBar(title: LocaleKeys.signUp.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
@ -21,8 +23,8 @@ class Profile2Page extends StatelessWidget {
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Complete Profile 2/3".toText16(), LocaleKeys.completeProfile2.tr().toText16(),
"licenses & certificatoins".toText14(), LocaleKeys.licensesAndCertifications.tr().toText14(),
12.height, 12.height,
TxtField( TxtField(
hint: "Commercial Record N.O", hint: "Commercial Record N.O",
@ -44,7 +46,7 @@ class Profile2Page extends StatelessWidget {
), ),
30.height, 30.height,
ShowFillButton( ShowFillButton(
title: "Save", title: LocaleKeys.save.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
navigateWithName(context, AppRoutes.profile3); navigateWithName(context, AppRoutes.profile3);

@ -1,3 +1,4 @@
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/widgets/app_bar.dart'; import 'package:car_provider_app/widgets/app_bar.dart';
import 'package:car_provider_app/widgets/dialog/dialogs.dart'; import 'package:car_provider_app/widgets/dialog/dialogs.dart';
import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart';
@ -6,13 +7,14 @@ import 'package:car_provider_app/widgets/extensions/int_extensions.dart';
import 'package:car_provider_app/widgets/extensions/string_extensions.dart'; import 'package:car_provider_app/widgets/extensions/string_extensions.dart';
import 'package:car_provider_app/widgets/show_fill_button.dart'; import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class Profile3Page extends StatelessWidget { class Profile3Page extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Sign Up"), appBar: appBar(title: LocaleKeys.signUp.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
@ -22,8 +24,8 @@ class Profile3Page extends StatelessWidget {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
"Complete Profile 3/3".toText16(), LocaleKeys.completeProfile3.tr().toText16(),
"Branch Info and Services".toText14(), LocaleKeys.branchInfo.tr().toText14(),
12.height, 12.height,
// DropdownField( // DropdownField(
// hint: "Country", // hint: "Country",
@ -34,21 +36,21 @@ class Profile3Page extends StatelessWidget {
// ), // ),
12.height, 12.height,
TxtField( TxtField(
hint: "Address", hint: LocaleKeys.address.tr(),
maxLines: 5, maxLines: 5,
), ),
12.height, 12.height,
"Select Location Map".toText14(), LocaleKeys.selectLocationMap.tr().toText14(),
12.height, 12.height,
Image.asset("assets/images/bn_map.png"), Image.asset("assets/images/bn_map.png"),
50.height, 50.height,
ShowFillButton( ShowFillButton(
title: "Save", title: LocaleKeys.save.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
showMDialog(context, showMDialog(context,
child: MessageDialog( child: MessageDialog(
title: "Profile Completed", title: LocaleKeys.profileCompleted.tr(),
)); ));
}, },
), ),

@ -2,6 +2,7 @@ import 'package:car_provider_app/api/api_client.dart';
import 'package:car_provider_app/api/client/user_api_client.dart'; import 'package:car_provider_app/api/client/user_api_client.dart';
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/basic_otp.dart'; import 'package:car_provider_app/models/user/basic_otp.dart';
import 'package:car_provider_app/models/user/country.dart'; import 'package:car_provider_app/models/user/country.dart';
import 'package:car_provider_app/models/user/register_user.dart'; import 'package:car_provider_app/models/user/register_user.dart';
@ -18,6 +19,7 @@ import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class RegisterPage extends StatelessWidget { class RegisterPage extends StatelessWidget {
@ -27,14 +29,14 @@ class RegisterPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Sign Up"), appBar: appBar(title: LocaleKeys.signUp.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Enter Phone Number".toText24(), LocaleKeys.enterPhoneNumber.tr().toText24(),
12.height, 12.height,
FutureBuilder<Role>( FutureBuilder<Role>(
future: UserApiClent().getRoles(), future: UserApiClent().getRoles(),
@ -71,14 +73,15 @@ class RegisterPage extends StatelessWidget {
}, },
), ),
TxtField( TxtField(
hint: "Enter Phone number to Register", hint:LocaleKeys.enterPhoneNumber.tr(),
//"Enter Phone number to Register",
onChanged: (v) { onChanged: (v) {
phoneNum = v; phoneNum = v;
}, },
), ),
50.height, 50.height,
ShowFillButton( ShowFillButton(
title: "Continue", title: LocaleKeys.continu.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
if (validation()) performBasicOtp(context); if (validation()) performBasicOtp(context);
@ -117,13 +120,16 @@ class RegisterPage extends StatelessWidget {
bool validation() { bool validation() {
bool isValid = true; bool isValid = true;
if (role == -1) { if (role == -1) {
Utils.showToast("Please select Provider Role"); Utils.showToast(LocaleKeys.selectProviderRole.tr());
//("Please select Provider Role");
isValid = false; isValid = false;
} else if (countryCode.isEmpty) { } else if (countryCode.isEmpty) {
Utils.showToast("Please select Country Code"); Utils.showToast(LocaleKeys.selectCountryCode.tr());
//("Please select Country Code");
isValid = false; isValid = false;
} else if (phoneNum.isEmpty) { } else if (phoneNum.isEmpty) {
Utils.showToast("Please add Phone No"); Utils.showToast(LocaleKeys.addPhoneNo.tr());
//("Please add Phone No");
isValid = false; isValid = false;
} }
return isValid; return isValid;

@ -1,4 +1,5 @@
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/utils/utils.dart';
import 'package:car_provider_app/widgets/app_bar.dart'; import 'package:car_provider_app/widgets/app_bar.dart';
@ -6,23 +7,24 @@ import 'package:car_provider_app/widgets/show_fill_button.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/extensions/int_extensions.dart'; import 'package:car_provider_app/extensions/int_extensions.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class RegisterSelectionPage extends StatelessWidget { class RegisterSelectionPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Log In"), appBar: appBar(title: LocaleKeys.login.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Welcome Message".toText24(), LocaleKeys.welcomeMessage.tr().toText24(),
mFlex(1), mFlex(1),
ShowFillButton( ShowFillButton(
title: "Log In", title: LocaleKeys.login.tr(),
// title: "Log In With Password", // title: "Log In With Password",
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
@ -39,7 +41,7 @@ class RegisterSelectionPage extends StatelessWidget {
// ), // ),
20.height, 20.height,
ShowFillButton( ShowFillButton(
title: "Sign Up", title: LocaleKeys.signUp.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
navigateWithName(context, AppRoutes.register); navigateWithName(context, AppRoutes.register);
@ -47,7 +49,7 @@ class RegisterSelectionPage extends StatelessWidget {
), ),
20.height, 20.height,
ShowFillButton( ShowFillButton(
title: "Forget Password", title: LocaleKeys.forgetPassword.tr(),
width: double.infinity, width: double.infinity,
onPressed: () { onPressed: () {
navigateWithName(context, AppRoutes.forgetPassword); navigateWithName(context, AppRoutes.forgetPassword);

@ -2,9 +2,11 @@ import 'dart:async';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/extensions/string_extensions.dart'; import 'package:car_provider_app/extensions/string_extensions.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
import 'package:car_provider_app/utils/utils.dart'; import 'package:car_provider_app/utils/utils.dart';
import 'package:car_provider_app/extensions/widget_extensions.dart'; import 'package:car_provider_app/extensions/widget_extensions.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class SplashPage extends StatelessWidget { class SplashPage extends StatelessWidget {
@ -19,11 +21,11 @@ class SplashPage extends StatelessWidget {
mFlex(5), mFlex(5),
"Logo".toText(fontSize: 45, isBold: true), "Logo".toText(fontSize: 45, isBold: true),
mFlex(3), mFlex(3),
"First Time Log In".toText(fontSize: 18, isBold: true).onPress(() { LocaleKeys.firstTimeLogIn.tr().toText(fontSize: 18, isBold: true).onPress(() {
navigateWithName(context, AppRoutes.registerSelection); navigateWithName(context, AppRoutes.registerSelection);
}), }),
mFlex(1), mFlex(1),
"Already Signed Up and Logged In".toText(fontSize: 18, isBold: true).onPress(() { LocaleKeys.alreadySigned.tr().toText(fontSize: 18, isBold: true).onPress(() {
navigateWithName(context, AppRoutes.loginVerification); navigateWithName(context, AppRoutes.loginVerification);
}), }),
mFlex(5), mFlex(5),

@ -3,6 +3,7 @@
import 'package:car_provider_app/classes/utils.dart'; import 'package:car_provider_app/classes/utils.dart';
import 'package:car_provider_app/config/constants.dart'; import 'package:car_provider_app/config/constants.dart';
import 'package:car_provider_app/config/routes.dart'; import 'package:car_provider_app/config/routes.dart';
import 'package:car_provider_app/generated/locale_keys.g.dart';
import 'package:car_provider_app/models/user/forget_password_otp_compare.dart'; import 'package:car_provider_app/models/user/forget_password_otp_compare.dart';
import 'package:car_provider_app/models/user/forget_password_otp_request.dart'; import 'package:car_provider_app/models/user/forget_password_otp_request.dart';
import 'package:car_provider_app/utils/navigator.dart'; import 'package:car_provider_app/utils/navigator.dart';
@ -16,6 +17,7 @@ import 'package:car_provider_app/widgets/dialog/dialogs.dart';
import 'package:car_provider_app/widgets/dialog/message_dialog.dart'; import 'package:car_provider_app/widgets/dialog/message_dialog.dart';
import 'package:car_provider_app/widgets/dialog/otp_dialog.dart'; import 'package:car_provider_app/widgets/dialog/otp_dialog.dart';
import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:car_provider_app/widgets/txt_field.dart';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -31,14 +33,14 @@ class VerifyPasswordPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: appBar(title: "Change Password"), appBar: appBar(title: LocaleKeys.changePassword.tr()),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
padding: EdgeInsets.all(40), padding: EdgeInsets.all(40),
child: Column( child: Column(
children: [ children: [
"Verify New Password".toText24(), LocaleKeys.verifyNewPassword.tr().toText24(),
mFlex(1), mFlex(1),
TxtField( TxtField(
hint: "966500000000", hint: "966500000000",
@ -62,7 +64,7 @@ class VerifyPasswordPage extends StatelessWidget {
(value) => showMDialog( (value) => showMDialog(
context, context,
child: MessageDialog( child: MessageDialog(
title: "Phone Number Verified", title: LocaleKeys.phoneNumberVerified.tr(),
onClick: () { onClick: () {
otpType=1; otpType=1;
navigateWithName(context, AppRoutes.confirmNewPasswordPage); navigateWithName(context, AppRoutes.confirmNewPasswordPage);
@ -91,7 +93,7 @@ class VerifyPasswordPage extends StatelessWidget {
(value) => showMDialog( (value) => showMDialog(
context, context,
child: MessageDialog( child: MessageDialog(
title: "Phone Number Verified", title: LocaleKeys.phoneNumberVerified.tr(),
onClick: () { onClick: () {
otpType=2; otpType=2;
navigateWithName(context, AppRoutes.confirmNewPasswordPage); navigateWithName(context, AppRoutes.confirmNewPasswordPage);

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'colors.dart'; import 'colors.dart';
class AppTheme { class AppTheme {
static getTheme() => ThemeData( static getTheme(isArabic) => ThemeData(
// This is the theme of your application. // This is the theme of your application.
// //
// Try running your application with "flutter run". You'll see the // Try running your application with "flutter run". You'll see the

@ -23,6 +23,7 @@ class TxtField extends StatelessWidget {
bool isNeedBorder; bool isNeedBorder;
bool? isPasswordEnabled; bool? isPasswordEnabled;
Function(String)? onChanged; Function(String)? onChanged;
TextInputType? keyboardType;
TxtField({ TxtField({
@ -42,6 +43,7 @@ class TxtField extends StatelessWidget {
this.isNeedBorder=true, this.isNeedBorder=true,
this.onChanged, this.onChanged,
this.isPasswordEnabled, this.isPasswordEnabled,
this.keyboardType,
}); });
@override @override
@ -62,6 +64,7 @@ class TxtField extends StatelessWidget {
elevation: elevation, elevation: elevation,
margin: isSidePaddingZero?EdgeInsets.zero:null, margin: isSidePaddingZero?EdgeInsets.zero:null,
child: TextField( child: TextField(
keyboardType: TextInputType.number,
autofocus: false, autofocus: false,
controller: controller, controller: controller,
enabled: isNeedClickAll == true ? false : true, enabled: isNeedClickAll == true ? false : true,

@ -301,13 +301,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.11" version: "0.12.11"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.3"
meta: meta:
dependency: transitive dependency: transitive
description: description:
@ -578,7 +571,7 @@ packages:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.8" version: "0.4.3"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:

@ -0,0 +1,132 @@
{
"firstTimeLogIn": "تسجيل الدخول لأول مره",
"signUp": "تسجيل دخول",
"changeMobile": "تغيير رقم الجوال",
"notifications": "الاشعارات",
"general": "عام",
"defineLicences": "تحديد الرخص",
"dealershipSettings": "اعدادات البيع",
"changePassword": "تغيير كلمة المرور",
"retrievePassword" : "استرجاع كلمة المرور",
"changeEmail": "تغيير الايميل",
"verify": "تحقق",
"signOut": "تسجيل خروج",
"enterEmail": "ادخل الايميل",
"enterNewEmail": "ادخل ايميل جديد",
"enterCurrentPassword": "كلمة المرور الحاليه",
"enterNewPassword": "كلمة المرور الجديده",
"enterOldPassword": "كلمة المرور القديمه",
"confirm": "تأكيد",
"enterNewPhoneNumber": "رقم جوال جديد",
"completeProfile": "الملف الشخصي",
"continu": "استمرار",
"confirmPassword": "تأكيد كلمة المرور",
"createPassword": "انشاء كلمة مرور جديده",
"email": "ايميل",
"firstName": "الأسم الأول *",
"surname": "اسم العائله *",
"confirmPass": "تأكيد كلمة المرور *",
"createPass": "انشاء كلمة مرور جديده *",
"newPassword": " كلمة مرور جديده",
"forgetPassword": "نسيت كلمة المرور",
"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" : "اضف الهاتف",
"onlyProviderApp": "نأسف هذا التطبيق فقط لمقدمي الخدمات",
"imageUploaded" : "تم تحميل الصوره",
"fileLarger" : "1KB حجم الملف اكبر من",
"account" : "الحساب",
"edit" : "تعديل",
"imageDeleted" : "تم حذف الصوره",
"dashboard" : "الصفحه الرئيسيه",
"pickAddress" : "اختر العنوان",
"pickLocation" : "اختر الموقع",
"save" : "حفظ",
"defineServices" : "تحديد الخدمات",
"selectBranch " : "اختر الفرع",
"selectServiceCategory" : "اختر فئة الخدمة",
"defineBranches" : "تحديد الفروع",
"defineProviders":"تحديد الموفرين",
"closeAccount": "اغلاق الحساب",
"createBranch" : "انشاء فرع",
"address": "العنوان",
"branchDescription": "وصف الفرع",
"branchName": "اسم الفرع",
"chooseCity": "اختر المدينه",
"chooseCountry": "اختر الدوله",
"selectAttachment":"اختيار مرفق",
"somethingWrong" : "هناك خطأ ما",
"documentsUploaded" : "تم ارفاق الملف بنجاح",
"update": "تحديث",
"termsOfService":"من خلال إنشاء حساب فإنك توافق على شروط الخدمة و\n سياسة الخصوصية",
"branchInfo": "معلومات الفرع و الخدمات",
"profileCompleted": "الملف الشخصي مكتمل",
"selectLocationMap": "اختر الموقع",
"licensesAndCertifications" : "الرخص و الشهادات",
"completeProfile1" : "اكمل الملف الشخصي 1/3",
"completeProfile2" : "اكمل الملف الشخصي 2/3",
"completeProfile3" : "اكمل الملف الشخصي 3/3",
"userInformation": "معلومات المتسخدم",
"provider": "Provider",
"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"
}

@ -1,4 +1,98 @@
{ {
"firstTimeLogIn" : "First Time Log In",
"signUp": "Sing 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",
"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",
"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",
"pickAddress" : "Pick Address",
"pickLocation" : "Pick Location",
"save" : "Save",
"defineServices" : "Define Services",
"selectBranch " : "Select Branch ",
"selectServiceCategory" : "Select Service Category",
"defineBranches" : "Define Branches",
"defineProviders":"Define Providers",
"closeAccount": "Close Account",
"createBranch" : "Create Branch",
"address": "Address",
"branchDescription": "Branch Description",
"branchName": "Branch Name",
"chooseCity": "Choose City",
"chooseCountry": "Choose Country",
"selectAttachment":"Select Attachment",
"somethingWrong" : "Something went wrong",
"documentsUploaded" : "Documents uploaded successfully",
"update": "Update",
"termsOfService":"By creating an account you agree to our Terms of Service and\n Privacy Policy",
"branchInfo": "Branch Info and Services",
"profileCompleted": "Profile is Completed",
"selectLocationMap": "Select Location Map",
"licensesAndCertifications" : "licenses & certifications",
"completeProfile1" : "Complete Profile 1/3",
"completeProfile2" : "Complete Profile 2/3",
"completeProfile3" : "Complete Profile 3/3",
"userInformation": "User Information",
"provider": "Provider",
"title": "Hello", "title": "Hello",
"msg": "Hello {} in the {} world ", "msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language", "msg_named": "{} are written in the {lang} language",

@ -1,38 +0,0 @@
{
"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"
}
Loading…
Cancel
Save