Skip to content
This repository was archived by the owner on Nov 5, 2025. It is now read-only.

Commit b5c0042

Browse files
author
John Cordeiro
committed
Add option to not auto dismiss field validation errors
1 parent e863ffc commit b5c0042

6 files changed

Lines changed: 38 additions & 22 deletions

File tree

library/src/main/java/br/com/ilhasoft/support/validation/binding/DateBindings.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
*/
1515
public class DateBindings {
1616

17-
@BindingAdapter(value = {"validateDate", "validateDateMessage"}, requireAll = false)
18-
public static void bindingDate(TextView view, String pattern, String errorMessage) {
19-
EditTextHandler.disableErrorOnChanged(view);
17+
@BindingAdapter(value = {"validateDate", "validateDateMessage", "validateDateAutoDismiss"}, requireAll = false)
18+
public static void bindingDate(TextView view, String pattern, String errorMessage, Boolean autoDismiss) {
19+
if (autoDismiss == null || autoDismiss) {
20+
EditTextHandler.disableErrorOnChanged(view);
21+
}
2022

2123
String handledErrorMessage = ErrorMessageHelper.getStringOrDefault(view,
2224
errorMessage, R.string.error_message_date_validation);

library/src/main/java/br/com/ilhasoft/support/validation/binding/LengthBindings.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,33 @@
1717
*/
1818
public class LengthBindings {
1919

20-
@BindingAdapter(value = {"validateMinLength", "validateMinLengthMessage"}, requireAll = false)
21-
public static void bindingMinLength(TextView view, int minLength, String errorMessage) {
22-
EditTextHandler.disableErrorOnChanged(view);
20+
@BindingAdapter(value = {"validateMinLength", "validateMinLengthMessage", "validateMinLengthAutoDismiss"}, requireAll = false)
21+
public static void bindingMinLength(TextView view, int minLength, String errorMessage, Boolean autoDismiss) {
22+
if (autoDismiss == null || autoDismiss) {
23+
EditTextHandler.disableErrorOnChanged(view);
24+
}
2325

2426
String handledErrorMessage = ErrorMessageHelper.getStringOrDefault(view,
2527
errorMessage, R.string.error_message_min_length, minLength);
2628
ViewTagHelper.appendValue(R.id.validator_rule, view, new MinLengthRule(view, minLength, handledErrorMessage));
2729
}
2830

29-
@BindingAdapter(value = {"validateMaxLength", "validateMaxLengthMessage"}, requireAll = false)
30-
public static void bindingMaxLength(TextView view, int maxLength, String errorMessage) {
31-
EditTextHandler.disableErrorOnChanged(view);
31+
@BindingAdapter(value = {"validateMaxLength", "validateMaxLengthMessage", "validateMaxLengthAutoDismiss"}, requireAll = false)
32+
public static void bindingMaxLength(TextView view, int maxLength, String errorMessage, Boolean autoDismiss) {
33+
if (autoDismiss == null || autoDismiss) {
34+
EditTextHandler.disableErrorOnChanged(view);
35+
}
3236

3337
String handledErrorMessage = ErrorMessageHelper.getStringOrDefault(view,
3438
errorMessage, R.string.error_message_max_length, maxLength);
3539
ViewTagHelper.appendValue(R.id.validator_rule, view, new MaxLengthRule(view, maxLength, handledErrorMessage));
3640
}
3741

38-
@BindingAdapter(value = {"validateEmpty", "validateEmptyMessage"}, requireAll = false)
39-
public static void bindingEmpty(TextView view, boolean empty, String errorMessage) {
40-
EditTextHandler.disableErrorOnChanged(view);
42+
@BindingAdapter(value = {"validateEmpty", "validateEmptyMessage", "validateEmptyAutoDismiss"}, requireAll = false)
43+
public static void bindingEmpty(TextView view, boolean empty, String errorMessage, Boolean autoDismiss) {
44+
if (autoDismiss == null || autoDismiss) {
45+
EditTextHandler.disableErrorOnChanged(view);
46+
}
4147

4248
String handledErrorMessage = ErrorMessageHelper.getStringOrDefault(view,
4349
errorMessage, R.string.error_message_empty_validation);

library/src/main/java/br/com/ilhasoft/support/validation/binding/PasswordBindings.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
*/
1515
public class PasswordBindings {
1616

17-
@BindingAdapter(value = {"validatePassword", "validatePasswordMessage"}, requireAll = false)
18-
public static void bindingPassword(TextView view, TextView comparableView, String errorMessage) {
19-
EditTextHandler.disableErrorOnChanged(view);
17+
@BindingAdapter(value = {"validatePassword", "validatePasswordMessage", "validatePasswordAutoDismiss"}, requireAll = false)
18+
public static void bindingPassword(TextView view, TextView comparableView, String errorMessage, Boolean autoDismiss) {
19+
if (autoDismiss == null || autoDismiss) {
20+
EditTextHandler.disableErrorOnChanged(view);
21+
}
2022

2123
String handledErrorMessage = ErrorMessageHelper.getStringOrDefault(view,
2224
errorMessage, R.string.error_message_not_equal_password);

library/src/main/java/br/com/ilhasoft/support/validation/binding/RegexBindings.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
*/
1515
public class RegexBindings {
1616

17-
@BindingAdapter(value = {"validateRegex", "validateRegexMessage"}, requireAll = false)
18-
public static void bindingRegex(TextView view, String pattern, String errorMessage) {
19-
EditTextHandler.disableErrorOnChanged(view);
17+
@BindingAdapter(value = {"validateRegex", "validateRegexMessage", "validateRegexAutoDismiss"}, requireAll = false)
18+
public static void bindingRegex(TextView view, String pattern, String errorMessage, Boolean autoDismiss) {
19+
if (autoDismiss == null || autoDismiss) {
20+
EditTextHandler.disableErrorOnChanged(view);
21+
}
2022

2123
String handledErrorMessage = ErrorMessageHelper.getStringOrDefault(view,
2224
errorMessage, R.string.error_message_regex_validation);

library/src/main/java/br/com/ilhasoft/support/validation/binding/TypeBindings.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@
1515
*/
1616
public class TypeBindings {
1717

18-
@BindingAdapter(value = {"validateType", "validateTypeMessage"}, requireAll = false)
19-
public static void bindingTypeValidation(TextView view, String fieldTypeText, String errorMessage) {
20-
EditTextHandler.disableErrorOnChanged(view);
18+
@BindingAdapter(value = {"validateType", "validateTypeMessage", "validateTypeAutoDismiss"}, requireAll = false)
19+
public static void bindingTypeValidation(TextView view, String fieldTypeText, String errorMessage, Boolean autoDismiss) {
20+
if (autoDismiss == null || autoDismiss) {
21+
EditTextHandler.disableErrorOnChanged(view);
22+
}
2123
TypeRule.FieldType fieldType = getFieldTypeByText(fieldTypeText);
2224
try {
2325
String handledErrorMessage = ErrorMessageHelper.getStringOrDefault(view,

sample/src/main/res/layout/activity_main.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
android:hint="Name"
2626
app:validateMinLength="@{4}"
2727
app:validateMinLengthMessage="@{@string/custom_error_min_length}"
28+
app:validateMinLengthAutoDismiss="@{false}"
2829
app:validateMaxLength="@{10}"
2930
app:validateMaxLengthMessage="@{@string/custom_error_max_length}"/>
3031

@@ -40,7 +41,8 @@
4041
android:layout_height="wrap_content"
4142
android:hint="Username"
4243
app:validateType='@{"username"}'
43-
app:validateTypeMessage="@{@string/custom_error_username}" />
44+
app:validateTypeMessage="@{@string/custom_error_username}"
45+
app:validateTypeAutoDismiss="@{false}"/>
4446

4547
</android.support.design.widget.TextInputLayout>
4648

0 commit comments

Comments
 (0)