From c1849585be90033654060b43fd33ae4efc2e68c1 Mon Sep 17 00:00:00 2001 From: Ilia Kurtov Date: Mon, 30 Jan 2017 14:12:58 +0300 Subject: [PATCH] updated validation --- .../templates/validation/ValidationFunc.java | 12 ++++++++++++ .../templates/validation/ValidationState.java | 3 +-- .../templates/validation/ViewWithError.java | 4 +++- .../TwoWayValidationController.java | 2 +- .../validation/validators/EditTextValidator.java | 16 +++++++++------- 5 files changed, 26 insertions(+), 11 deletions(-) create mode 100644 src/main/java/ru/touchin/templates/validation/ValidationFunc.java diff --git a/src/main/java/ru/touchin/templates/validation/ValidationFunc.java b/src/main/java/ru/touchin/templates/validation/ValidationFunc.java new file mode 100644 index 0000000..23356dd --- /dev/null +++ b/src/main/java/ru/touchin/templates/validation/ValidationFunc.java @@ -0,0 +1,12 @@ +package ru.touchin.templates.validation; + +import android.support.annotation.NonNull; + +import java.io.Serializable; + +public interface ValidationFunc extends Serializable { + + @NonNull + TReturn call(@NonNull final TInput input); + +} \ No newline at end of file diff --git a/src/main/java/ru/touchin/templates/validation/ValidationState.java b/src/main/java/ru/touchin/templates/validation/ValidationState.java index eda8260..5a8c022 100644 --- a/src/main/java/ru/touchin/templates/validation/ValidationState.java +++ b/src/main/java/ru/touchin/templates/validation/ValidationState.java @@ -65,8 +65,7 @@ public class ValidationState implements Serializable { @Override public int hashCode() { - //TODO - return super.hashCode(); + return 31 * code; } } \ No newline at end of file diff --git a/src/main/java/ru/touchin/templates/validation/ViewWithError.java b/src/main/java/ru/touchin/templates/validation/ViewWithError.java index fffc1c7..7cc71d4 100644 --- a/src/main/java/ru/touchin/templates/validation/ViewWithError.java +++ b/src/main/java/ru/touchin/templates/validation/ViewWithError.java @@ -19,6 +19,8 @@ package ru.touchin.templates.validation; +import android.support.annotation.NonNull; + /** * Created by Ilia Kurtov on 24/01/2017. * TODO: fill @@ -27,6 +29,6 @@ public interface ViewWithError { void hideError(); - void showError(); + void showError(@NonNull final ValidationState validationState); } diff --git a/src/main/java/ru/touchin/templates/validation/validationcontrollers/TwoWayValidationController.java b/src/main/java/ru/touchin/templates/validation/validationcontrollers/TwoWayValidationController.java index b7c17c7..8ba8b53 100644 --- a/src/main/java/ru/touchin/templates/validation/validationcontrollers/TwoWayValidationController.java +++ b/src/main/java/ru/touchin/templates/validation/validationcontrollers/TwoWayValidationController.java @@ -67,7 +67,7 @@ public abstract class TwoWayValidationController } protected boolean showError(@NonNull final ValidationState validationState) { - return validationState != ValidationState.VALID && validationState != ValidationState.INITIAL; + return !validationState.equals(ValidationState.VALID) && !validationState.equals(ValidationState.INITIAL); } } diff --git a/src/main/java/ru/touchin/templates/validation/validators/EditTextValidator.java b/src/main/java/ru/touchin/templates/validation/validators/EditTextValidator.java index 7406077..406beaf 100644 --- a/src/main/java/ru/touchin/templates/validation/validators/EditTextValidator.java +++ b/src/main/java/ru/touchin/templates/validation/validators/EditTextValidator.java @@ -29,6 +29,7 @@ import ru.touchin.roboswag.core.observables.Changeable; import ru.touchin.roboswag.core.observables.NonNullChangeable; import ru.touchin.roboswag.core.utils.pairs.HalfNullablePair; import ru.touchin.templates.validation.ConversionException; +import ru.touchin.templates.validation.ValidationFunc; import ru.touchin.templates.validation.ValidationState; import rx.Observable; import rx.exceptions.OnErrorThrowable; @@ -44,9 +45,9 @@ public abstract class EditTextValidator extends Val @NonNull private final NonNullChangeable showFullCheck = new NonNullChangeable<>(false); @NonNull - private final Changeable>> finalCheck = new Changeable<>(null); + private final Changeable>> finalCheck = new Changeable<>(null); @NonNull - private final Changeable>> primaryCheck = new Changeable<>(null); + private final Changeable>> primaryCheck = new Changeable<>(null); @NonNull public NonNullChangeable getShowFullCheck() { @@ -54,19 +55,19 @@ public abstract class EditTextValidator extends Val } @NonNull - public Changeable>> getFinalCheck() { + public Changeable>> getFinalCheck() { return finalCheck; } @NonNull - public Changeable>> getPrimaryCheck() { + public Changeable>> getPrimaryCheck() { return primaryCheck; } @NonNull private HalfNullablePair validateText( - @Nullable final Func1> finalCheck, - @Nullable final Func1> primaryCheck, + @Nullable final ValidationFunc> finalCheck, + @Nullable final ValidationFunc> primaryCheck, @NonNull final String text, final boolean fullCheck) throws ConversionException { if (primaryCheck == null && finalCheck == null) { @@ -122,7 +123,8 @@ public abstract class EditTextValidator extends Val @NonNull public Observable> fullValidateAndGetModel(@NonNull final String text) { - return createValidationObservable(text, true); + return createValidationObservable(text, true) + .first(); } } \ No newline at end of file