@ -44,7 +44,7 @@ class AdVM extends BaseVM {
AdVM ( { required this . commonServices , required this . commonRepo , required this . adsRepo } ) ;
AdVM ( { required this . commonServices , required this . commonRepo , required this . adsRepo } ) ;
AdCreationSteps Enum currentProgressStep = AdCreationSteps Enum . vehicleDetails ;
AdCreationSteps currentProgressStep = AdCreationSteps . vehicleDetails ;
VehicleDetailsModel ? vehicleDetails ;
VehicleDetailsModel ? vehicleDetails ;
@ -82,7 +82,6 @@ class AdVM extends BaseVM {
/ / Edit Variables Amir
/ / Edit Variables Amir
bool isExtendAdEditEnabled = false ;
bool isExtendAdEditEnabled = false ;
bool isAdEditEnabled = false ;
bool isAdEditEnabled = false ;
bool isDraftEditEnabled = false ;
AdDetailsModel ? previousAdDetails ;
AdDetailsModel ? previousAdDetails ;
List < AdDetailsModel > myDraftAds = [ ] ;
List < AdDetailsModel > myDraftAds = [ ] ;
@ -348,20 +347,15 @@ class AdVM extends BaseVM {
int pageIndexForMyDrafts = 1 ;
int pageIndexForMyDrafts = 1 ;
Future < void > getMyDraftAds ( ) async {
Future < void > getMyDraftAds ( ) async {
try {
pageIndexForMyAds = 1 ;
pageIndexForMyAds = 1 ;
hasMoreDataForMyAds = true ;
hasMoreDataForMyAds = true ;
setState ( ViewState . busy ) ;
setState ( ViewState . busy ) ;
myDraftAds = await adsRepo . getMyDraftAds ( ) ;
myDraftAds = await adsRepo . getMyDraftAds ( ) ;
notifyListeners ( ) ;
notifyListeners ( ) ;
setState ( ViewState . idle ) ;
setState ( ViewState . idle ) ;
} catch ( e ) {
setState ( ViewState . idle ) ;
logger . e ( e . toString ( ) ) ;
}
}
}
Future < void > fetchMoreDraftAds ( ) async {
Future < void > fetchMoreDraftAds ( { required AdPostStatus adsStatus } ) async {
if ( isLoadingMore ) return ;
if ( isLoadingMore ) return ;
hasMoreDataForMyDraftsAds = true ;
hasMoreDataForMyDraftsAds = true ;
isLoadingMore = true ;
isLoadingMore = true ;
@ -729,29 +723,6 @@ class AdVM extends BaseVM {
vehicleDemandAmount = amount ;
vehicleDemandAmount = amount ;
}
}
String odometer = " " ;
void updateOdometer ( String value ) {
odometer = value ;
notifyListeners ( ) ;
}
int isInUsed = 0 ;
void updateIsInUsed ( int value ) {
isInUsed = value ;
notifyListeners ( ) ;
}
bool isAccidentFree = false ;
bool isAccidentFreeSet = false ;
void updateIsAccidentFree ( bool value ) {
isAccidentFree = value ;
isAccidentFreeSet = true ;
notifyListeners ( ) ;
}
String reservationCancelReason = " " ;
String reservationCancelReason = " " ;
String reservationCancelError = " " ;
String reservationCancelError = " " ;
@ -1242,170 +1213,64 @@ class AdVM extends BaseVM {
void onBackButtonPressed ( BuildContext context ) {
void onBackButtonPressed ( BuildContext context ) {
switch ( currentProgressStep ) {
switch ( currentProgressStep ) {
case AdCreationStepsEnum . vehicleDetails:
case AdCreationSteps . vehicleDetails:
isAdEditEnabled = false ;
isDraftEditEnabled = false ;
resetValues ( ) ;
resetValues ( ) ;
pop ( context ) ;
pop ( context ) ;
break ;
break ;
case AdCreationSteps Enum . damageParts:
case AdCreationSteps . damageParts:
currentProgressStep = AdCreationSteps Enum . vehicleDetails ;
currentProgressStep = AdCreationSteps . vehicleDetails ;
notifyListeners ( ) ;
notifyListeners ( ) ;
break ;
break ;
case AdCreationSteps Enum . adDuration:
case AdCreationSteps . adDuration:
currentProgressStep = AdCreationSteps Enum . damageParts ;
currentProgressStep = AdCreationSteps . damageParts ;
notifyListeners ( ) ;
notifyListeners ( ) ;
break ;
break ;
case AdCreationSteps Enum . reviewAd:
case AdCreationSteps . reviewAd:
currentProgressStep = AdCreationSteps Enum . adDuration ;
currentProgressStep = AdCreationSteps . adDuration ;
notifyListeners ( ) ;
notifyListeners ( ) ;
break ;
break ;
}
}
}
}
Future < int > saveAdVehicleDetailsDraft ( { required bool isNew , required BuildContext context , required AdCreationStepsEnum stepNoEnum } ) async {
AppState appState = injector . get < AppState > ( ) ;
log ( " selectionDurationStartDate: $ selectionDurationStartDate " ) ;
log ( " specialServiceCards: ${ specialServiceCards . length } " ) ;
List < int > adsSelectedServices = [ ] ;
for ( var value in specialServiceCards ) {
adsSelectedServices . add ( value . serviceSelectedId ! . selectedId ) ;
}
Utils . showLoading ( context ) ;
try {
Ads ads = Ads (
id: ! isNew ? previousAdDetails ! . id : 0 ,
adsDurationID: vehicleAdDurationId . selectedId = = - 1 ? 0 : vehicleAdDurationId . selectedId ,
startDate: selectionDurationStartDate ,
countryId: vehicleCountryId . selectedId ,
specialServiceIDs: adsSelectedServices ,
showContactDetail: isPhoneNumberShown ,
isOnWhatsApp: isNumberOnWhatsApp ,
) ;
List < VehiclePostingImages > vehicleImages = [ ] ;
for ( var image in pickedPostingImages ) {
vehicleImages . add ( await convertFileToVehiclePostingImages ( imageModel: image ) ) ;
}
List < VehiclePostingDamageParts > vehicleDamageImages = [ ] ;
for ( var card in vehicleDamageCards ) {
if ( card . partImages ! = null & & card . partImages ! . isNotEmpty ) {
for ( var image in card . partImages ! ) {
VehiclePostingDamageParts stringImage = await convertFileToVehiclePostingDamageParts (
imageModel: image ,
damagePartId: card . partSelectedId ! . selectedId ,
commentParam: card . damagePartDescription ? ? " " ,
) ;
vehicleDamageImages . add ( stringImage ) ;
}
}
}
VehiclePosting vehiclePosting = VehiclePosting (
id: ! isNew ? previousAdDetails ! . vehiclePostingID : null ,
userID: appState . getUser . data ! . userInfo ! . userId ,
vehicleType: vehicleTypeId . selectedId ,
vehicleModelID: vehicleModelId . selectedId ,
vehicleModelYearID: vehicleModelYearId . selectedId ,
vehicleColorID: vehicleColorId . selectedId ,
vehicleCategoryID: vehicleCategoryId . selectedId ,
vehicleConditionID: vehicleConditionId . selectedId ,
vehicleMileageID: vehicleMileageId . selectedId ,
vehicleTransmissionID: vehicleTransmissionId . selectedId ,
vehicleSellerTypeID: vehicleSellerTypeId . selectedId = = - 1 ? 1 : vehicleSellerTypeId . selectedId ,
cityID: vehicleCityId . selectedId ,
price: int . parse ( vehicleDemandAmount ) ,
vehicleVIN: vehicleVin ,
vehicleDescription: vehicleDescription ,
vehicleTitle: vehicleTitle ,
vehicleDescriptionN: vehicleDescription ,
isFinanceAvailable: financeAvailableStatus ,
warantyYears: int . parse ( warrantyDuration ) ,
demandAmount: int . parse ( vehicleDemandAmount ) ,
vehiclePostingImages: vehicleImages ,
vehiclePostingDamageParts: vehicleDamageImages ,
phoneNo: isPhoneNumberShown ? adPhoneNumberDialCode + adPhoneNumber : null ,
whatsAppNo: ( isPhoneNumberShown & & isNumberOnWhatsApp ) ? adPhoneNumberDialCode + adPhoneNumber : null ,
odometer: odometer . isNotEmpty ? int . tryParse ( odometer ) : 0 ,
isInUsed: isInUsed ,
isAccidentFree: isAccidentFree ,
) ;
AdsCreationPayloadModel adsCreationPayloadModel = AdsCreationPayloadModel ( ads: ads , vehiclePosting: vehiclePosting ) ;
GenericRespModel respModel = await adsRepo . createOrUpdateDraftAd (
adsCreationPayloadModel: adsCreationPayloadModel ,
isCreateNew: isNew ,
stepNo: stepNoEnum ,
) ;
Utils . hideLoading ( context ) ;
return Future . value ( respModel . messageStatus = = 1 ? respModel . data : - 1 ) ;
} catch ( e ) {
Utils . hideLoading ( context ) ;
logger . e ( e . toString ( ) ) ;
return - 1 ;
}
}
Future saveAdDamagePartDetailsDraft ( ) async { }
Future saveAdDurationsDraft ( ) async { }
void updateCurrentStep ( BuildContext context ) async {
void updateCurrentStep ( BuildContext context ) async {
switch ( currentProgressStep ) {
switch ( currentProgressStep ) {
case AdCreationSteps Enum . vehicleDetails:
case AdCreationSteps . vehicleDetails:
if ( isVehicleDetailsValidated ( ) ) {
if ( isVehicleDetailsValidated ( ) ) {
int adID = await saveAdVehicleDetailsDraft ( isNew: previousAdDetails = = null | | previousAdDetails ! . id = = null , context: context , stepNoEnum: AdCreationStepsEnum . vehicleDetails ) ;
currentProgressStep = AdCreationSteps . damageParts ;
if ( previousAdDetails = = null | | previousAdDetails ! . id = = null ) {
previousAdDetails = AdDetailsModel ( ) ;
previousAdDetails ! . id = adID ;
}
currentProgressStep = AdCreationStepsEnum . damageParts ;
getVehicleDamagePartsList ( ) ;
getVehicleDamagePartsList ( ) ;
notifyListeners ( ) ;
notifyListeners ( ) ;
}
}
break ;
break ;
case AdCreationSteps Enum . damageParts:
case AdCreationSteps . damageParts:
if ( isDamagePartsValidated ( ) ) {
if ( isDamagePartsValidated ( ) ) {
await saveAdVehicleDetailsDraft ( isNew: false , context: context , stepNoEnum: AdCreationStepsEnum . damageParts ) ;
currentProgressStep = AdCreationSteps . adDuration ;
currentProgressStep = AdCreationStepsEnum . adDuration ;
if ( vehicleAdsDurations . isEmpty ) {
if ( vehicleAdsDurations . isEmpty ) {
getVehicleAdsDuration ( ) ;
getVehicleAdsDuration ( ) ;
}
}
getVehicleAdsSpecialServices ( countryId: vehicleCountryId . selectedId , cityId: vehicleCityId . selectedId , specialServiceType: 1 ) ;
getVehicleAdsSpecialServices ( countryId: vehicleCountryId . selectedId , cityId: vehicleCityId . selectedId , specialServiceType: 1 ) ;
notifyListeners ( ) ;
notifyListeners ( ) ;
}
}
break ;
break ;
case AdCreationStepsEnum . adDuration:
case AdCreationSteps . adDuration:
/ / log ( " state: ${ AppState ( ) . getUser . data ! . accessToken } " ) ;
if ( isAdDurationValidated ( ) ) {
if ( isAdDurationValidated ( ) ) {
await saveAdVehicleDetailsDraft ( isNew: false , context: context , stepNoEnum: AdCreationStepsEnum . adDuration ) ;
currentProgressStep = AdCreationSteps . reviewAd ;
currentProgressStep = AdCreationStepsEnum . reviewAd ;
notifyListeners ( ) ;
notifyListeners ( ) ;
}
}
break ;
break ;
case AdCreationSteps Enum . reviewAd:
case AdCreationSteps . reviewAd:
Utils . showLoading ( context ) ;
Utils . showLoading ( context ) ;
try {
try {
bool status = await createNewAd ( ) ;
int status = await createNewAd ( ) ;
if ( ! status ) {
if ( status ! = 1 ) {
Utils . hideLoading ( context ) ;
Utils . hideLoading ( context ) ;
return ;
return ;
}
}
isAdEditEnabled = false ;
isAdEditEnabled = false ;
isDraftEditEnabled = false ;
isExtendAdEditEnabled = false ;
isExtendAdEditEnabled = false ;
Utils . hideLoading ( context ) ;
Utils . hideLoading ( context ) ;
currentProgressStep = AdCreationSteps Enum . vehicleDetails ;
currentProgressStep = AdCreationSteps . vehicleDetails ;
resetValues ( ) ;
resetValues ( ) ;
updateIsExploreAds ( false ) ;
updateIsExploreAds ( false ) ;
applyFilterOnMyAds ( adPostStatusEnum: AdPostStatus . pendingForReview ) ; / / pending for review
applyFilterOnMyAds ( adPostStatusEnum: AdPostStatus . pendingForReview ) ; / / pending for review
@ -1463,7 +1328,7 @@ class AdVM extends BaseVM {
/ / Added By Aamir
/ / Added By Aamir
if ( pickedPostingImages . length > GlobalConsts . maxFileCount ) {
if ( pickedPostingImages . length > GlobalConsts . maxFileCount ) {
pickedPostingImages = pickedPostingImages . sublist ( 0 , GlobalConsts . maxFileCount ) ;
pickedPostingImages = pickedPostingImages . sublist ( 0 , GlobalConsts . maxFileCount ) ;
Utils . showToast ( LocaleKeys . maxFileSelection .tr ( ) );
Utils . showToast ( LocaleKeys . maxFileSelection );
}
}
if ( pickedPostingImages . isNotEmpty ) vehicleImageError = " " ;
if ( pickedPostingImages . isNotEmpty ) vehicleImageError = " " ;
@ -1511,7 +1376,7 @@ class AdVM extends BaseVM {
/ / Added By Aamir
/ / Added By Aamir
if ( vehicleDamageCards [ index ] . partImages ! . length > GlobalConsts . maxFileCount ) {
if ( vehicleDamageCards [ index ] . partImages ! . length > GlobalConsts . maxFileCount ) {
vehicleDamageCards [ index ] . partImages = vehicleDamageCards [ index ] . partImages ! . sublist ( 0 , GlobalConsts . maxFileCount ) ;
vehicleDamageCards [ index ] . partImages = vehicleDamageCards [ index ] . partImages ! . sublist ( 0 , GlobalConsts . maxFileCount ) ;
Utils . showToast ( LocaleKeys . maxFileSelection .tr ( ) );
Utils . showToast ( LocaleKeys . maxFileSelection );
}
}
}
}
@ -1567,7 +1432,7 @@ class AdVM extends BaseVM {
if ( pickedDamageImages . length > GlobalConsts . maxFileCount ) {
if ( pickedDamageImages . length > GlobalConsts . maxFileCount ) {
pickedDamageImages = pickedDamageImages . sublist ( 0 , GlobalConsts . maxFileCount ) ;
pickedDamageImages = pickedDamageImages . sublist ( 0 , GlobalConsts . maxFileCount ) ;
Utils . showToast ( LocaleKeys . maxFileSelection .tr ( ) );
Utils . showToast ( LocaleKeys . maxFileSelection );
}
}
if ( pickedDamageImages . isNotEmpty ) vehicleDamageImageError = " " ;
if ( pickedDamageImages . isNotEmpty ) vehicleDamageImageError = " " ;
notifyListeners ( ) ;
notifyListeners ( ) ;
@ -1579,7 +1444,7 @@ class AdVM extends BaseVM {
vehicleDamageCards . clear ( ) ;
vehicleDamageCards . clear ( ) ;
specialServiceCards . clear ( ) ;
specialServiceCards . clear ( ) ;
vehicleAdsSpecialServices . clear ( ) ;
vehicleAdsSpecialServices . clear ( ) ;
currentProgressStep = AdCreationSteps Enum . vehicleDetails ;
currentProgressStep = AdCreationSteps . vehicleDetails ;
vehicleTypeId = SelectionModel ( selectedOption: " " , selectedId: - 1 , errorValue: " " ) ;
vehicleTypeId = SelectionModel ( selectedOption: " " , selectedId: - 1 , errorValue: " " ) ;
vehicleModelId = SelectionModel ( selectedOption: " " , selectedId: - 1 , errorValue: " " ) ;
vehicleModelId = SelectionModel ( selectedOption: " " , selectedId: - 1 , errorValue: " " ) ;
/ / vehicleAdDurationId = SelectionModel ( selectedOption: " " , selectedId: - 1 , errorValue: " " ) ;
/ / vehicleAdDurationId = SelectionModel ( selectedOption: " " , selectedId: - 1 , errorValue: " " ) ;
@ -1603,10 +1468,6 @@ class AdVM extends BaseVM {
isNumberOnWhatsApp = false ;
isNumberOnWhatsApp = false ;
adPhoneNumberDialCode = " " ;
adPhoneNumberDialCode = " " ;
adPhoneNumber = " " ;
adPhoneNumber = " " ;
odometer = " " ;
isInUsed = 0 ;
isAccidentFree = false ;
isAccidentFreeSet = false ;
clearSpecialServiceCard ( ) ;
clearSpecialServiceCard ( ) ;
updateFinanceAvailableStatus ( false ) ;
updateFinanceAvailableStatus ( false ) ;
notifyListeners ( ) ;
notifyListeners ( ) ;
@ -1743,7 +1604,7 @@ class AdVM extends BaseVM {
}
}
}
}
Future < bool > createNewAd ( ) async {
Future < int > createNewAd ( ) async {
AppState appState = injector . get < AppState > ( ) ;
AppState appState = injector . get < AppState > ( ) ;
List < int > adsSelectedServices = [ ] ;
List < int > adsSelectedServices = [ ] ;
@ -1764,11 +1625,7 @@ class AdVM extends BaseVM {
log ( " selectionDurationStartDate: $ selectionDurationStartDate " ) ;
log ( " selectionDurationStartDate: $ selectionDurationStartDate " ) ;
Ads ads = Ads (
Ads ads = Ads (
id: isDraftEditEnabled
id: isAdEditEnabled ? previousAdDetails ! . id : null ,
? null
: isAdEditEnabled
? previousAdDetails ! . id
: null ,
adsDurationID: vehicleAdDurationId . selectedId = = - 1 ? 0 : vehicleAdDurationId . selectedId ,
adsDurationID: vehicleAdDurationId . selectedId = = - 1 ? 0 : vehicleAdDurationId . selectedId ,
startDate: selectionDurationStartDate ,
startDate: selectionDurationStartDate ,
countryId: vehicleCountryId . selectedId ,
countryId: vehicleCountryId . selectedId ,
@ -1822,22 +1679,15 @@ class AdVM extends BaseVM {
vehiclePostingDamageParts: vehicleDamageImages ,
vehiclePostingDamageParts: vehicleDamageImages ,
phoneNo: isPhoneNumberShown ? adPhoneNumberDialCode + adPhoneNumber : null ,
phoneNo: isPhoneNumberShown ? adPhoneNumberDialCode + adPhoneNumber : null ,
whatsAppNo: ( isPhoneNumberShown & & isNumberOnWhatsApp ) ? adPhoneNumberDialCode + adPhoneNumber : null ,
whatsAppNo: ( isPhoneNumberShown & & isNumberOnWhatsApp ) ? adPhoneNumberDialCode + adPhoneNumber : null ,
odometer: odometer . isNotEmpty ? int . tryParse ( odometer ) : 0 ,
isInUsed: isInUsed ,
isAccidentFree: isAccidentFree ,
) ;
) ;
AdsCreationPayloadModel adsCreationPayloadModel = AdsCreationPayloadModel ( ads: ads , vehiclePosting: vehiclePosting ) ;
AdsCreationPayloadModel adsCreationPayloadModel = AdsCreationPayloadModel ( ads: ads , vehiclePosting: vehiclePosting ) ;
GenericRespModel respModel = await adsRepo . createOrUpdateAd (
GenericRespModel respModel = await adsRepo . createOrUpdateAd ( adsCreationPayloadModel: adsCreationPayloadModel , isCreateNew: ! isAdEditEnabled , isExtendAdEditEnabled: isExtendAdEditEnabled ) ;
adsCreationPayloadModel: adsCreationPayloadModel ,
isCreateNew: isDraftEditEnabled ? true : ! isAdEditEnabled ,
isExtendAdEditEnabled: isExtendAdEditEnabled ,
) ;
Utils . showToast ( respModel . message . toString ( ) ) ;
Utils . showToast ( respModel . message . toString ( ) ) ;
return Future . value ( respModel . messageStatus = = 1 ) ;
return Future . value ( respModel . messageStatus ) ;
}
}
Future < VehiclePostingImages > convertFileToVehiclePostingImages ( { required ImageModel imageModel } ) async {
Future < VehiclePostingImages > convertFileToVehiclePostingImages ( { required ImageModel imageModel } ) async {
@ -2371,16 +2221,13 @@ class AdVM extends BaseVM {
return [ ] ;
return [ ] ;
}
}
void onEditUpdateAdPressed ( { required BuildContext context , required AdDetailsModel previousDetails , required bool isFromExtendAd , bool isForDraft = false }) {
void onEditUpdateAdPressed ( { required BuildContext context , required AdDetailsModel previousDetails , required bool isFromExtendAd }) {
isAdEditEnabled = true ;
isAdEditEnabled = true ;
isDraftEditEnabled = true ;
isExtendAdEditEnabled = isFromExtendAd ;
isExtendAdEditEnabled = isFromExtendAd ;
previousAdDetails = previousDetails ;
previousAdDetails = previousDetails ;
autoFillSelectedVehicleType ( ) ;
autoFillSelectedVehicleType ( ) ;
autoFillSelectedVehicleAdsDuration ( ) ;
autoFillSelectedVehicleAdsDuration ( ) ;
if ( isForDraft ) {
autoFillSelectedVehicleAdsDetails ( ) ;
}
navigateWithName ( context , AppRoutes . selectAdTypeView , arguments: [ AppState ( ) . currentAppType = = AppType . provider , isFromExtendAd , previousDetails . id ] ) ;
navigateWithName ( context , AppRoutes . selectAdTypeView , arguments: [ AppState ( ) . currentAppType = = AppType . provider , isFromExtendAd , previousDetails . id ] ) ;
}
}
@ -2409,14 +2256,12 @@ class AdVM extends BaseVM {
void autoFillSelectedVehicleType ( ) async {
void autoFillSelectedVehicleType ( ) async {
if ( vehicleTypes . isEmpty ) {
if ( vehicleTypes . isEmpty ) {
await getVehicleTypes ( ) ;
await getVehicleTypes ( ) ;
/ / return ;
return ;
}
}
if ( vehicleTypes . isNotEmpty ) {
if ( vehicleTypes . isNotEmpty ) {
for ( var vehicle in vehicleTypes ) {
for ( var vehicle in vehicleTypes ) {
vehicle . isSelected = false ;
if ( vehicle . id = = previousAdDetails ! . vehicle ? . vehicleType ) {
if ( vehicle . id = = previousAdDetails ! . vehicle ? . vehicleType ) {
vehicle . isSelected = true ;
vehicle . isSelected = true ;
log ( " Hi: ${ vehicle . vehicleTypeName } " ) ;
break ;
break ;
}
}
}
}
@ -2457,9 +2302,6 @@ class AdVM extends BaseVM {
}
}
void autoFillSelectedVehicleAdsDetails ( ) async {
void autoFillSelectedVehicleAdsDetails ( ) async {
if ( vehicleBrands . isEmpty ) {
await getVehicleBrandsByVehicleTypeId ( ) ;
}
int index = vehicleBrands . indexWhere ( ( element ) = > element . id = = previousAdDetails ! . vehicle ! . model ! . vehicleBrandID ) ;
int index = vehicleBrands . indexWhere ( ( element ) = > element . id = = previousAdDetails ! . vehicle ! . model ! . vehicleBrandID ) ;
if ( index ! = - 1 ) {
if ( index ! = - 1 ) {
@ -2488,16 +2330,11 @@ class AdVM extends BaseVM {
vehicleTitle = previousAdDetails ! . vehicle ! . vehicleTitle . toString ( ) ;
vehicleTitle = previousAdDetails ! . vehicle ! . vehicleTitle . toString ( ) ;
vehicleDescription = previousAdDetails ! . vehicle ! . vehicleDescription . toString ( ) ;
vehicleDescription = previousAdDetails ! . vehicle ! . vehicleDescription . toString ( ) ;
financeAvailableStatus = previousAdDetails ! . vehicle ! . isFinanceAvailable ? ? false ;
financeAvailableStatus = previousAdDetails ! . vehicle ! . isFinanceAvailable ? ? false ;
odometer = previousAdDetails ! . vehicle ! . odometer ! = null ? previousAdDetails ! . vehicle ! . odometer . toString ( ) : " 0 " ;
isInUsed = previousAdDetails ! . vehicle ! . isInUsed ? ? 0 ;
isAccidentFree = previousAdDetails ! . vehicle ! . isAccidentFree ? ? false ;
isAccidentFreeSet = true ;
pickedPostingImages . clear ( ) ;
pickedPostingImages . clear ( ) ;
if ( previousAdDetails ! . vehicle ! . image ! = null & & previousAdDetails ! . vehicle ! . image ! . isNotEmpty ) {
if ( previousAdDetails ! . vehicle ! . image ! = null & & previousAdDetails ! . vehicle ! . image ! . isNotEmpty ) {
for ( var element in previousAdDetails ! . vehicle ! . image ! ) {
for ( var element in previousAdDetails ! . vehicle ! . image ! ) {
if ( element . imageUrl ! = null ) {
if ( element . imageUrl ! = null ) {
ImageModel imageModel = ImageModel ( id: element . id , filePath: element . imageUrl , isFromNetwork: true ) ;
ImageModel imageModel = ImageModel ( id: element . id , filePath: element . imageUrl , isFromNetwork: true ) ;
log ( " running " ) ;
pickedPostingImages . add ( imageModel ) ;
pickedPostingImages . add ( imageModel ) ;
}
}
}
}
@ -2539,16 +2376,12 @@ class AdVM extends BaseVM {
address: " " ,
address: " " ,
serviceTime: " " ,
serviceTime: " " ,
) ;
) ;
int index = ifSpecialServiceAlreadyThere ( element . specialServiceID ! ) ;
log ( " Found at : $ index " ) ;
if ( index = = - 1 ) {
addNewSpecialServiceCard ( specialServiceCard: specialServiceCard ) ;
addNewSpecialServiceCard ( specialServiceCard: specialServiceCard ) ;
}
}
}
}
}
/ / selectionDurationStartDate = DateHelper . formatDateT ( previousAdDetails ! . startdate ? ? " " ) ;
/ / selectionDurationStartDate = DateHelper . formatDateT ( previousAdDetails ! . startdate ? ? " " ) ;
selectionDurationStartDate = " " ; / / You have to mention this each time
selectionDurationStartDate = " " ;
isPhoneNumberShown = previousAdDetails ! . showContactDetail ? ? false ;
isPhoneNumberShown = previousAdDetails ! . showContactDetail ? ? false ;
adPhoneNumber = previousAdDetails ! . adOwnerDetails ! . mobileNo ? ? " " ;
adPhoneNumber = previousAdDetails ! . adOwnerDetails ! . mobileNo ? ? " " ;