aamir_dev
Faiz Hashmi 1 year ago
parent f8514aaf7b
commit 2215bbd63b

@ -793,5 +793,9 @@
"companyNameMandatory": "اسم الشركة إلزامي", "companyNameMandatory": "اسم الشركة إلزامي",
"connectionProblem": "مشكلة في الاتصال", "connectionProblem": "مشكلة في الاتصال",
"pleaseCheckConnection": "يرجى التحقق من اتصالك بالإنترنت والمحاولة مرة أخرى", "pleaseCheckConnection": "يرجى التحقق من اتصالك بالإنترنت والمحاولة مرة أخرى",
"ok": "نعم" "ok": "نعم",
"continueAsGuest": "الاستمرار كضيف",
"loginToViewAppointments": "الرجاء تسجيل الدخول لعرض المواعيد",
"itemType": "غرض"
} }

@ -791,5 +791,8 @@
"addServiceDetails": "Add service details", "addServiceDetails": "Add service details",
"connectionProblem": "Connection Problem", "connectionProblem": "Connection Problem",
"pleaseCheckConnection": "Please check your internet connection and try again.", "pleaseCheckConnection": "Please check your internet connection and try again.",
"ok": "Ok" "ok": "Ok",
"continueAsGuest": "Continue as a guest",
"loginToViewAppointments": "Please Login to View Appointments",
"itemType": "Item Type"
} }

@ -52,9 +52,7 @@ import 'package:mc_common_app/widgets/image_viewer/image_viewer_screen.dart';
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>(); final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
class AppRoutes { class AppRoutes {
//User //User
static const String splash = "/splash"; static const String splash = "/splash";
static const String registerSelection = "/registerSelection"; static const String registerSelection = "/registerSelection";
@ -187,28 +185,12 @@ class AppRoutes {
registerProvider: (context) => const RegisterProviderPage(), registerProvider: (context) => const RegisterProviderPage(),
forgetPassword: (context) => const ForgetPasswordPage(), forgetPassword: (context) => const ForgetPasswordPage(),
loginVerification: (context) => const LoginVerificationPage(), loginVerification: (context) => const LoginVerificationPage(),
loginWithPassword: (context) => const LoginWithPassword(), loginWithPassword: (context) => LoginWithPassword(isRemoveBackButton: (ModalRoute.of(context)!.settings.arguments ?? true) as bool),
loginMethodSelection: (context) => loginMethodSelection: (context) => LoginMethodSelectionPage(ModalRoute.of(context)!.settings.arguments as String),
LoginMethodSelectionPage(ModalRoute completeProfile: (context) => CompleteProfilePage(ModalRoute.of(context)!.settings.arguments as RegisterUserRespModel),
.of(context)!
.settings
.arguments as String),
completeProfile: (context) =>
CompleteProfilePage(ModalRoute
.of(context)!
.settings
.arguments as RegisterUserRespModel),
verifyPassword: (context) => VerifyPasswordPage(), verifyPassword: (context) => VerifyPasswordPage(),
confirmNewPasswordPage: (context) => confirmNewPasswordPage: (context) => ConfirmNewPasswordPage(ModalRoute.of(context)!.settings.arguments as String),
ConfirmNewPasswordPage(ModalRoute forgetPasswordMethodPage: (context) => ForgetPasswordMethodPage(ModalRoute.of(context)!.settings.arguments as String),
.of(context)!
.settings
.arguments as String),
forgetPasswordMethodPage: (context) =>
ForgetPasswordMethodPage(ModalRoute
.of(context)!
.settings
.arguments as String),
changeMobilePage: (context) => ChangeMobilePage(), changeMobilePage: (context) => ChangeMobilePage(),
changeEmailPage: (context) => const ChangeEmailPage(), changeEmailPage: (context) => const ChangeEmailPage(),
updateUserDetails: (context) => const UpdateUserDetails(), updateUserDetails: (context) => const UpdateUserDetails(),
@ -221,66 +203,30 @@ class AppRoutes {
providerLicensePage: (context) => const ProviderLicensePage(), providerLicensePage: (context) => const ProviderLicensePage(),
// common pages // common pages
AppRoutes.adsDetailView: (context) => AppRoutes.adsDetailView: (context) => AdsDetailView(adDetails: ModalRoute.of(context)!.settings.arguments as AdDetailsModel),
AdsDetailView(adDetails: ModalRoute
.of(context)!
.settings
.arguments as AdDetailsModel),
AppRoutes.createAdView: (context) => const CreateAdView(), AppRoutes.createAdView: (context) => const CreateAdView(),
AppRoutes.adsFilterView: (context) => const AdsFilterView(), AppRoutes.adsFilterView: (context) => const AdsFilterView(),
AppRoutes.selectAdTypeView: (context) => AppRoutes.selectAdTypeView: (context) => SelectAdTypeView(arguments: ModalRoute.of(context)!.settings.arguments as List<dynamic>),
SelectAdTypeView(arguments: ModalRoute AppRoutes.chatView: (context) => ChatView(chatViewArguments: ModalRoute.of(context)!.settings.arguments as ChatViewArguments),
.of(context)! AppRoutes.adsBuyerChatsListView: (context) => AdsBuyerChatsView(buyersListViewArguments: ModalRoute.of(context)!.settings.arguments as List<BuyersChatForAdsModel>),
.settings
.arguments as List<dynamic>),
AppRoutes.chatView: (context) =>
ChatView(chatViewArguments: ModalRoute
.of(context)!
.settings
.arguments as ChatViewArguments),
AppRoutes.adsBuyerChatsListView: (context) =>
AdsBuyerChatsView(buyersListViewArguments: ModalRoute
.of(context)!
.settings
.arguments as List<BuyersChatForAdsModel>),
AppRoutes.settingOptionsFaqs: (context) => const SettingOptionsFAQs(), AppRoutes.settingOptionsFaqs: (context) => const SettingOptionsFAQs(),
AppRoutes.settingOptionsContactUs: (context) => const SettingOptionsContactUs(), AppRoutes.settingOptionsContactUs: (context) => const SettingOptionsContactUs(),
AppRoutes.settingOptionsAppInfo: (context) => const SettingOptionsAppInfo(), AppRoutes.settingOptionsAppInfo: (context) => const SettingOptionsAppInfo(),
AppRoutes.settingOptionsTermsAndConditions: (context) => const SettingOptionsTermsAndConditions(), AppRoutes.settingOptionsTermsAndConditions: (context) => const SettingOptionsTermsAndConditions(),
AppRoutes.settingOptionsInviteFriends: (context) => const SettingOptionsInviteFriends(), AppRoutes.settingOptionsInviteFriends: (context) => const SettingOptionsInviteFriends(),
AppRoutes.paymentMethodsView: (context) => AppRoutes.paymentMethodsView: (context) => PaymentMethodsView(paymentType: ModalRoute.of(context)!.settings.arguments as PaymentTypes),
PaymentMethodsView(paymentType: ModalRoute
.of(context)!
.settings
.arguments as PaymentTypes),
//Requests //Requests
AppRoutes.requestsDetailPage: (context) => AppRoutes.requestsDetailPage: (context) => RequestDetailPage(requestDetailPageArguments: ModalRoute.of(context)!.settings.arguments as RequestDetailPageArguments),
RequestDetailPage(requestDetailPageArguments: ModalRoute
.of(context)!
.settings
.arguments as RequestDetailPageArguments),
AppRoutes.createRequestPage: (context) => const CreateRequestPage(), AppRoutes.createRequestPage: (context) => const CreateRequestPage(),
AppRoutes.offersListPage: (context) => AppRoutes.offersListPage: (context) => OfferListPage(requestId: ModalRoute.of(context)!.settings.arguments as int),
OfferListPage(requestId: ModalRoute
.of(context)!
.settings
.arguments as int),
AppRoutes.reviewRequestOffer: (context) => const ReviewRequestOffer(), AppRoutes.reviewRequestOffer: (context) => const ReviewRequestOffer(),
AppRoutes.requestsFilterView: (context) => const RequestsFilterView(), AppRoutes.requestsFilterView: (context) => const RequestsFilterView(),
//MediaViewer //MediaViewer
AppRoutes.mediaViewerScreen: (context) => AppRoutes.mediaViewerScreen: (context) => MediaViewerScreen(images: ModalRoute.of(context)!.settings.arguments as List<MessageImageModel>),
MediaViewerScreen(images: ModalRoute
.of(context)!
.settings
.arguments as List<MessageImageModel>),
// ChatsList Provider // ChatsList Provider
AppRoutes.generalChatsListForProvider: (context) => AppRoutes.generalChatsListForProvider: (context) => OfferListPage(requestId: ModalRoute.of(context)!.settings.arguments as int),
OfferListPage(requestId: ModalRoute
.of(context)!
.settings
.arguments as int),
//Shipping //Shipping
AppRoutes.shippingManagementView: (context) => const ShippingManagementView(), AppRoutes.shippingManagementView: (context) => const ShippingManagementView(),

@ -6,7 +6,7 @@ import 'dart:ui';
import 'package:easy_localization/easy_localization.dart' show AssetLoader; import 'package:easy_localization/easy_localization.dart' show AssetLoader;
class CodegenLoader extends AssetLoader { class CodegenLoader extends AssetLoader{
const CodegenLoader(); const CodegenLoader();
@override @override
@ -14,7 +14,7 @@ class CodegenLoader extends AssetLoader {
return Future.value(mapLocales[locale.toString()]); return Future.value(mapLocales[locale.toString()]);
} }
static const Map<String, dynamic> ar_SA = { static const Map<String,dynamic> ar_SA = {
"firstTimeLogIn": "تسجيل الدخول لأول مره", "firstTimeLogIn": "تسجيل الدخول لأول مره",
"signUp": "التسجيل", "signUp": "التسجيل",
"changeMobile": "تغيير رقم الجوال", "changeMobile": "تغيير رقم الجوال",
@ -98,7 +98,11 @@ class CodegenLoader extends AssetLoader {
"msg_named": "{} are written in the {lang} language", "msg_named": "{} are written in the {lang} language",
"clickMe": "انقر فوق لي", "clickMe": "انقر فوق لي",
"profile": { "profile": {
"reset_password": {"label": "إعادة تعيين كلمة المرور", "username": "اسم المستخدم", "password": "كلمة المرور"} "reset_password": {
"label": "إعادة تعيين كلمة المرور",
"username": "اسم المستخدم",
"password": "كلمة المرور"
}
}, },
"clicked": { "clicked": {
"zero": "You clicked {} times!", "zero": "You clicked {} times!",
@ -108,11 +112,21 @@ class CodegenLoader extends AssetLoader {
"many": "You clicked {} times!", "many": "You clicked {} times!",
"other": "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 : {} "}, "amount": {
"zero": "Your amount : {} ",
"one": "Your amount : {} ",
"two": "Your amount : {} ",
"few": "Your amount : {} ",
"many": "Your amount : {} ",
"other": "Your amount : {} "
},
"gender": { "gender": {
"male": "Hi man ;) ", "male": "Hi man ;) ",
"female": "Hello girl :)", "female": "Hello girl :)",
"with_arg": {"male": "Hi man ;) {}", "female": "Hello girl :) {}"} "with_arg": {
"male": "Hi man ;) {}",
"female": "Hello girl :) {}"
}
}, },
"reset_locale": "إعادة ضبط اللغة", "reset_locale": "إعادة ضبط اللغة",
"welcomeDes": "أنت مكان واحد لكل ما تحتاجه سيارتك", "welcomeDes": "أنت مكان واحد لكل ما تحتاجه سيارتك",
@ -775,8 +789,7 @@ class CodegenLoader extends AssetLoader {
"selectBranchToCopyServices": "حدد الفرع لنسخ العناصر الخاصة بهم إلى هذا الفرع. يمكنك تعديل الاختيار في أي وقت.", "selectBranchToCopyServices": "حدد الفرع لنسخ العناصر الخاصة بهم إلى هذا الفرع. يمكنك تعديل الاختيار في أي وقت.",
"tapToSeeItems": "اضغط لرؤية العناصر", "tapToSeeItems": "اضغط لرؤية العناصر",
"tapToSelect": "اضغط للاختيار", "tapToSelect": "اضغط للاختيار",
"noteCopyItemsExplanation": "noteCopyItemsExplanation": "ملاحظة: ستتمكن من نسخ العناصر من خدمة إلى أخرى في الفئة المحددة. يجب عليك إنشاء الخدمات أولاً ويجب أن تكون معتمدة. ثم ستتمكن من الحصول على الخدمات المتاحة التي يمكنك نسخ جميع العناصر منها أو تحديد العناصر التي تريد نسخها.",
"ملاحظة: ستتمكن من نسخ العناصر من خدمة إلى أخرى في الفئة المحددة. يجب عليك إنشاء الخدمات أولاً ويجب أن تكون معتمدة. ثم ستتمكن من الحصول على الخدمات المتاحة التي يمكنك نسخ جميع العناصر منها أو تحديد العناصر التي تريد نسخها.",
"requestCreatedOn": "تم إنشاء الطلب في", "requestCreatedOn": "تم إنشاء الطلب في",
"online": "عبر الإنترنت", "online": "عبر الإنترنت",
"deliveryStatus": "حالة توصيلك / الشحن هي:", "deliveryStatus": "حالة توصيلك / الشحن هي:",
@ -788,17 +801,20 @@ class CodegenLoader extends AssetLoader {
"tapToView": "انقر لعرض", "tapToView": "انقر لعرض",
"noServicesAvailableToCopy": "لا توجد خدمات متاحة في هذا الفرع لنسخها.", "noServicesAvailableToCopy": "لا توجد خدمات متاحة في هذا الفرع لنسخها.",
"copySelectedItems": "نسخ العناصر المحددة", "copySelectedItems": "نسخ العناصر المحددة",
"companyNameMandatory": "اسم الشركة إلزامي",
"noOfInvites": "عدد الدعوات", "noOfInvites": "عدد الدعوات",
"noSpecialServicesAvailable": "لا توجد خدمات خاصة متاحة للمنطقة المحددة.", "noSpecialServicesAvailable": "لا توجد خدمات خاصة متاحة للمنطقة المحددة.",
"customService": "الخدمة المخصصة", "customService": "الخدمة المخصصة",
"selectServiceDetails": "اختر تفاصيل الخدمة", "selectServiceDetails": "اختر تفاصيل الخدمة",
"addServiceDetails": "أضف تفاصيل الخدمة", "addServiceDetails": "أضف تفاصيل الخدمة",
"companyNameMandatory": "اسم الشركة إلزامي",
"connectionProblem": "مشكلة في الاتصال", "connectionProblem": "مشكلة في الاتصال",
"pleaseCheckConnection": "يرجى التحقق من اتصالك بالإنترنت والمحاولة مرة أخرى", "pleaseCheckConnection": "يرجى التحقق من اتصالك بالإنترنت والمحاولة مرة أخرى",
"ok": "نعم" "ok": "نعم",
}; "continueAsGuest": "الاستمرار كضيف",
static const Map<String, dynamic> en_US = { "loginToViewAppointments": "الرجاء تسجيل الدخول لعرض المواعيد",
"itemType": "غرض"
};
static const Map<String,dynamic> en_US = {
"firstTimeLogIn": "First Time Log In", "firstTimeLogIn": "First Time Log In",
"signUp": "Sign Up", "signUp": "Sign Up",
"changeMobile": "Change Mobile", "changeMobile": "Change Mobile",
@ -882,7 +898,11 @@ class CodegenLoader extends AssetLoader {
"msg_named": "{} are written in the {lang} language", "msg_named": "{} are written in the {lang} language",
"clickMe": "Click me", "clickMe": "Click me",
"profile": { "profile": {
"reset_password": {"label": "Reset Password", "username": "Username", "password": "password"} "reset_password": {
"label": "Reset Password",
"username": "Username",
"password": "password"
}
}, },
"clicked": { "clicked": {
"zero": "You clicked {} times!", "zero": "You clicked {} times!",
@ -892,11 +912,21 @@ class CodegenLoader extends AssetLoader {
"many": "You clicked {} times!", "many": "You clicked {} times!",
"other": "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 : {} "}, "amount": {
"zero": "Your amount : {} ",
"one": "Your amount : {} ",
"two": "Your amount : {} ",
"few": "Your amount : {} ",
"many": "Your amount : {} ",
"other": "Your amount : {} "
},
"gender": { "gender": {
"male": "Hi man ;) ", "male": "Hi man ;) ",
"female": "Hello girl :)", "female": "Hello girl :)",
"with_arg": {"male": "Hi man ;) {}", "female": "Hello girl :) {}"} "with_arg": {
"male": "Hi man ;) {}",
"female": "Hello girl :) {}"
}
}, },
"reset_locale": "Reset Language", "reset_locale": "Reset Language",
"welcomeDes": "You one stop place all your car needs", "welcomeDes": "You one stop place all your car needs",
@ -1542,8 +1572,7 @@ class CodegenLoader extends AssetLoader {
"selectBranchToCopyServices": "Select the branch to copy their items to this branch. You can modify the selection at any time.", "selectBranchToCopyServices": "Select the branch to copy their items to this branch. You can modify the selection at any time.",
"tapToSelect": "Tap to select", "tapToSelect": "Tap to select",
"tapToSeeItems": "Tap to see items", "tapToSeeItems": "Tap to see items",
"noteCopyItemsExplanation": "noteCopyItemsExplanation": "Note: You will be able to copy items from one service to another in a selected category. You must create the services first and they should be approved. Then you will be able to get the available services from which you can copy all or selected items.",
"Note: You will be able to copy items from one service to another in a selected category. You must create the services first and they should be approved. Then you will be able to get the available services from which you can copy all or selected items.",
"requestCreatedOn": "Request created on", "requestCreatedOn": "Request created on",
"online": "Online", "online": "Online",
"searchByCreatedDate": "Search By Created Date", "searchByCreatedDate": "Search By Created Date",
@ -1571,14 +1600,17 @@ class CodegenLoader extends AssetLoader {
"noServicesAvailableToCopy": "There are no services available in this branch to copy.", "noServicesAvailableToCopy": "There are no services available in this branch to copy.",
"copySelectedItems": "Copy Selected Items", "copySelectedItems": "Copy Selected Items",
"companyNameMandatory": "Company Name is mandatory", "companyNameMandatory": "Company Name is mandatory",
"connectionProblem": "Connection Problem",
"pleaseCheckConnection": "Please check your internet connection and try again.",
"ok": "Ok",
"noOfInvites": "No of invites", "noOfInvites": "No of invites",
"noSpecialServicesAvailable": "There are no special services available for the selected region.", "noSpecialServicesAvailable": "There are no special services available for the selected region.",
"customService": "Custom Service", "customService": "Custom Service",
"selectServiceDetails": "Select service details", "selectServiceDetails": "Select service details",
"addServiceDetails": "Add service details" "addServiceDetails": "Add service details",
}; "connectionProblem": "Connection Problem",
static const Map<String, Map<String, dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US}; "pleaseCheckConnection": "Please check your internet connection and try again.",
"ok": "Ok",
"continueAsGuest": "Continue as a guest",
"loginToViewAppointments": "Please Login to View Appointments",
"itemType": "Item Type"
};
static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
} }

@ -764,14 +764,17 @@ abstract class LocaleKeys {
static const tapToView = 'tapToView'; static const tapToView = 'tapToView';
static const noServicesAvailableToCopy = 'noServicesAvailableToCopy'; static const noServicesAvailableToCopy = 'noServicesAvailableToCopy';
static const copySelectedItems = 'copySelectedItems'; static const copySelectedItems = 'copySelectedItems';
static const companyNameMandatory = 'companyNameMandatory';
static const noOfInvites = 'noOfInvites'; static const noOfInvites = 'noOfInvites';
static const noSpecialServicesAvailable = 'noSpecialServicesAvailable'; static const noSpecialServicesAvailable = 'noSpecialServicesAvailable';
static const customService = 'customService'; static const customService = 'customService';
static const selectServiceDetails = 'selectServiceDetails'; static const selectServiceDetails = 'selectServiceDetails';
static const addServiceDetails = 'addServiceDetails'; static const addServiceDetails = 'addServiceDetails';
static const companyNameMandatory = 'companyNameMandatory';
static const connectionProblem = 'connectionProblem'; static const connectionProblem = 'connectionProblem';
static const pleaseCheckConnection = 'pleaseCheckConnection'; static const pleaseCheckConnection = 'pleaseCheckConnection';
static const ok = 'ok'; static const ok = 'ok';
static const continueAsGuest = 'continueAsGuest';
static const loginToViewAppointments = 'loginToViewAppointments';
static const itemType = 'itemType';
} }

@ -12,8 +12,22 @@ class ShippingRequestModel {
String? createdOn; String? createdOn;
int? customerID; int? customerID;
String? customerName; String? customerName;
int? vehicleTypeID;
String? vehicleType;
ShippingRequestModel({this.id, this.requestID, this.request, this.shippingStatus, this.deliveredOn, this.comment, this.createdOn, this.customerID, this.customerName}); ShippingRequestModel({
this.id,
this.requestID,
this.request,
this.shippingStatus,
this.deliveredOn,
this.comment,
this.createdOn,
this.customerID,
this.customerName,
this.vehicleTypeID,
this.vehicleType,
});
ShippingRequestModel.fromJson(Map<String, dynamic> json) { ShippingRequestModel.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
@ -26,22 +40,8 @@ class ShippingRequestModel {
createdOn = json['createdOn']; createdOn = json['createdOn'];
customerID = json['customerID']; customerID = json['customerID'];
customerName = json['customerName']; customerName = json['customerName'];
} vehicleTypeID = json['vehicleTypeID'];
vehicleType = json['vehicleType'];
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['requestID'] = requestID;
if (request != null) {
data['request'] = request!.toJson();
}
data['shippingStatus'] = shippingStatus;
data['deliveredOn'] = deliveredOn;
data['comment'] = comment;
data['createdOn'] = createdOn;
data['customerID'] = customerID;
data['customerName'] = customerName;
return data;
} }
} }

@ -27,13 +27,13 @@ abstract class PaymentService {
class PaymentServiceImp implements PaymentService { class PaymentServiceImp implements PaymentService {
MyInAppBrowser? myInAppBrowser; MyInAppBrowser? myInAppBrowser;
var inAppBrowserOptions = InAppBrowserClassSettings( var inAppBrowserOptions = InAppBrowserClassSettings(
webViewSettings: InAppWebViewSettings( webViewSettings: InAppWebViewSettings(
useShouldOverrideUrlLoading: false, useShouldOverrideUrlLoading: false,
transparentBackground: false, transparentBackground: false,
isInspectable: false, isInspectable: false,
applePayAPIEnabled: true, applePayAPIEnabled: true,
cacheEnabled: false, cacheEnabled: false,
allowsBackForwardNavigationGestures: false,
), ),
browserSettings: InAppBrowserSettings( browserSettings: InAppBrowserSettings(
hideUrlBar: true, hideUrlBar: true,
@ -42,7 +42,7 @@ class PaymentServiceImp implements PaymentService {
hideToolbarBottom: true, hideToolbarBottom: true,
hideToolbarTop: false, hideToolbarTop: false,
hideCloseButton: false, hideCloseButton: false,
allowGoBackWithBackButton: true, allowGoBackWithBackButton: false,
toolbarBottomBackgroundColor: Colors.black, toolbarBottomBackgroundColor: Colors.black,
closeButtonColor: Colors.white, closeButtonColor: Colors.white,
presentationStyle: ModalPresentationStyle.FULL_SCREEN, presentationStyle: ModalPresentationStyle.FULL_SCREEN,

@ -344,7 +344,9 @@ class AdVM extends BaseVM {
pageIndexForMyAds = 1; pageIndexForMyAds = 1;
hasMoreDataForMyAds = true; hasMoreDataForMyAds = true;
setState(ViewState.busy); setState(ViewState.busy);
if (!AppState().getIsViewOnly) {
myAds = await adsRepo.getAllAds(isMyAds: true); myAds = await adsRepo.getAllAds(isMyAds: true);
}
myAdsFilteredList = myAds; myAdsFilteredList = myAds;
final myActiveAds = myAds.where((element) => element.adPostStatus == AdPostStatus.active).toList(); final myActiveAds = myAds.where((element) => element.adPostStatus == AdPostStatus.active).toList();
myActiveAdsForHome = myActiveAds.length >= 3 ? myActiveAds.take(3).toList() : myActiveAds; myActiveAdsForHome = myActiveAds.length >= 3 ? myActiveAds.take(3).toList() : myActiveAds;

@ -64,9 +64,6 @@ class DashboardVmCustomer extends BaseVM {
RequestsVM requestsVM = Provider.of<RequestsVM>(context, listen: false); RequestsVM requestsVM = Provider.of<RequestsVM>(context, listen: false);
ChatVM chatVM = Provider.of<ChatVM>(context, listen: false); ChatVM chatVM = Provider.of<ChatVM>(context, listen: false);
appointmentsVM.populateBranchesFilterList(); appointmentsVM.populateBranchesFilterList();
appointmentsVM.populateAppointmentsFilterList(); appointmentsVM.populateAppointmentsFilterList();
adVM.populateAdsFilterList(); adVM.populateAdsFilterList();

@ -37,6 +37,7 @@ class DashboardVMProvider extends BaseVM {
void onNavbarTapped(int index) async { void onNavbarTapped(int index) async {
logger.i(AppState().getDeviceToken); logger.i(AppState().getDeviceToken);
selectedNavbarBarIndex = index; selectedNavbarBarIndex = index;
notifyListeners(); notifyListeners();
} }

@ -136,7 +136,7 @@ class PaymentVM extends ChangeNotifier {
} }
}, },
onSuccess: () async { onSuccess: () async {
Utils.showToast("Verifying Payment.."); // Utils.showToast("Verifying Payment..");
switch (paymentTypeEnum) { switch (paymentTypeEnum) {
case PaymentTypes.subscription: case PaymentTypes.subscription:

@ -65,7 +65,7 @@ class AdsListWidget extends StatelessWidget {
isAdsFragment: isAdsFragment, isAdsFragment: isAdsFragment,
shouldShowAdStatus: shouldShowAdStatus, shouldShowAdStatus: shouldShowAdStatus,
).onPress(() => navigateWithName(context, AppRoutes.adsDetailView, arguments: adsList[index])).toViewOnly(context, onTap: () { ).onPress(() => navigateWithName(context, AppRoutes.adsDetailView, arguments: adsList[index])).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword); navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}); });
}, },
separatorBuilder: (BuildContext context, int index) { separatorBuilder: (BuildContext context, int index) {

@ -59,7 +59,7 @@ class AdsFragment extends StatelessWidget {
}) })
], ],
).toViewOnly(context, onTap: () { ).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword); navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}), }),
body: SizedBox( body: SizedBox(
width: double.infinity, width: double.infinity,
@ -91,8 +91,8 @@ class AdsFragment extends StatelessWidget {
}, },
), ),
), ),
if(!AppState().getIsViewOnly) 12.width, 12.width,
if(!AppState().getIsViewOnly) Expanded( Expanded(
child: ShowFillButton( child: ShowFillButton(
isFilled: !adVM.isExploreAdsTapped, isFilled: !adVM.isExploreAdsTapped,
txtColor: !adVM.isExploreAdsTapped ? MyColors.white : MyColors.darkTextColor, txtColor: !adVM.isExploreAdsTapped ? MyColors.white : MyColors.darkTextColor,
@ -102,7 +102,9 @@ class AdsFragment extends StatelessWidget {
onPressed: () { onPressed: () {
adVM.updateIsExploreAds(false); adVM.updateIsExploreAds(false);
}, },
), ).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}),
), ),
], ],
).horPaddingMain(), ).horPaddingMain(),
@ -118,8 +120,7 @@ class AdsFragment extends StatelessWidget {
needLeftPadding: false, needLeftPadding: false,
).paddingOnly(left: 21), ).paddingOnly(left: 21),
] ]
] else ] else ...[
...[
16.height, 16.height,
FiltersList( FiltersList(
filterList: adVM.myAdsFilterOptions, filterList: adVM.myAdsFilterOptions,
@ -138,15 +139,10 @@ class AdsFragment extends StatelessWidget {
child: RefreshIndicator( child: RefreshIndicator(
onRefresh: () async { onRefresh: () async {
if (adVM.isExploreAdsTapped) { if (adVM.isExploreAdsTapped) {
int vehicleBrandId = adVM.exploreAdsFilterOptions int vehicleBrandId = adVM.exploreAdsFilterOptions.firstWhere((element) => element.isSelected).id;
.firstWhere((element) => element.isSelected)
.id;
adVM.applyFilterOnExploreAds(vehicleBrandId: vehicleBrandId); adVM.applyFilterOnExploreAds(vehicleBrandId: vehicleBrandId);
} else { } else {
AdPostStatus adPostStatusEnum = adVM.myAdsFilterOptions AdPostStatus adPostStatusEnum = adVM.myAdsFilterOptions.firstWhere((element) => element.isSelected).id.toAdPostEnum();
.firstWhere((element) => element.isSelected)
.id
.toAdPostEnum();
adVM.applyFilterOnMyAds(adPostStatusEnum: adPostStatusEnum); adVM.applyFilterOnMyAds(adPostStatusEnum: adPostStatusEnum);
} }
}, },
@ -158,10 +154,7 @@ class AdsFragment extends StatelessWidget {
adsList: getAdsList(adVM), adsList: getAdsList(adVM),
hasMoreData: adVM.isExploreAdsTapped ? adVM.hasMoreDataForExploreAds : adVM.hasMoreDataForMyAds, hasMoreData: adVM.isExploreAdsTapped ? adVM.hasMoreDataForExploreAds : adVM.hasMoreDataForMyAds,
onFetchMoreAds: () async { onFetchMoreAds: () async {
AdPostStatus adPostStatusEnum = adVM.myAdsFilterOptions AdPostStatus adPostStatusEnum = adVM.myAdsFilterOptions.firstWhere((element) => element.isSelected).id.toAdPostEnum();
.firstWhere((element) => element.isSelected)
.id
.toAdPostEnum();
if (adVM.isExploreAdsTapped) { if (adVM.isExploreAdsTapped) {
await adVM.fetchMoreExploreAds(); await adVM.fetchMoreExploreAds();
@ -197,14 +190,12 @@ class AdsFragment extends StatelessWidget {
} }
} }
navigateWithName(context, AppRoutes.selectAdTypeView, arguments: [injector navigateWithName(context, AppRoutes.selectAdTypeView, arguments: [injector.get<AppState>().currentAppType == AppType.provider, false, -1]);
.get<AppState>()
.currentAppType == AppType.provider, false, -1]);
}, },
backgroundColor: MyColors.darkPrimaryColor, backgroundColor: MyColors.darkPrimaryColor,
child: const Icon(Icons.add, color: MyColors.white), child: const Icon(Icons.add, color: MyColors.white),
).toViewOnly(context, onTap: () { ).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword); navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}), }),
); );
}, },

@ -95,7 +95,7 @@ class MyRequestsFragment extends StatelessWidget {
}) })
], ],
).toViewOnly(context, onTap: () { ).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword); navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}), }),
body: Container( body: Container(
color: MyColors.backgroundColor, color: MyColors.backgroundColor,
@ -178,7 +178,7 @@ class MyRequestsFragment extends StatelessWidget {
navigateWithName(context, AppRoutes.offersListPage, arguments: request.id); navigateWithName(context, AppRoutes.offersListPage, arguments: request.id);
} }
}).toViewOnly(context, onTap: () { }).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword); navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}), }),
); );
}, },
@ -201,7 +201,7 @@ class MyRequestsFragment extends StatelessWidget {
color: MyColors.white, color: MyColors.white,
), ),
).toViewOnly(context, onTap: () { ).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword); navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}) })
: null, : null,
); );

@ -186,6 +186,9 @@ class _ShippingManagementViewState extends State<ShippingManagementView> {
), ),
("${shippingRequest.request!.brand} ${shippingRequest.request!.model} | ${shippingRequest.requestID.toString()}").toText(fontSize: 16), ("${shippingRequest.request!.brand} ${shippingRequest.request!.model} | ${shippingRequest.requestID.toString()}").toText(fontSize: 16),
(shippingRequest.request!.description ?? "").toText(color: MyColors.lightTextColor, fontSize: 12, fontWeight: MyFonts.Medium), (shippingRequest.request!.description ?? "").toText(color: MyColors.lightTextColor, fontSize: 12, fontWeight: MyFonts.Medium),
if (shippingRequest.vehicleType != null && shippingRequest.vehicleType!.isNotEmpty) ...[
("${LocaleKeys.itemType.tr()}: " "${shippingRequest.vehicleType}" ?? "").toText(color: MyColors.lightTextColor, fontSize: 12, fontWeight: MyFonts.Medium),
],
if (shippingRequest.comment != null && shippingRequest.comment!.isNotEmpty) ...[ if (shippingRequest.comment != null && shippingRequest.comment!.isNotEmpty) ...[
("${LocaleKeys.comment.tr()}: ${shippingRequest.comment ?? ""}").toText(color: MyColors.lightTextColor, fontSize: 12, fontWeight: MyFonts.Medium), ("${LocaleKeys.comment.tr()}: ${shippingRequest.comment ?? ""}").toText(color: MyColors.lightTextColor, fontSize: 12, fontWeight: MyFonts.Medium),
], ],

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:developer';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -21,7 +22,9 @@ import 'package:provider/provider.dart';
import '../../utils/enums.dart'; import '../../utils/enums.dart';
class LoginWithPassword extends StatefulWidget { class LoginWithPassword extends StatefulWidget {
const LoginWithPassword({Key? key}) : super(key: key); final bool isRemoveBackButton;
const LoginWithPassword({super.key, this.isRemoveBackButton = true});
@override @override
State<LoginWithPassword> createState() => _LoginWithPasswordState(); State<LoginWithPassword> createState() => _LoginWithPasswordState();
@ -84,7 +87,7 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: const CustomAppBar(isRemoveBackButton: true, title: ""), appBar: CustomAppBar(isRemoveBackButton: widget.isRemoveBackButton, title: ""),
body: Container( body: Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,

@ -22,7 +22,7 @@ import 'package:sizer/sizer.dart';
import '../../theme/colors.dart'; import '../../theme/colors.dart';
class RegisterSelectionPage extends StatefulWidget { class RegisterSelectionPage extends StatefulWidget {
const RegisterSelectionPage({Key? key}) : super(key: key); const RegisterSelectionPage({super.key});
@override @override
State<RegisterSelectionPage> createState() => _RegisterSelectionPageState(); State<RegisterSelectionPage> createState() => _RegisterSelectionPageState();
@ -59,14 +59,14 @@ class _RegisterSelectionPageState extends State<RegisterSelectionPage> {
SvgPicture.asset(MyAssets.logo), SvgPicture.asset(MyAssets.logo),
Utils.mFlex(4), Utils.mFlex(4),
LocaleKeys.welcomeMessage.tr().toText( LocaleKeys.welcomeMessage.tr().toText(
fontSize: 20, fontSize: 22,
letterSpacing: -1.44, letterSpacing: -1,
), ),
10.height,
LocaleKeys.welcomeDes.tr().toText( LocaleKeys.welcomeDes.tr().toText(
color: MyColors.lightTextColor, color: MyColors.lightTextColor,
fontSize: 14, fontSize: 16,
height: 23 / 24, height: 23 / 24,
letterSpacing: -0.48,
), ),
Utils.mFlex(1), Utils.mFlex(1),
ShowFillButton( ShowFillButton(
@ -93,30 +93,22 @@ class _RegisterSelectionPageState extends State<RegisterSelectionPage> {
), ),
20.height, 20.height,
ShowFillButton(
title: "Guest View", Utils.mFlex(3),
maxWidth: double.infinity,
horizontalMargin: 20, // 10.height,
if (AppState().currentAppType == AppType.customer) ...[
TextButton(
onPressed: () { onPressed: () {
appState.setIsViewOnly = true; appState.setIsViewOnly = true;
AppState().setUser = User(data: UserData(userInfo: GuestConsts().userInfo, accessToken: null, expiryDate: DateTime.now())); AppState().setUser = User(data: UserData(userInfo: GuestConsts().userInfo, accessToken: null, expiryDate: DateTime.now()));
navigateReplaceWithName(context, AppRoutes.dashboard); navigateReplaceWithName(context, AppRoutes.dashboard);
}, },
child: LocaleKeys.continueAsGuest.tr().toText(color: MyColors.darkTextColor, fontSize: 18),
), ),
10.height, 10.height,
Utils.mFlex(3), ],
// TextButton(
// onPressed: () {},
// child: const Text(
// "Continue as Guest",
// style: TextStyle(
// color: MyColors.darkPrimaryColor,
// fontWeight: FontWeight.bold,
// decoration: TextDecoration.underline,
// ),
// ),
// ),
// 10.height,
TextButton( TextButton(
onPressed: () {}, onPressed: () {},
child: Text( child: Text(

@ -9,9 +9,9 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
class CustomBottomNavbar extends StatelessWidget { class CustomBottomNavbar extends StatelessWidget {
final int selectedNavbarBarIndex; final int selectedNavbarBarIndex;
final Function(int) onSelected; final Function(int) onSelected;
bool isProvider; final bool isProvider;
CustomBottomNavbar({Key? key, required this.onSelected, required this.selectedNavbarBarIndex, this.isProvider = false}) : super(key: key); const CustomBottomNavbar({super.key, required this.onSelected, required this.selectedNavbarBarIndex, this.isProvider = false});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

@ -18,7 +18,7 @@ class FiltersList extends StatelessWidget {
this.padding, this.padding,
required this.filterList, required this.filterList,
this.needLeftPadding = true, this.needLeftPadding = true,
this.showImages = true, this.showImages = false,
required this.onFilterTapped, required this.onFilterTapped,
}); });

@ -440,7 +440,7 @@ extension ViewOnlyExtension on Widget {
extension PreferredSizeWidgetViewOnlyExtension on PreferredSizeWidget { extension PreferredSizeWidgetViewOnlyExtension on PreferredSizeWidget {
PreferredSizeWidget toViewOnly(BuildContext context, {required Function() onTap}) { PreferredSizeWidget toViewOnly(BuildContext context, {required Function() onTap}) {
return PreferredSize( return PreferredSize(
preferredSize: this.preferredSize, preferredSize: preferredSize,
child: GestureDetector( child: GestureDetector(
behavior: HitTestBehavior.opaque, behavior: HitTestBehavior.opaque,
onTap: () { onTap: () {

Loading…
Cancel
Save