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

67
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) if (shouldRedirectToPennyTestScreen)
requestPennyTestFromServer("N");
new Handler().postDelayed(() -> requestPennyTestFromServer("N"), 300);
//new Handler().postDelayed(()->customerKoreanLiveData.setValue(!isCustomerKorean),5000); //new Handler().postDelayed(()->customerKoreanLiveData.setValue(!isCustomerKorean),5000);
} }
@ -251,7 +251,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.map(responseBody -> fileDownloadGateway.writeToFile(responseBody, fileDownloadGateway.getTempFile(view.getContext(), "AlternateIdDoc"))) .map(responseBody -> fileDownloadGateway.writeToFile(responseBody, fileDownloadGateway.getTempFile(view.getContext(), "AlternateIdDoc")))
.subscribe(downloadedFile -> { .subscribe(downloadedFile -> {
data.getPictures().setAlternateIDImageAsFile(downloadedFile);
data.getPictures().setPassportImageAsFile(downloadedFile);
passportImageLiveData.setValue(ImageUtils.generateThumbnailFromImageFile(downloadedFile.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)); passportImageLiveData.setValue(ImageUtils.generateThumbnailFromImageFile(downloadedFile.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH));
})); }));
@ -262,7 +262,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
.map(responseBody -> fileDownloadGateway.writeToFile(responseBody, fileDownloadGateway.getTempFile(view.getContext(), "PassportIdDoc"))) .map(responseBody -> fileDownloadGateway.writeToFile(responseBody, fileDownloadGateway.getTempFile(view.getContext(), "PassportIdDoc")))
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(downloadedFile -> { .subscribe(downloadedFile -> {
data.getPictures().setPassportImageAsFile(downloadedFile);
data.getPictures().setAlternateIDImageAsFile(downloadedFile);
alternateIDImageLiveData.setValue(ImageUtils.generateThumbnailFromImageFile(downloadedFile.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH)); alternateIDImageLiveData.setValue(ImageUtils.generateThumbnailFromImageFile(downloadedFile.getAbsolutePath(), THUMBNAIL_HEIGHT, THUMBNAIL_WIDTH));
})); }));
@ -346,7 +346,9 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
return Observable.combineLatest( return Observable.combineLatest(
passportImageValidationSubject, passportImageValidationSubject,
alternateIdImageValidationSubject, 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 (ID_TYPE_NATIONAL_ID_CARD.equalsIgnoreCase(selectedIdType)) {
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0)
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0) {
result = false; result = false;
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
}
if (alternateIdNumber == null || alternateIdNumber.length() == 0) { if (alternateIdNumber == null || alternateIdNumber.length() == 0) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false; result = false;
} else if (alternateIdNumber.length() != ID_CARD_VALID_LENGTH) { } else if (alternateIdNumber.length() != ID_CARD_VALID_LENGTH) {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError("Invalid National Id Card"); customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError("Invalid National Id Card");
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false); view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false; result = false;
} else { } else {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(true); view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(true);
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
} }
} else if (ID_TYPE_ALIEN_REGISTRATION_CARD.equalsIgnoreCase(selectedIdType)) { } 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; result = false;
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0)
}
if (alternateIdIssuedDate == null || alternateIdIssuedDate.length() == 0) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false; result = false;
}
if (alternateIdNumber == null || alternateIdNumber.length() == 0) { if (alternateIdNumber == null || alternateIdNumber.length() == 0) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false; result = false;
} else if (alternateIdNumber.length() != ID_CARD_VALID_LENGTH) { } else if (alternateIdNumber.length() != ID_CARD_VALID_LENGTH) {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError("Invalid Alien Id Card"); 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)) { } 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); view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = 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; result = false;
}
if (alternateIdNumber == null || alternateIdNumber.length() == 0) { if (alternateIdNumber == null || alternateIdNumber.length() == 0) {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError("Invalid Passport");
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false); view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = false; result = false;
} else if (alternateIdNumber.length() > 25) {
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError("Invalid Driving License Card");
result = false;
} else { } else {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(true); view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(true);
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
} }
} else { } else {
customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null); customerDetailErrorLiveDataDTO.setValueToAnotherIdNoError(null);
view.getCustomerDetailViewContract().enableAlternateIdFocusChangeAndImeOptionListener(false);
result = 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 result;
} }
return true; return true;
@ -1154,7 +1162,6 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
@Override @Override
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) { protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) {
new Handler().postDelayed(() -> view.hideKeyBoard(), 300); new Handler().postDelayed(() -> view.hideKeyBoard(), 300);
view.hideKeyBoard();
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
if (ID_TYPE_PASSPORT.equalsIgnoreCase(selectedIdType)) if (ID_TYPE_PASSPORT.equalsIgnoreCase(selectedIdType))
customerDetailErrorLiveDataDTO.setValueToPassportNoError(null); 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.os.Bundle;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.provider.Settings; import android.provider.Settings;
import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -897,6 +898,8 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
ed_passportId.setOnFocusChangeListener((v, hasFocus) -> { ed_passportId.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus) { if (!hasFocus) {
ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class).validatePassportNumberFromServer(); ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class).validatePassportNumberFromServer();
ed_passportId.setOnFocusChangeListener(null);
ed_passportId.clearFocus();
} }
}); });
} else { } else {
@ -908,9 +911,13 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
@Override @Override
public void enableAlternateIdFocusChangeAndImeOptionListener(boolean action) { public void enableAlternateIdFocusChangeAndImeOptionListener(boolean action) {
if (action) { if (action) {
Log.d("AlternateIdFocus", String.valueOf(action));
ed_anotherId.setOnFocusChangeListener((v, hasFocus) -> { ed_anotherId.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus) { if (!hasFocus) {
Log.d("AlternateIdFocus", "Validation triggered");
ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class).validateAlternateIDFromServer(); ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class).validateAlternateIDFromServer();
ed_anotherId.setOnEditorActionListener(null);
ed_anotherId.clearFocus();
} }
}); });
ed_anotherId.setOnEditorActionListener(new TextView.OnEditorActionListener() { ed_anotherId.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@ -919,7 +926,10 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
if (actionId == EditorInfo.IME_ACTION_DONE) { if (actionId == EditorInfo.IME_ACTION_DONE) {
if (ed_anotherId.hasFocus()) { if (ed_anotherId.hasFocus()) {
ed_anotherId.clearFocus(); ed_anotherId.clearFocus();
}
else
{
ViewModelProviders.of(getActivity()).get(KYCV3ViewModel.class).validateAlternateIDFromServer();
} }
return true; return true;
} }
@ -927,6 +937,7 @@ public class CustomerDetailFragment extends BaseFragment implements KYCV3Present
} }
}); });
} else { } else {
Log.d("AlternateIdFocus", String.valueOf(action));
ed_anotherId.setOnFocusChangeListener(null); ed_anotherId.setOnFocusChangeListener(null);
ed_anotherId.setOnEditorActionListener(null); ed_anotherId.setOnEditorActionListener(null);
} }

Loading…
Cancel
Save