|
|
@ -150,7 +150,6 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onCustomerDetailFormReady(boolean isReady) { |
|
|
|
|
|
|
|
this.customerDetailViewSubscriptions.add( |
|
|
|
Observable.combineLatest(form1ValidationSubject, form2ValidationSubject, form3ValidationSubject, (form1Result, form2Result, form3Result) -> |
|
|
|
{ |
|
|
@ -159,7 +158,6 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
return form1Result && form2Result && form3Result; |
|
|
|
}).subscribeWith(new CustomerDetailFormViewBindingObserver())); |
|
|
|
|
|
|
|
|
|
|
|
this.customerDetailViewSubscriptions.add(setUpForm1Validation().subscribe(result -> form1ValidationSubject.onNext(result))); |
|
|
|
this.customerDetailViewSubscriptions.add(setUpForm2Validation().subscribe(result -> form2ValidationSubject.onNext(result))); |
|
|
|
this.customerDetailViewSubscriptions.add(setUpForm3Validation().subscribe(result -> form3ValidationSubject.onNext(result))); |
|
|
@ -228,7 +226,6 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Observable<Boolean> setUpForm2Validation() { |
|
|
|
List<Observable<?>> list = new ArrayList<>(); |
|
|
|
list.add(this.view.getCustomerDetailViewContract().getForm2ViewBindings().getPrimaryBankChangeEvent().map(val -> validator.validateBank(val))); |
|
|
@ -259,24 +256,23 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
private Observable<Boolean> setupAlternateIDDependenciesValidation() { |
|
|
|
return Observable.merge(this.view.getCustomerDetailViewContract().getForm2ViewBindings().getAlternateIDNoChangeEvent().map(val -> { |
|
|
|
log("Alternated Id No started emission: " + val); |
|
|
|
return validator.validateAlternateIdNo2(val.toString()); |
|
|
|
return validator.validateAlternateIdNo(val.toString()); |
|
|
|
}), |
|
|
|
this.view.getCustomerDetailViewContract().getForm2ViewBindings().getAlternateIDIssuedDateChangeEvent().map(val -> { |
|
|
|
log("Alternated Id Issued Date started emission:" + val); |
|
|
|
return validator.validateAlternateIDIssuedDate2(val.toString()); |
|
|
|
return validator.validateAlternateIDIssuedDate(val.toString()); |
|
|
|
}), |
|
|
|
this.view.getCustomerDetailViewContract().getForm2ViewBindings().getAlternateIDExpiryDateChangeEvent().map(val -> { |
|
|
|
log("Alternated Id Expiry Date started emission:" + val); |
|
|
|
return validator.validateAlternateIDExpiryDate2(val.toString()); |
|
|
|
return validator.validateAlternateIDExpiryDate(val.toString()); |
|
|
|
}), |
|
|
|
this.view.getCustomerDetailViewContract().getForm2ViewBindings().getAlternateIdTypeChangeEvent().map(val -> { |
|
|
|
log("Alternated Id Type started emission:" + val.getText()); |
|
|
|
return validator.validateAlternateIdType2(val); |
|
|
|
return validator.validateAlternateIdType(val); |
|
|
|
}) |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Observable<Boolean> setUpForm3Validation() { |
|
|
|
return Observable.combineLatest( |
|
|
|
this.view.getCustomerDetailViewContract().getForm3ViewBindings().getPassporIdDocChangeEvent(), |
|
|
@ -330,28 +326,8 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
@Override |
|
|
|
public void clearAlternateIDFields() { |
|
|
|
|
|
|
|
//Update View |
|
|
|
alternateIDIssueVisibilityDateRequireLiveData.setValue(false); |
|
|
|
alternateIDExpiryDateVisibilityLiveData.setValue(false); |
|
|
|
alternateIDNumberFieldEnableLiveData.setValue(false); |
|
|
|
|
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null); |
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIDIssuedDateError(null); |
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIDExpiryDateError(null); |
|
|
|
|
|
|
|
//Update Data |
|
|
|
if (validator.getKycRelatedDataDTO().getPrimaryInformation() != null) { |
|
|
|
validator.getKycRelatedDataDTO().getPrimaryInformation().setAnotherIDType(""); |
|
|
|
validator.getKycRelatedDataDTO().getPrimaryInformation().setAnotherIDNumber(""); |
|
|
|
validator.getKycRelatedDataDTO().getPrimaryInformation().setAnotherIDIssueDate(""); |
|
|
|
validator.getKycRelatedDataDTO().getPrimaryInformation().setAnotherIDExpiryDate(""); |
|
|
|
} |
|
|
|
|
|
|
|
alternateIdRelatedViewResetLiveData.setValue(true); |
|
|
|
|
|
|
|
|
|
|
|
alternateIdRelatedValidationSubject.onNext(true); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
@ -480,7 +456,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
public void getKycRelatedData() { |
|
|
|
|
|
|
|
compositeDisposable.add( |
|
|
|
this.gateway.getKycRelatedData(gateway.getBasicAuth(view.getContext()), "sdf", "kyc") |
|
|
|
this.gateway.getKycRelatedData(gateway.getBasicAuth(view.getContext()), gateway.getUserID(), "kyc") |
|
|
|
.doOnSubscribe(sub -> view.showProgressBar(true, "")) |
|
|
|
.subscribeOn(Schedulers.io()) |
|
|
|
.observeOn(AndroidSchedulers.mainThread()) |
|
|
@ -793,43 +769,6 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public boolean validateAlternateIdType2(IDTypeDTO val) { |
|
|
|
boolean result = false; |
|
|
|
if (kycRelatedDataDTO.getPrimaryInformation() == null) |
|
|
|
kycRelatedDataDTO.setPrimaryInformation(new PrimaryInformationDTO()); |
|
|
|
|
|
|
|
if (val == null) { |
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIdTypeError("Select different ID Type"); |
|
|
|
kycRelatedDataDTO.getPrimaryInformation().setAnotherIDType(""); |
|
|
|
} else { |
|
|
|
kycRelatedDataDTO.getPrimaryInformation().setAnotherIDType(val.getId()); |
|
|
|
anotherIdPictureLabeliveData.setValue(getAnotherIdTranslatedLable(val.getText())); |
|
|
|
if (ID_TYPE_ALIEN_REGISTRATION_CARD.equalsIgnoreCase(val.getText()) || ID_TYPE_NATIONAL_ID_CARD.equalsIgnoreCase(val.getText())) { |
|
|
|
view.getCustomerDetailViewContract().updateAnotherIdNumberMask(1); |
|
|
|
} else { |
|
|
|
view.getCustomerDetailViewContract().updateAnotherIdNumberMask(0); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (kycRelatedDataDTO.getPrimaryInformation().isAnotherIDTypeValid()) { |
|
|
|
alternateIDIssueVisibilityDateRequireLiveData.setValue(false); |
|
|
|
alternateIDExpiryDateVisibilityLiveData.setValue(false); |
|
|
|
for (String dependent : val.getDependent()) { |
|
|
|
if ("docIssueDate".equalsIgnoreCase(dependent)) { |
|
|
|
alternateIDIssueVisibilityDateRequireLiveData.setValue(true); |
|
|
|
} else if ("docExpiryDate".equalsIgnoreCase(dependent)) { |
|
|
|
alternateIDExpiryDateVisibilityLiveData.setValue(true); |
|
|
|
} |
|
|
|
} |
|
|
|
result = validateAlternateIDRelatedFieldData(); |
|
|
|
} else { |
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIdTypeError("Select different ID Type"); |
|
|
|
} |
|
|
|
} |
|
|
|
alternateIDNumberFieldEnableLiveData.setValue(result); |
|
|
|
log("Alternate Id Type validation result: " + result); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean validateAlternateIDRelatedFieldData() { |
|
|
|
boolean result = true; |
|
|
@ -841,7 +780,30 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
String alternateIdNumber = kycRelatedDataDTO.getPrimaryInformation().getAnotherIDNumber(); |
|
|
|
|
|
|
|
if (selectedIdTypeId == null || selectedIdTypeId.length() == 0) |
|
|
|
{ |
|
|
|
//Update View |
|
|
|
alternateIDIssueVisibilityDateRequireLiveData.setValue(false); |
|
|
|
alternateIDExpiryDateVisibilityLiveData.setValue(false); |
|
|
|
alternateIDNumberFieldEnableLiveData.setValue(false); |
|
|
|
|
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null); |
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIDIssuedDateError(null); |
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIDExpiryDateError(null); |
|
|
|
|
|
|
|
//Update Data |
|
|
|
if (validator.getKycRelatedDataDTO().getPrimaryInformation() != null) { |
|
|
|
validator.getKycRelatedDataDTO().getPrimaryInformation().setAnotherIDType(""); |
|
|
|
validator.getKycRelatedDataDTO().getPrimaryInformation().setAnotherIDNumber(""); |
|
|
|
validator.getKycRelatedDataDTO().getPrimaryInformation().setAnotherIDIssueDate(""); |
|
|
|
validator.getKycRelatedDataDTO().getPrimaryInformation().setAnotherIDExpiryDate(""); |
|
|
|
} |
|
|
|
|
|
|
|
alternateIdRelatedViewResetLiveData.setValue(true); |
|
|
|
log("Alternate Id related view reset"); |
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
else { |
|
|
|
selectedIdType = kycRelatedDataDTO.getSelectedIdTYpeFromId(selectedIdTypeId).getText(); |
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null); |
|
|
@ -923,7 +885,52 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
public boolean validateAlternateIdNo2(String alternateID) { |
|
|
|
public boolean validateAlternateIdType(IDTypeDTO val) { |
|
|
|
boolean result = false; |
|
|
|
if (kycRelatedDataDTO.getPrimaryInformation() == null) |
|
|
|
kycRelatedDataDTO.setPrimaryInformation(new PrimaryInformationDTO()); |
|
|
|
|
|
|
|
if (val == null) { |
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIdTypeError("Select different ID Type"); |
|
|
|
kycRelatedDataDTO.getPrimaryInformation().setAnotherIDType(""); |
|
|
|
} |
|
|
|
else if(val.getId()==null||val.getId().length()==0) |
|
|
|
{ |
|
|
|
kycRelatedDataDTO.getPrimaryInformation().setAnotherIDType(null); |
|
|
|
log("Alternate id is null so view is being reset"); |
|
|
|
result=validateAlternateIDRelatedFieldData(); |
|
|
|
} |
|
|
|
else { |
|
|
|
kycRelatedDataDTO.getPrimaryInformation().setAnotherIDType(val.getId()); |
|
|
|
anotherIdPictureLabeliveData.setValue(getAnotherIdTranslatedLable(val.getText())); |
|
|
|
if (ID_TYPE_ALIEN_REGISTRATION_CARD.equalsIgnoreCase(val.getText()) || ID_TYPE_NATIONAL_ID_CARD.equalsIgnoreCase(val.getText())) { |
|
|
|
view.getCustomerDetailViewContract().updateAnotherIdNumberMask(1); |
|
|
|
} else { |
|
|
|
view.getCustomerDetailViewContract().updateAnotherIdNumberMask(0); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (kycRelatedDataDTO.getPrimaryInformation().isAnotherIDTypeValid()) { |
|
|
|
alternateIDIssueVisibilityDateRequireLiveData.setValue(false); |
|
|
|
alternateIDExpiryDateVisibilityLiveData.setValue(false); |
|
|
|
for (String dependent : val.getDependent()) { |
|
|
|
if ("docIssueDate".equalsIgnoreCase(dependent)) { |
|
|
|
alternateIDIssueVisibilityDateRequireLiveData.setValue(true); |
|
|
|
} else if ("docExpiryDate".equalsIgnoreCase(dependent)) { |
|
|
|
alternateIDExpiryDateVisibilityLiveData.setValue(true); |
|
|
|
} |
|
|
|
} |
|
|
|
result = validateAlternateIDRelatedFieldData(); |
|
|
|
} else { |
|
|
|
customerDetailErrorLiveDataDTO.setValueToAnotherIdTypeError("Select different ID Type"); |
|
|
|
} |
|
|
|
} |
|
|
|
alternateIDNumberFieldEnableLiveData.setValue(result); |
|
|
|
log("Alternate Id Type validation result: " + result); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
public boolean validateAlternateIdNo(String alternateID) { |
|
|
|
|
|
|
|
kycRelatedDataDTO.getPrimaryInformation().setAnotherIDNumber(alternateID); |
|
|
|
if (kycRelatedDataDTO.getPrimaryInformation().isAnotherIDNoValid()) { |
|
|
@ -934,7 +941,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public boolean validateAlternateIDIssuedDate2(String alternateIDIssuedDate) { |
|
|
|
public boolean validateAlternateIDIssuedDate(String alternateIDIssuedDate) { |
|
|
|
Log.d("AlternateIdValidation", "Issued Date : " + alternateIDIssuedDate); |
|
|
|
|
|
|
|
if (kycRelatedDataDTO.getPrimaryInformation() == null) |
|
|
@ -945,7 +952,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public boolean validateAlternateIDExpiryDate2(String alternateIDIExpiryDate) { |
|
|
|
public boolean validateAlternateIDExpiryDate(String alternateIDIExpiryDate) { |
|
|
|
Log.d("AlternateIdValidation", "Expiry Date : " + alternateIDIExpiryDate); |
|
|
|
|
|
|
|
if (kycRelatedDataDTO.getPrimaryInformation() == null) |
|
|
|