package br.com.ilhasoft.support.validation.binding; import android.databinding.BindingAdapter; import android.widget.TextView; import br.com.ilhasoft.support.validation.R; import br.com.ilhasoft.support.validation.rule.EmailTypeRule; import br.com.ilhasoft.support.validation.rule.EmptyRule; import br.com.ilhasoft.support.validation.rule.MaxLengthRule; import br.com.ilhasoft.support.validation.rule.MinLengthRule; import br.com.ilhasoft.support.validation.util.EditTextHandler; import br.com.ilhasoft.support.validation.util.ErrorMessageHelper; import br.com.ilhasoft.support.validation.util.ViewTagHelper; /** * Created by john-mac on 5/14/16. */ public class LengthBindings { @BindingAdapter(value = {"validateMinLength", "validateMinLengthMessage", "validateMinLengthAutoDismiss"}, requireAll = false) public static void bindingMinLength(TextView view, int minLength, String errorMessage, boolean autoDismiss) { if (autoDismiss) { EditTextHandler.disableErrorOnChanged(view); } String handledErrorMessage = ErrorMessageHelper.getStringOrDefault(view, errorMessage, R.string.error_message_min_length, minLength); ViewTagHelper.appendValue(R.id.validator_rule, view, new MinLengthRule(view, minLength, handledErrorMessage)); } @BindingAdapter(value = {"validateMaxLength", "validateMaxLengthMessage", "validateMaxLengthAutoDismiss"}, requireAll = false) public static void bindingMaxLength(TextView view, int maxLength, String errorMessage, boolean autoDismiss) { if (autoDismiss) { EditTextHandler.disableErrorOnChanged(view); } String handledErrorMessage = ErrorMessageHelper.getStringOrDefault(view, errorMessage, R.string.error_message_max_length, maxLength); ViewTagHelper.appendValue(R.id.validator_rule, view, new MaxLengthRule(view, maxLength, handledErrorMessage)); } @BindingAdapter(value = {"validateEmpty", "validateEmptyMessage", "validateEmptyAutoDismiss"}, requireAll = false) public static void bindingEmpty(TextView view, boolean empty, String errorMessage, boolean autoDismiss) { if (autoDismiss) { EditTextHandler.disableErrorOnChanged(view); } String handledErrorMessage = ErrorMessageHelper.getStringOrDefault(view, errorMessage, R.string.error_message_empty_validation); ViewTagHelper.appendValue(R.id.validator_rule, view, new EmptyRule(view, empty, handledErrorMessage)); } }