From c975a223a4b91406ae8e5acffc6553d6cd191247 Mon Sep 17 00:00:00 2001 From: Preyea Regmi Date: Thu, 22 Aug 2019 11:59:29 +0900 Subject: [PATCH] Validation checked for all case --- .../mockeddynamicvalidationsinglecase.json | 9 + .../RecipientAddV3Gateway.java | 2 +- .../ValidationRuleModel.java | 17 + .../RecipientDetailValidatorV3.java | 367 ++++++++++-------- .../RecipientPresenterInterface.java | 4 +- .../add/RecipientAddV3Presenter.java | 10 +- .../edit/RecipientEditV3Presenter.java | 8 +- .../RecipientAddEditV3Activity.java | 19 +- .../layout/activity_recipient_add_edit_v3.xml | 14 +- 9 files changed, 274 insertions(+), 176 deletions(-) create mode 100644 app/src/main/assets/mockeddynamicvalidationsinglecase.json diff --git a/app/src/main/assets/mockeddynamicvalidationsinglecase.json b/app/src/main/assets/mockeddynamicvalidationsinglecase.json new file mode 100644 index 00000000..bd9e4bad --- /dev/null +++ b/app/src/main/assets/mockeddynamicvalidationsinglecase.json @@ -0,0 +1,9 @@ +[ + { + "Field": "Full Name", + "FieldRequired": "M", + "MinLength": "1", + "MaxLength": "10", + "Keyboard": "AN" + } +] \ No newline at end of file diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddeditV3/RecipientAddV3Gateway.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddeditV3/RecipientAddV3Gateway.java index 7496a218..1ad87f62 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddeditV3/RecipientAddV3Gateway.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddeditV3/RecipientAddV3Gateway.java @@ -33,7 +33,7 @@ public class RecipientAddV3Gateway extends PrivilegedGateway implements Recipien @Override public List getMockedValidationRuleList(Context context) { - String mockedCountryList =loadJSONFromAsset(context, "mockeddynamicvalidation.json"); + String mockedCountryList =loadJSONFromAsset(context, "mockeddynamicvalidationsinglecase.json"); return HttpClientV2.getDeserializer().fromJson(mockedCountryList, TypeToken.getParameterized(List.class, ValidationRuleModel.class).getType()); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddeditV3/dynamicvalidation/ValidationRuleModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddeditV3/dynamicvalidation/ValidationRuleModel.java index 5efbc830..60ffbedc 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddeditV3/dynamicvalidation/ValidationRuleModel.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddeditV3/dynamicvalidation/ValidationRuleModel.java @@ -1,5 +1,8 @@ package com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddeditV3.dynamicvalidation; +import android.util.Log; + +import com.gmeremit.online.gmeremittance_native.recipientV3.view.recipientaddeditV3.RecipientAddEditV3Activity; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; @@ -22,6 +25,8 @@ public class ValidationRuleModel { @Expose private String keyboardType; + private boolean hasValidValue; + public ValidationRuleModel( String field, String fieldRequired, String maxFieldLength, String minFieldLength, String keyboardType) { this.field = field; @@ -29,8 +34,18 @@ public class ValidationRuleModel { this.maxFieldLength = maxFieldLength; this.minFieldLength = minFieldLength; this.keyboardType = keyboardType; + this.hasValidValue=false; + } + + public void updateValidity(boolean isValid) + { + this.hasValidValue=isValid; } + public boolean hasValidValue() + { + return hasValidValue; + } public String getField() { @@ -103,6 +118,8 @@ public class ValidationRuleModel { public String validateValueAndReturnErrorMessageOnFail(String value) { + Log.d(RecipientAddEditV3Activity.TAG,"Data to be validated: "+value); + if (isFieldRequired()) { if (value == null || value.length() == 0) return getFieldIsRequiredErrorMessage(); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java index 141d4c5d..842b5355 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java @@ -1,17 +1,37 @@ package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddeditV3; -import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddeditV3.ValidationStateDTO; +import android.util.Log; + import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddeditV3.dynamicvalidation.ValidationRuleModel; import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model; import com.gmeremit.online.gmeremittance_native.recipientV3.utils.EditTextConfigurationFactory; +import com.gmeremit.online.gmeremittance_native.recipientV3.view.recipientaddeditV3.RecipientAddEditV3Activity; -import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; -import java.util.List; import java.util.Map; -import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.*; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_ACCOUNT_NO; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_ADDRESS; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_BANK_NAME; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_BRANCH_NAME; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_CITY; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_DISTRICT; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_EMAIL; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_FIRST_NAME; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_FIRST_NAME_IN_LOCAL; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_FULL_NAME; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_ID_NUMBER; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_ID_TYPE; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_LAST_NAME; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_LAST_NAME_IN_LOCAL; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_LOCAL_NAME; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_MIDDLE_NAME; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_MIDDLE_NAME_IN_LOCAL; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_MOBILE_NUMBER; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_PROVINCE; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_REALATION_GROUP; +import static com.gmeremit.online.gmeremittance_native.recipientV3.presenter.RecipientDetailValidatorFieldMappingV3.FIELD_TRANSFER_REASON; public class RecipientDetailValidatorV3 { @@ -19,28 +39,30 @@ public class RecipientDetailValidatorV3 { private final ReceiverInfoV3Model recipientInfo; private final Map validationRuleModelMap; - private final Map validationStateMap; public RecipientDetailValidatorV3(RecipientAddV3ContractInterface view, ReceiverInfoV3Model receiverInfoV3Model) { - if ( receiverInfoV3Model == null) { - receiverInfoV3Model=new ReceiverInfoV3Model(); + if (receiverInfoV3Model == null) { + receiverInfoV3Model = new ReceiverInfoV3Model(); } this.view = view; this.recipientInfo = receiverInfoV3Model; - validationRuleModelMap=new HashMap<>(); - validationStateMap=new HashMap<>(); + validationRuleModelMap = new HashMap<>(); + } + + private void mockTestinData() { + this.recipientInfo.setFullName("Some Random value"); } - public ReceiverInfoV3Model getRecipientDetail() - { + public ReceiverInfoV3Model getRecipientDetail() { return recipientInfo; } /** * Apply validation to corresponding widget - * If Business requirement to override existing data, do it here before updating the corresponding view + * If Business requirement is to override existing data, do it here before updating the corresponding view + * * @param rule */ public void applyDynamicValidationRuleToView(ValidationRuleModel rule) { @@ -52,18 +74,18 @@ public class RecipientDetailValidatorV3 { //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetBankName(""); view.updateValidationRuleToWidgetBankName(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_BANK_NAME,rule); + validationRuleModelMap.put(FIELD_BANK_NAME, rule); break; case FIELD_BRANCH_NAME: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetBranchName(""); view.updateValidationRuleToWidgetBranchName(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_BRANCH_NAME,rule); + validationRuleModelMap.put(FIELD_BRANCH_NAME, rule); break; @@ -71,36 +93,36 @@ public class RecipientDetailValidatorV3 { //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetAccountNo(""); view.updateValidationRuleToWidgetAccountNo(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_ACCOUNT_NO,rule); + validationRuleModelMap.put(FIELD_ACCOUNT_NO, rule); break; case FIELD_ID_TYPE: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetIDType(""); view.updateValidationRuleToWidgetIDType(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_ID_TYPE,rule); + validationRuleModelMap.put(FIELD_ID_TYPE, rule); break; case FIELD_ID_NUMBER: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetIDNumber(""); view.updateValidationRuleToWidgetIDNumber(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_ID_NUMBER,rule); + validationRuleModelMap.put(FIELD_ID_NUMBER, rule); break; case FIELD_FIRST_NAME: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetFirstName(""); view.updateValidationRuleToWidgetFirstName(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_FIRST_NAME,rule); + validationRuleModelMap.put(FIELD_FIRST_NAME, rule); break; @@ -108,9 +130,9 @@ public class RecipientDetailValidatorV3 { //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetMiddleName(""); view.updateValidationRuleToWidgetMiddleName(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_MIDDLE_NAME,rule); + validationRuleModelMap.put(FIELD_MIDDLE_NAME, rule); break; @@ -118,146 +140,150 @@ public class RecipientDetailValidatorV3 { //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetLastName(""); view.updateValidationRuleToWidgetLastName(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_LAST_NAME,rule); + validationRuleModelMap.put(FIELD_LAST_NAME, rule); break; case FIELD_FULL_NAME: //TODO Add Respective value when avialable in reciever info - view.updateValueToWidgetFullName(""); + mockTestinData(); + if (recipientInfo.getFullName() != null && recipientInfo.getFullName().length() > 0) { + rule.updateValidity(true); + view.updateValueToWidgetFullName(recipientInfo.getFullName()); + } + else { + rule.updateValidity(false); + view.updateValueToWidgetFullName(""); + } + view.updateValidationRuleToWidgetFullName(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_FULL_NAME,rule); + validationRuleModelMap.put(FIELD_FULL_NAME, rule); break; case FIELD_FIRST_NAME_IN_LOCAL: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetLocalFirstName(""); view.updateValidationRuleToWidgetLocalFirstName(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_FIRST_NAME_IN_LOCAL,rule); + validationRuleModelMap.put(FIELD_FIRST_NAME_IN_LOCAL, rule); break; case FIELD_MIDDLE_NAME_IN_LOCAL: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetLocalMiddleName(""); view.updateValidationRuleToWidgetLocalMiddleName(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_MIDDLE_NAME_IN_LOCAL,rule); + validationRuleModelMap.put(FIELD_MIDDLE_NAME_IN_LOCAL, rule); break; case FIELD_LAST_NAME_IN_LOCAL: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetLocalLastName(""); view.updateValidationRuleToWidgetLocalLastName(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_LAST_NAME_IN_LOCAL,rule); + validationRuleModelMap.put(FIELD_LAST_NAME_IN_LOCAL, rule); break; case FIELD_LOCAL_NAME: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetLocalFullName(""); view.updateValidationRuleToWidgetLocalFullName(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_LOCAL_NAME,rule); + validationRuleModelMap.put(FIELD_LOCAL_NAME, rule); break; case FIELD_MOBILE_NUMBER: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetMobileNumber(""); view.updateValidationRuleToWidgetMobileNumber(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_MOBILE_NUMBER,rule); + validationRuleModelMap.put(FIELD_MOBILE_NUMBER, rule); break; case FIELD_PROVINCE: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetProvince(""); view.updateValidationRuleToWidgetProvince(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_PROVINCE,rule); + validationRuleModelMap.put(FIELD_PROVINCE, rule); break; case FIELD_DISTRICT: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetDistrict(""); view.updateValidationRuleToWidgetDistrict(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_DISTRICT,rule); + validationRuleModelMap.put(FIELD_DISTRICT, rule); break; case FIELD_CITY: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetCity(""); view.updateValidationRuleToWidgetCity(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_CITY,rule); + validationRuleModelMap.put(FIELD_CITY, rule); break; case FIELD_ADDRESS: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetAddress(""); view.updateValidationRuleToWidgetAddress(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_ADDRESS,rule); + validationRuleModelMap.put(FIELD_ADDRESS, rule); break; case FIELD_REALATION_GROUP: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetRelation(""); view.updateValidationRuleToWidgetRelation(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_REALATION_GROUP,rule); + validationRuleModelMap.put(FIELD_REALATION_GROUP, rule); break; case FIELD_TRANSFER_REASON: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetTransferReason(""); view.updateValidationRuleToWidgetTransferReason(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_TRANSFER_REASON,rule); + validationRuleModelMap.put(FIELD_TRANSFER_REASON, rule); break; case FIELD_EMAIL: //TODO Add Respective value when avialable in reciever info view.updateValueToWidgetTransferReason(""); view.updateValidationRuleToWidgetTransferReason(rule.isFieldRequired(), - EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(),rule.isLocalKeyboardAllowed(), + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(rule.getKeyboardType(), rule.isLocalKeyboardAllowed(), rule.getMaxFieldLengthInt())); - validationRuleModelMap.put(FIELD_EMAIL,rule); + validationRuleModelMap.put(FIELD_EMAIL, rule); break; } } - - - - public void validateLocalName(String fullName) - { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_LOCAL_NAME); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(fullName); - if(error==null) { + public void validateLocalFullName(String fullName) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_LOCAL_NAME); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(fullName); + if (error == null) { recipientInfo.setName(fullName); view.setErrorOnWidgetFullName(null); validateAll(); - } - else { + } else { //Current implmentation will override existing information data recipientInfo.setName(""); view.setErrorOnWidgetFullName(error); @@ -266,52 +292,57 @@ public class RecipientDetailValidatorV3 { } - private boolean validateAll() { + private void validateAll() { - boolean areAllFormValid=true; + boolean areAllFormValid = true; + Iterator it = validationRuleModelMap.entrySet().iterator(); + while (it.hasNext()) { + Map.Entry pair = (Map.Entry)it.next(); + if(!pair.getValue().hasValidValue()) + { + areAllFormValid=false; + break; + } + } view.setSubmitButtonEnabled(areAllFormValid); - return areAllFormValid; } /** - * - public static final String FIELD_BANK_NAME="Bank Name"; - public static final String FIELD_BRANCH_NAME="Branch Name"; - public static final String FIELD_ACCOUNT_NO="Account No."; - public static final String FIELD_ID_TYPE="Id Type"; - public static final String FIELD_ID_NUMBER="ID Number"; - public static final String FIELD_FIRST_NAME="First Name"; - public static final String FIELD_MIDDLE_NAME="Middle Name"; - public static final String FIELD_LAST_NAME="Last Name"; - public static final String FIELD_FULL_NAME="Full Name"; - public static final String FIELD_FIRST_NAME_IN_LOCAL="First Name in Local"; - public static final String FIELD_MIDDLE_NAME_IN_LOCAL="Middle Name in Local"; - public static final String FIELD_LAST_NAME_IN_LOCAL="Last Name in Local"; - public static final String FIELD_LOCAL_NAME="Local Name"; - public static final String FIELD_MOBILE_NUMBER="Mobile Number"; - public static final String FIELD_PROVINCE="Province"; - public static final String FIELD_DISTRICT="District"; - public static final String FIELD_CITY="City"; - public static final String FIELD_ADDRESS="Address"; - public static final String FIELD_REALATION_GROUP="Realation Group"; - public static final String FIELD_TRANSFER_REASON="Transfer Reason"; - + * public static final String FIELD_BANK_NAME="Bank Name"; + * public static final String FIELD_BRANCH_NAME="Branch Name"; + * public static final String FIELD_ACCOUNT_NO="Account No."; + * public static final String FIELD_ID_TYPE="Id Type"; + * public static final String FIELD_ID_NUMBER="ID Number"; + * public static final String FIELD_FIRST_NAME="First Name"; + * public static final String FIELD_MIDDLE_NAME="Middle Name"; + * public static final String FIELD_LAST_NAME="Last Name"; + * public static final String FIELD_FULL_NAME="Full Name"; + * public static final String FIELD_FIRST_NAME_IN_LOCAL="First Name in Local"; + * public static final String FIELD_MIDDLE_NAME_IN_LOCAL="Middle Name in Local"; + * public static final String FIELD_LAST_NAME_IN_LOCAL="Last Name in Local"; + * public static final String FIELD_LOCAL_NAME="Local Name"; + * public static final String FIELD_MOBILE_NUMBER="Mobile Number"; + * public static final String FIELD_PROVINCE="Province"; + * public static final String FIELD_DISTRICT="District"; + * public static final String FIELD_CITY="City"; + * public static final String FIELD_ADDRESS="Address"; + * public static final String FIELD_REALATION_GROUP="Realation Group"; + * public static final String FIELD_TRANSFER_REASON="Transfer Reason"; */ public void validateAccountNo(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_ACCOUNT_NO); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_ACCOUNT_NO); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetAccountNo(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetAccountNo(error); @@ -321,15 +352,14 @@ public class RecipientDetailValidatorV3 { public void validateFirstName(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_ACCOUNT_NO); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_ACCOUNT_NO); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetFirstName(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetFirstName(error); @@ -338,15 +368,14 @@ public class RecipientDetailValidatorV3 { } public void validateMiddleName(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_MIDDLE_NAME); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_MIDDLE_NAME); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetMiddleName(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetMiddleName(error); @@ -355,15 +384,14 @@ public class RecipientDetailValidatorV3 { } public void validateLastName(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_LAST_NAME); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_LAST_NAME); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetLastName(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetLastName(error); @@ -373,15 +401,14 @@ public class RecipientDetailValidatorV3 { public void validateCity(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_CITY); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_CITY); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetCity(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetCity(error); @@ -391,15 +418,14 @@ public class RecipientDetailValidatorV3 { public void validateAddress(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_ADDRESS); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_ADDRESS); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetAddress(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetAddress(error); @@ -409,15 +435,14 @@ public class RecipientDetailValidatorV3 { public void validateMobileNumber(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_MOBILE_NUMBER); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_MOBILE_NUMBER); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetMobileNumber(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetMobileNumber(error); @@ -427,15 +452,14 @@ public class RecipientDetailValidatorV3 { public void validateEmail(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_EMAIL); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_EMAIL); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetEmail(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetEmail(error); @@ -445,15 +469,14 @@ public class RecipientDetailValidatorV3 { public void validateIdNumber(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_ID_NUMBER); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_ID_NUMBER); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetIDNumber(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetIDNumber(error); @@ -463,15 +486,14 @@ public class RecipientDetailValidatorV3 { public void validateFirstNameLocal(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_FIRST_NAME_IN_LOCAL); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_FIRST_NAME_IN_LOCAL); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetLocalFirstName(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetLocalFirstName(error); @@ -481,15 +503,14 @@ public class RecipientDetailValidatorV3 { public void validateMiddleNameLocal(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_MIDDLE_NAME_IN_LOCAL); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_MIDDLE_NAME_IN_LOCAL); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetLocalMiddleName(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetLocalMiddleName(error); @@ -499,19 +520,39 @@ public class RecipientDetailValidatorV3 { public void validateLastNameLocal(String text) { - ValidationRuleModel validationRuleModel=validationRuleModelMap.get(FIELD_LAST_NAME_IN_LOCAL); - if(validationRuleModel!=null) { - String error=validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); - if(error==null) { + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_LAST_NAME_IN_LOCAL); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + if (error == null) { recipientInfo.setName(text); view.setErrorOnWidgetLocalLastName(null); validateAll(); - } - else { + } else { //TODO update recipientInfo if required recipientInfo.setName(""); view.setErrorOnWidgetLocalLastName(error); } } } + + public void validateFullName(String text) { + Log.d(RecipientAddEditV3Activity.TAG,"Full name validation called"); + ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_FULL_NAME); + if (validationRuleModel != null) { + String error = validationRuleModel.validateValueAndReturnErrorMessageOnFail(text); + Log.d(RecipientAddEditV3Activity.TAG,"Full name validation result :"+error); + if (error == null) { + validationRuleModel.updateValidity(true); + recipientInfo.setName(text); + view.setErrorOnWidgetFullName(null); + validateAll(); + } else { + //TODO update recipientInfo if required + validationRuleModel.updateValidity(false); + view.setSubmitButtonEnabled(false); + recipientInfo.setName(""); + view.setErrorOnWidgetFullName(error); + } + } + } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientPresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientPresenterInterface.java index 116ffaf0..9ff2f90b 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientPresenterInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientPresenterInterface.java @@ -10,7 +10,7 @@ public interface RecipientPresenterInterface extends BasePresenterInterface { void onCountryServiceSelected(CountryServiceModel selectedCountry); - void onRecipientLocalNameChanged(String rec); + void onRecipientLocalFullNameChanged(String rec); void onServiceTypeSelected(ServiceTypeModel selectedServiceType); @@ -42,4 +42,6 @@ public interface RecipientPresenterInterface extends BasePresenterInterface { void onRecipientLocalMiddleNameChanged(String text); void onRecipientLocalLastNameChanged(String text); + + void onRecipientFullNameChanged(String text); } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/add/RecipientAddV3Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/add/RecipientAddV3Presenter.java index 758924ef..336163a8 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/add/RecipientAddV3Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/add/RecipientAddV3Presenter.java @@ -208,8 +208,8 @@ public class RecipientAddV3Presenter extends BasePresenter implements RecipientA } @Override - public void onRecipientLocalNameChanged(String recipientName) { - validator.validateLocalName(recipientName); + public void onRecipientLocalFullNameChanged(String recipientName) { + validator.validateLocalFullName(recipientName); } @Override @@ -254,6 +254,12 @@ public class RecipientAddV3Presenter extends BasePresenter implements RecipientA validator.validateLastNameLocal(text); } + @Override + public void onRecipientFullNameChanged(String text) { + validator.validateFullName(text); + + } + public class DynamicListObserver extends GenericApiObserverResponseV2> { diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/edit/RecipientEditV3Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/edit/RecipientEditV3Presenter.java index 9b480fa6..deb040ea 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/edit/RecipientEditV3Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/edit/RecipientEditV3Presenter.java @@ -137,8 +137,8 @@ public class RecipientEditV3Presenter extends BasePresenter implements Recipient } @Override - public void onRecipientLocalNameChanged(String recipientName) { - validator.validateLocalName(recipientName); + public void onRecipientLocalFullNameChanged(String recipientName) { + validator.validateLocalFullName(recipientName); } @Override @@ -183,6 +183,10 @@ public class RecipientEditV3Presenter extends BasePresenter implements Recipient validator.validateLastNameLocal(text); } + @Override + public void onRecipientFullNameChanged(String text) { + validator.validateFullName(text); + } @Override diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientaddeditV3/RecipientAddEditV3Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientaddeditV3/RecipientAddEditV3Activity.java index 507fafc8..f838256b 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientaddeditV3/RecipientAddEditV3Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientaddeditV3/RecipientAddEditV3Activity.java @@ -5,6 +5,7 @@ import android.support.transition.TransitionManager; import android.util.Log; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; @@ -32,7 +33,7 @@ import static android.view.View.GONE; public class RecipientAddEditV3Activity extends BaseActivity implements RecipientAddV3ContractInterface, View.OnClickListener { - private static final String TAG = RecipientAddEditV3Activity.class.getSimpleName(); + public static final String TAG = RecipientAddEditV3Activity.class.getSimpleName(); @BindView(R.id.receiverFromViewContainer) LinearLayout receiverFormViewContainer; @@ -143,6 +144,9 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien @BindView(R.id.recieverIdNumberFormInputField) GMEFormInputField recieverIdNumberFormInputField; + @BindView(R.id.btn_submit) + Button submitBtn; + GenericImageWithTextListingDialog countryListingDialog; GenericTextListingDialog serviceMethodListingDialog; @@ -223,7 +227,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien recieverFirstNameFormInputField.addTextWatchers(recieverFirstNameTextWatcher); recieverMiddleNameFormInputField.addTextWatchers(recieverMiddleNameTextWatcher); recieverLastNameFormInputField.addTextWatchers(recieverLastNameTextWatcher); - recieverFullNameFormInputField.removeTextWatchers(recieverFullNameTextWatcher); + recieverFullNameFormInputField.addTextWatchers(recieverFullNameTextWatcher); recieverLocalFirstNameFormInputField.addTextWatchers(recieverFirstNameLocalTextWatcher); @@ -262,6 +266,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien @Override public void setSubmitButtonEnabled(boolean action) { Log.d(TAG,"Button state enabled :"+action); + submitBtn.setEnabled(action); } private void registerClickListener(boolean action) { @@ -410,6 +415,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien @Override public void updateValueToWidgetFullName(String value) { + Log.d(TAG,"Existing full name :"+ value); recieverFullNameFormInputField.getEditTextView().setText(value); } @@ -673,7 +679,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien @Override public void setErrorOnWidgetFullName(String error) { - recieverLocalFullNameFormInputField.updateErrorSafely(error); + recieverFullNameFormInputField.updateErrorSafely(error); } @@ -722,7 +728,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien { if(indexId<0) return; - for(int i = indexId; i< receiverFormViewContainer.getChildCount(); i++) + for(int i = indexId; i< receiverFormViewContainer.getChildCount()-1; i++) { receiverFormViewContainer.getChildAt(i).setVisibility(GONE); } @@ -960,7 +966,8 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien public class RecipientFullNameTextWatcher extends TextWatcherAdapter { @Override public void onTextUpdated(String text) { - presenter.onRecipientLocalNameChanged(text); + Log.d(TAG,"Full name textwatcher called"); + presenter.onRecipientFullNameChanged(text); } } @@ -989,7 +996,7 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien public class RecipientLocalFullNameTextWatcher extends TextWatcherAdapter { @Override public void onTextUpdated(String text) { - presenter.onRecipientLocalNameChanged(text); + presenter.onRecipientLocalFullNameChanged(text); } } diff --git a/app/src/main/res/layout/activity_recipient_add_edit_v3.xml b/app/src/main/res/layout/activity_recipient_add_edit_v3.xml index 9c71300d..e45c4b10 100644 --- a/app/src/main/res/layout/activity_recipient_add_edit_v3.xml +++ b/app/src/main/res/layout/activity_recipient_add_edit_v3.xml @@ -428,7 +428,19 @@ - +