Merge branch 'mirza_development' into 'master'

Mirza development

See merge request mirza.shafique/car_common_app!4
merge-requests/5/merge
Mirza Shafique 2 years ago
commit 877907832d

@ -146,6 +146,23 @@
"upcoming_appointment": "الموعد القادم",
"my_service_providers": "مزودي الخدمة الجدد",
"appointment_details": "تفاصيل الموعد",
"no_city_available": "لا توجد مدينة متاحة لهذا البلد",
"branch_created": "تم إنشاء الفرع بنجاح",
"branch_updated": "تم تحديث الفرع بنجاح",
"branch_deleted": "تم حذف الفرع بنجاح",
"dashboard_main": "لوحة القيادة / الصفحة الرئيسية",
"logo_brand": "الشعار / العلامة التجارية",
"remove": "إزالة",
"no_branch": "لم يتم إضافة فرع حتى الآن",
"login_once": "الرجاء تسجيل الدخول مرة واحدة",
"defineLicenese": "تحميل التراخيص والشهادات",
"description": "وصف",
"attachFile": "أرفق ملف",
"branchLocation": "معلومات الفرع والموقع",
"tapToEdit": "انقر للتعديل",
"myServiceBranches": "فروع خدمتي",
"enter_licence_detail": "الرجاء إدخال تفاصيل السجلات التجارية وإرفاق صور الترخيص",
"country": "بلد",
"city": "مدينة",
"editServices": "تحرير الخدمات"
}

@ -145,5 +145,24 @@
"recommended_ads": "Recommended Ads",
"upcoming_appointment": "Upcoming Appointment",
"my_service_providers": "My Recent Service Providers",
"appointment_details": "Appointment Details"
"appointment_details": "Appointment Details",
"no_city_available": "No City Available for this country",
"branch_created": "Branch is successfully created",
"branch_updated": "Branch is successfully Updated",
"branch_deleted": "Branch is successfully Deleted",
"dashboard_main": "Dashboard/Main Page",
"logo_brand": "Logo/Brand",
"remove": "Remove",
"no_branch": "No Branch Added Yet",
"login_once": "Please login once",
"defineLicenese": "Upload Licenses and Certificates",
"description": "Description",
"attachFile": "Attach File",
"branchLocation": "Branch info and Location",
"tapToEdit": "Tap to edit",
"myServiceBranches": "My Service Branches",
"enter_licence_detail": "Please enter the detail for commercial records and attach the license images",
"country": "country",
"city": "city",
"editServices": "Edit Services"
}

@ -65,6 +65,10 @@ class GlobalConsts {
class MyAssets {
//Banner
static String carBanner = "assets/images/bn_car.jpeg";
//NavBar Icons
static String homeIcon = "assets/icons/home_icon.svg";
static String announcementIcon = "assets/icons/anouncement_icon.svg";

@ -21,6 +21,7 @@ import 'package:mc_common_app/views/user/login_with_password_page.dart';
// import 'package:mc_common_app/views/user/profile/profile_2_page.dart';
// import 'package:mc_common_app/views/user/profile/profile_3_page.dart';
import 'package:mc_common_app/views/user/register_page.dart';
import 'package:mc_common_app/views/user/register_provider_page.dart';
import 'package:mc_common_app/views/user/register_selection_page.dart';
import 'package:mc_common_app/views/splash/splash_page.dart';
import 'package:mc_common_app/views/user/vertify_password_page.dart';
@ -31,7 +32,8 @@ class AppRoutes {
static const String splash = "/splash";
static const String registerSelection = "/registerSelection";
static const String loginVerifyAccount = "/loginVerifyAccount";
static const String register = "/register";
static const String registerCustomer = "/registerCustomer";
static const String registerProvider= "/registerProvider";
static const String forgetPassword = "/forgetPassword";
static const String loginVerification = "/loginVerification";
static const String loginWithPassword = "/loginWithPassword";
@ -59,7 +61,8 @@ class AppRoutes {
splash: (context) => const SplashPage(),
registerSelection: (context) => RegisterSelectionPage(),
loginVerifyAccount: (context) => LoginVerifyAccountPage(),
register: (context) => RegisterPage(),
registerCustomer: (context) => RegisterCustomerPage(),
registerProvider: (context) => RegisterProviderPage(),
forgetPassword: (context) => ForgetPasswordPage(),
loginVerification: (context) => const LoginVerificationPage(),
loginWithPassword: (context) => LoginWithPassword(),

@ -1,6 +1,5 @@
import 'dart:convert';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart';
@ -24,6 +23,7 @@ import 'package:mc_common_app/models/user/register_user.dart';
import 'package:mc_common_app/models/user/user.dart';
import 'package:mc_common_app/models/user/verify_email.dart';
import 'package:mc_common_app/repositories/user_repo.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/utils/shared_prefrence.dart';
import 'package:mc_common_app/utils/utils.dart';
@ -320,7 +320,7 @@ class UserVM extends BaseVM {
}
}
Future<void> performBasicOtpLoginSelectionPage(BuildContext context, {required String userToken}) async {
Future<void> performBasicOtpLoginSelectionPage(BuildContext context, {required String userToken, required AppType appType}) async {
Utils.showLoading(context);
LoginPasswordRespModel user = await userRepo.loginV2OTP(userToken, "1");
Utils.hideLoading(context);
@ -334,6 +334,20 @@ class UserVM extends BaseVM {
RegisterUserRespModel verifiedUser = RegisterUserRespModel.fromJson(jsonDecode(response2.body));
if (verifiedUser.messageStatus == 1) {
User user = User.fromJson(jsonDecode(response2.body));
if (appType == AppType.provider) {
if (user.data!.userInfo!.roleId == 5 || user.data!.userInfo!.roleId == 6) {
AppState().setUser = user;
SharedPrefManager.setUserToken(user.data!.accessToken ?? "");
SharedPrefManager.setUserId(user.data!.userInfo!.userId ?? "");
SharedPrefManager.setRefreshToken(user.data!.refreshToken ?? "");
SharedPrefManager.setData(jsonEncode(user.data!.userInfo!.toJson()));
navigateReplaceWithName(context, AppRoutes.dashboard);
} else {
Utils.showToast("LocaleKeys.onlyProviderApp.tr()");
//("Sorry, Only Customer's can log in this app");
}
} else if (user.data!.userInfo!.roleId == 4) {
if (user.data!.userInfo!.roleId == 4) {
AppState().setUser = user;
SharedPrefManager.setUserToken(user.data!.accessToken ?? "");
@ -342,8 +356,8 @@ class UserVM extends BaseVM {
SharedPrefManager.setData(jsonEncode(user.data!.userInfo!.toJson()));
navigateReplaceWithName(context, AppRoutes.dashboard);
} else {
Utils.showToast
("Sorry, Only Customer's can log in this app");
Utils.showToast("Sorry, Only Customer's can log in this app");
}
}
} else {
Utils.showToast(verifiedUser.message ?? "");

@ -18,6 +18,7 @@ class LoginMethodSelectionPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
UserVM userVM = context.read<UserVM>();
return Scaffold(
appBar: CustomAppBar( isRemoveBackButton: true, title: LocaleKeys.log_in.tr()),
body: Container(
@ -36,7 +37,7 @@ class LoginMethodSelectionPage extends StatelessWidget {
Expanded(
child: ShowImageButton(
onClick: () {
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken);
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken,appType: userVM.currentAppType);
},
title: LocaleKeys.fingerPrint.tr(),
icon: icons + "ic_fingerprint.svg",
@ -46,7 +47,7 @@ class LoginMethodSelectionPage extends StatelessWidget {
Expanded(
child: ShowImageButton(
onClick: () {
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken);
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken,appType: userVM.currentAppType);
},
title: LocaleKeys.faceRecognition.tr(),
icon: icons + "ic_face.svg",
@ -60,7 +61,7 @@ class LoginMethodSelectionPage extends StatelessWidget {
Expanded(
child: ShowImageButton(
onClick: () {
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken);
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken,appType: userVM.currentAppType);
},
title: LocaleKeys.SMS.tr(),
icon: icons + "ic_sms.svg",
@ -71,7 +72,7 @@ class LoginMethodSelectionPage extends StatelessWidget {
child: ShowImageButton(
onClick: () {
// navigateWithName(context, AppRoutes.dashboard);
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken);
userVM.performBasicOtpLoginSelectionPage(context, userToken: userToken,appType: userVM.currentAppType);
},
title: LocaleKeys.whatsapp.tr(),
icon: icons + "ic_whatsapp.svg",

@ -12,14 +12,14 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../theme/colors.dart';
class RegisterPage extends StatefulWidget {
const RegisterPage({Key? key}) : super(key: key);
class RegisterCustomerPage extends StatefulWidget {
const RegisterCustomerPage({Key? key}) : super(key: key);
@override
State<RegisterPage> createState() => _RegisterPageState();
State<RegisterCustomerPage> createState() => _RegisterPageState();
}
class _RegisterPageState extends State<RegisterPage> {
class _RegisterPageState extends State<RegisterCustomerPage> {
String phoneNum = "", countryCode = "";
int role = 4, countryId = -1;

@ -18,14 +18,14 @@ import 'package:mc_common_app/widgets/tab/role_type_tab.dart';
import 'package:provider/provider.dart';
import '../../theme/colors.dart';
class RegisterPage extends StatefulWidget {
const RegisterPage({Key? key}) : super(key: key);
class RegisterProviderPage extends StatefulWidget {
const RegisterProviderPage({Key? key}) : super(key: key);
@override
State<RegisterPage> createState() => _RegisterPageState();
State<RegisterProviderPage> createState() => _RegisterPageState();
}
class _RegisterPageState extends State<RegisterPage> {
class _RegisterPageState extends State<RegisterProviderPage> {
String phoneNum = "", countryCode = "";
int role = -1, countryId = -1;

@ -2,12 +2,15 @@ import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/show_fill_button.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import '../../theme/colors.dart';
@ -16,6 +19,7 @@ class RegisterSelectionPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
UserVM userVM = Provider.of(context, listen: false);
return Scaffold(
body: Container(
width: double.infinity,
@ -57,7 +61,11 @@ class RegisterSelectionPage extends StatelessWidget {
isFlatButton: true,
txtColor: Colors.black,
onPressed: () {
navigateWithName(context, AppRoutes.register);
if (userVM.currentAppType == AppType.customer) {
navigateWithName(context, AppRoutes.registerCustomer);
} else {
navigateWithName(context, AppRoutes.registerProvider);
}
},
),
10.height,

@ -71,6 +71,7 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
final bool isRemoveBackButton;
final String profileImageUrl;
final bool isDrawerEnabled;
final VoidCallback? onTap;
const CustomAppBar({
Key? key,
@ -84,6 +85,7 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
this.elevation,
this.isTitleCenter,
this.titleColor,
this.onTap,
}) : super(key: key);
@override
@ -94,7 +96,9 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
elevation: elevation ?? 0,
centerTitle: isTitleCenter ?? true,
leading: isDrawerEnabled
? Row(
? InkWell(
onTap: onTap,
child: Row(
children: [
Image.asset(
profileImageUrl,
@ -105,7 +109,8 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
10.width,
SvgPicture.asset(MyAssets.dashboardDrawerIcon),
],
).paddingOnly(left: 21)
).paddingOnly(left: 21),
)
: isRemoveBackButton
? null
: IconButton(
@ -121,5 +126,5 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
}
@override
Size get preferredSize => const Size.fromHeight(80);
Size get preferredSize => const Size.fromHeight(55);
}

Loading…
Cancel
Save