From 4833c12364cc0baae58fe9022d8e25aec50d99f3 Mon Sep 17 00:00:00 2001 From: Ilia Kurtov Date: Mon, 30 Jan 2017 14:24:25 +0300 Subject: [PATCH] static --- .../validation/ConversionException.java | 5 ++ .../EditTextValidationController.java | 47 +++++++++++-------- .../ValidationController.java | 2 +- .../validators/EditTextValidator.java | 1 - 4 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/main/java/ru/touchin/templates/validation/ConversionException.java b/src/main/java/ru/touchin/templates/validation/ConversionException.java index e705851..110a228 100644 --- a/src/main/java/ru/touchin/templates/validation/ConversionException.java +++ b/src/main/java/ru/touchin/templates/validation/ConversionException.java @@ -24,4 +24,9 @@ package ru.touchin.templates.validation; * TODO: fill */ public class ConversionException extends Exception { + + public ConversionException(final Throwable cause) { + super(cause); + } + } diff --git a/src/main/java/ru/touchin/templates/validation/validationcontrollers/EditTextValidationController.java b/src/main/java/ru/touchin/templates/validation/validationcontrollers/EditTextValidationController.java index 93e0650..abf5e90 100644 --- a/src/main/java/ru/touchin/templates/validation/validationcontrollers/EditTextValidationController.java +++ b/src/main/java/ru/touchin/templates/validation/validationcontrollers/EditTextValidationController.java @@ -20,6 +20,7 @@ package ru.touchin.templates.validation.validationcontrollers; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.text.TextUtils; import java.io.Serializable; @@ -42,26 +43,11 @@ public class EditTextValidationController @NonNull public Observable validation(@NonNull final Observable focusOutObservable, @NonNull final Observable activatedObservable) { - return Observable - .>>combineLatest(activatedObservable, - getValidator().getWrapperModel().observe(), - focusOutObservable, - getValidator().getShowFullCheck().observe(), - (activated, text, focusIn, showError) -> { - if (focusIn == null && TextUtils.isEmpty(text) && !activated && !showError) { - return null; - } - final boolean focus = focusIn == null ? false : focusIn; - if (TextUtils.isEmpty(text)) { - return new NonNullPair<>(focus, (activated || showError) - ? getValidator().getValidationStateWhenEmpty().observe() - : Observable.just(ValidationState.INITIAL)); - } - if (!showError && focus) { - return new NonNullPair<>(true, getValidator().primaryValidate(text)); - } - return new NonNullPair<>(focus, getValidator().fullValidate(text)); - }) + return Observable.combineLatest(activatedObservable, + getValidator().getWrapperModel().observe(), + focusOutObservable, + getValidator().getShowFullCheck().observe(), + this::getValidationPair) .switchMap(validationPair -> { if (validationPair == null) { return Observable.empty(); @@ -76,4 +62,25 @@ public class EditTextValidationController }); } + @Nullable + @SuppressWarnings({"PMD.CyclomaticComplexity", "PMD.NPathComplexity"}) + private NonNullPair> getValidationPair(final boolean activated, + @Nullable final String text, + @Nullable final Boolean focusIn, + final boolean showError) { + if (focusIn == null && TextUtils.isEmpty(text) && !activated && !showError) { + return null; + } + final boolean focus = focusIn == null ? false : focusIn; + if (TextUtils.isEmpty(text)) { + return new NonNullPair<>(focus, (activated || showError) + ? getValidator().getValidationStateWhenEmpty().observe() + : Observable.just(ValidationState.INITIAL)); + } + if (!showError && focus) { + return new NonNullPair<>(true, getValidator().primaryValidate(text)); + } + return new NonNullPair<>(focus, getValidator().fullValidate(text)); + } + } \ No newline at end of file diff --git a/src/main/java/ru/touchin/templates/validation/validationcontrollers/ValidationController.java b/src/main/java/ru/touchin/templates/validation/validationcontrollers/ValidationController.java index 307a119..37dc600 100644 --- a/src/main/java/ru/touchin/templates/validation/validationcontrollers/ValidationController.java +++ b/src/main/java/ru/touchin/templates/validation/validationcontrollers/ValidationController.java @@ -27,7 +27,7 @@ import ru.touchin.templates.validation.validators.Validator; * Created by Ilia Kurtov on 24/01/2017. * TODO: fill */ -public abstract class ValidationController { +public class ValidationController { @NonNull private final TValidator validator; 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 406beaf..f0f8336 100644 --- a/src/main/java/ru/touchin/templates/validation/validators/EditTextValidator.java +++ b/src/main/java/ru/touchin/templates/validation/validators/EditTextValidator.java @@ -33,7 +33,6 @@ import ru.touchin.templates.validation.ValidationFunc; import ru.touchin.templates.validation.ValidationState; import rx.Observable; import rx.exceptions.OnErrorThrowable; -import rx.functions.Func1; import rx.schedulers.Schedulers; /**