Browse Source

Validation fixes

master
Preyea Regmi 5 years ago
parent
commit
b1c952a8c5
  1. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/model/PicturesDTO.java
  2. 71
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3ViewModel.java
  3. 13
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/CustomerDetailFragment.java

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/model/PicturesDTO.java

@ -55,7 +55,7 @@ public class PicturesDTO {
}
public File getPassportImageFile() {
Log.d("KYCV3DOC", "Passport image file set");
return passportImageFile;
}
@ -64,7 +64,7 @@ public class PicturesDTO {
}
public boolean hasValidAlternateImage() {
return (alternateIDImageFile!=null||(anotherIDPicture!=null&&anotherIDPicture.length()>0));
return (alternateIDImageFile!=null);
}

71
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/presenter/KYCV3ViewModel.java

@ -187,7 +187,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
if (shouldRedirectToPennyTestScreen)
requestPennyTestFromServer("N");
new Handler().postDelayed(() -> requestPennyTestFromServer("N"), 300);
//new Handler().postDelayed(()->customerKoreanLiveData.setValue(!isCustomerKorean),5000);
}
@ -245,24 +245,24 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
private void handleDocImages(KYCRelatedDataDTO data) {
if (data.arePicturesAvailable()) {
if (data.getPictures().getPassportPicture()!=null&&data.getPictures().getPassportPicture().length()>0)
if (data.getPictures().getPassportPicture() != null && data.getPictures().getPassportPicture().length() > 0)
compositeDisposable.add(fileDownloadGateway.downloadFile(data.getPictures().getPassportPicture())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.map(responseBody -> fileDownloadGateway.writeToFile(responseBody, fileDownloadGateway.getTempFile(view.getContext(), "AlternateIdDoc")))
.subscribe(downloadedFile -> {
data.getPictures().setAlternateIDImageAsFile(downloadedFile);
data.getPictures().setPassportImageAsFile(downloadedFile);
passportImageLiveData.setValue(ImageUtils.generateThumbnailFromImageFile(downloadedFile.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH));
}));
if (data.getPictures().getAnotherIDPicture()!=null&&data.getPictures().getAnotherIDPicture().length()>0)
if (data.getPictures().getAnotherIDPicture() != null && data.getPictures().getAnotherIDPicture().length() > 0)
compositeDisposable.add(fileDownloadGateway.downloadFile(data.getPictures().getAnotherIDPicture())
.subscribeOn(Schedulers.io())
.map(responseBody -> fileDownloadGateway.writeToFile(responseBody, fileDownloadGateway.getTempFile(view.getContext(), "PassportIdDoc")))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(downloadedFile -> {
data.getPictures().setPassportImageAsFile(downloadedFile);
data.getPictures().setAlternateIDImageAsFile(downloadedFile);
alternateIDImageLiveData.setValue(ImageUtils.generateThumbnailFromImageFile(downloadedFile.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH));
}));
@ -346,7 +346,9 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
return Observable.combineLatest(
passportImageValidationSubject,
alternateIdImageValidationSubject,
(isPassportIDDocValid, isAlternateIdDocValid) -> isPassportIDDocValid && isAlternateIdDocValid
(isPassportIDDocValid, isAlternateIdDocValid) -> {
log("Pictures validated "+String.valueOf(isPassportIDDocValid && isAlternateIdDocValid));
return isPassportIDDocValid && isAlternateIdDocValid;}
);
}
@ -879,26 +881,34 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
}
if (ID_TYPE_NATIONAL_ID_CARD.equalsIgnoreCase(selectedIdType)) {
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0)
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0) {
result = false;
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
}
if (alternateIdNumber == null || alternateIdNumber.length() == 0) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false;
} else if (alternateIdNumber.length() != ID_CARD_VALID_LENGTH) {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError("Invalid National Id Card");
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false;
} else {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(true);
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
}
} else if (ID_TYPE_ALIEN_REGISTRATION_CARD.equalsIgnoreCase(selectedIdType)) {
if (alternateIdExpiryDate == null || alternateIdExpiryDate.length() == 0)
if (alternateIdExpiryDate == null || alternateIdExpiryDate.length() == 0) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false;
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0)
}
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false;
}
if (alternateIdNumber == null || alternateIdNumber.length() == 0) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false;
} else if (alternateIdNumber.length() != ID_CARD_VALID_LENGTH) {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError("Invalid Alien Id Card");
@ -910,41 +920,39 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
}
} else if (ID_TYPE_DRIVING_LICENSE.equalsIgnoreCase(selectedIdType)) {
if (alternateIdExpiryDate == null || alternateIdExpiryDate.length() == 0)
result = false;
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0)
result = false;
if (alternateIdNumber == null || alternateIdNumber.length() == 0) {
result = false;
} else if (alternateIdNumber.length() != ID_CARD_VALID_LENGTH) {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError("Invalid Driving License Card");
if (alternateIdExpiryDate == null || alternateIdExpiryDate.length() == 0) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false;
} else {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(true);
}
} else if (ID_TYPE_PASSPORT.equalsIgnoreCase(selectedIdType)) {
if (alternateIdExpiryDate == null || alternateIdExpiryDate.length() == 0)
result = false;
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0)
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false;
}
if (alternateIdNumber == null || alternateIdNumber.length() == 0) {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError("Invalid Passport");
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false;
} else if (alternateIdNumber.length() > 25) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError("Invalid Driving License Card");
result = false;
} else {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(true);
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
}
} else {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false;
}
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(result);
// if (result)
// if (kycRelatedDataDTO.getPictures() != null && kycRelatedDataDTO.getPictures().getAlternateIDImageFile() != null) {
// log("Alternated validation setting to :"+true);
// alternateIdImageValidationSubject.onNext(true);
// }
// else {
// log("Alternated validation setting to :"+false);
// alternateIdImageValidationSubject.onNext(false);
// }
return result;
}
return true;
@ -1154,7 +1162,6 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
@Override
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) {
new Handler().postDelayed(() -> view.hideKeyBoard(), 300);
view.hideKeyBoard();
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
if (ID_TYPE_PASSPORT.equalsIgnoreCase(selectedIdType))
customerDetailErrorLiveDataDTO.setValueToPassportNoError(null);

13
app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV3/view/personal/CustomerDetailFragment.java

@ -14,6 +14,7 @@ import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.Settings;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
@ -897,6 +898,8 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
ed_passportId.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus) {
ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class).validatePassportNumberFromServer();
ed_passportId.setOnFocusChangeListener(null);
ed_passportId.clearFocus();
}
});
} else {
@ -908,9 +911,13 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
@Override
public void enableAlternateIdFocusChangeAndImeOptionListener(boolean action) {
if (action) {
Log.d("AlternateIdFocus", String.valueOf(action));
ed_anotherId.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus) {
Log.d("AlternateIdFocus", "Validation triggered");
ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class).validateAlternateIDFromServer();
ed_anotherId.setOnEditorActionListener(null);
ed_anotherId.clearFocus();
}
});
ed_anotherId.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@ -919,7 +926,10 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
if (actionId == EditorInfo.IME_ACTION_DONE) {
if (ed_anotherId.hasFocus()) {
ed_anotherId.clearFocus();
}
else
{
ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class).validateAlternateIDFromServer();
}
return true;
}
@ -927,6 +937,7 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
}
});
} else {
Log.d("AlternateIdFocus", String.valueOf(action));
ed_anotherId.setOnFocusChangeListener(null);
ed_anotherId.setOnEditorActionListener(null);
}

Loading…
Cancel
Save