Browse Source

Validation checked for all case

master
Preyea Regmi 5 years ago
parent
commit
c975a223a4
  1. 9
      app/src/main/assets/mockeddynamicvalidationsinglecase.json
  2. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddeditV3/RecipientAddV3Gateway.java
  3. 17
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddeditV3/dynamicvalidation/ValidationRuleModel.java
  4. 365
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java
  5. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientPresenterInterface.java
  6. 10
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/add/RecipientAddV3Presenter.java
  7. 8
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/edit/RecipientEditV3Presenter.java
  8. 19
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientaddeditV3/RecipientAddEditV3Activity.java
  9. 14
      app/src/main/res/layout/activity_recipient_add_edit_v3.xml

9
app/src/main/assets/mockeddynamicvalidationsinglecase.json

@ -0,0 +1,9 @@
[
{
"Field": "Full Name",
"FieldRequired": "M",
"MinLength": "1",
"MaxLength": "10",
"Keyboard": "AN"
}
]

2
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<ValidationRuleModel> 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());
}
}

17
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();

365
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<String, ValidationRuleModel> validationRuleModelMap;
private final Map<String, Boolean> 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<>();
}
public ReceiverInfoV3Model getRecipientDetail()
{
private void mockTestinData() {
this.recipientInfo.setFullName("Some Random value");
}
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
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<String,ValidationRuleModel> 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);
}
}
}
}

4
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);
}

10
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<List<ValidationRuleModel>> {

8
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

19
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<CountryServiceModel> countryListingDialog;
GenericTextListingDialog<ServiceTypeModel> 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);
}
}

14
app/src/main/res/layout/activity_recipient_add_edit_v3.xml

@ -428,7 +428,19 @@
</LinearLayout>
<Button
android:id="@+id/btn_submit"
android:layout_width="200dp"
android:layout_height="45dp"
android:layout_gravity="center"
android:layout_marginBottom="30dp"
android:layout_marginTop="20dp"
android:enabled="false"
android:background="@drawable/ic_rounded_background_coloured"
android:text="@string/submit_text"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="16sp" />
</LinearLayout>
</ScrollView>

Loading…
Cancel
Save