package eu.ttbox.androgister.ui.core.validator.validate;
import android.content.Context;
import android.widget.TextView;
import eu.ttbox.androgister.ui.core.validator.ValidateField;
import eu.ttbox.androgister.ui.core.validator.Validator;
import eu.ttbox.androgister.ui.core.validator.validator.NotEmptyValidator;
/**
* Validator class to validate if the fields are empty fields of 2 or not. If
* one of them is null, no error. If both are nulls: Error
*
* @author throrin19
*
*/
public class OrTwoRequiredValidate implements ValidateField {
private TextView mField1;
private TextView mField2;
private Context mContext;
private TextView source;
private String mErrorMessage;
public OrTwoRequiredValidate(TextView field1, TextView field2) {
this.mField1 = field1;
this.mField2 = field2;
source = mField1;
mContext = field1.getContext();
}
@Override
public boolean isValid(CharSequence value) {
ValidateTextView field1Validator = new ValidateTextView(mField1) //
.addValidator(new NotEmptyValidator());
ValidateTextView field2Validator = new ValidateTextView(mField2) //
.addValidator(new NotEmptyValidator());
if (field1Validator.isValid(mField1.getText()) || field2Validator.isValid(mField2.getText())) {
return true;
} else {
mErrorMessage = field1Validator.getMessages();
return false;
}
}
@Override
public String getMessages() {
return mErrorMessage;
}
@Override
public OrTwoRequiredValidate addValidator(Validator validator) {
return this;
}
@Override
public TextView getSource() {
return source;
}
}