From 501e97a8f773e8abe29339bc4d4be82b895d6528 Mon Sep 17 00:00:00 2001 From: Preyea Regmi Date: Wed, 31 Jul 2019 10:46:06 +0900 Subject: [PATCH] Rx validation fixes for id type --- .../customwidgets/GMETextInputLayout.java | 20 +++++++-- .../customwidgets/TextWatcherAdapter.java | 43 ++++++++++++++++++- .../kycV2/presenter/kyc/KYCV2Presenter.java | 4 ++ .../kycV2/view/view1/KYCView1Fragment.java | 9 ++-- .../kycV2/view/view2/KYCView2Fragment.java | 15 +++---- .../registerV2/view/RegisterV2Activity.java | 5 ++- .../main/res/layout/fragment_kyc_view2_v2.xml | 4 +- 7 files changed, 76 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/GMETextInputLayout.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/GMETextInputLayout.java index 1f525e43..16c361a6 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/GMETextInputLayout.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/GMETextInputLayout.java @@ -35,12 +35,12 @@ public class GMETextInputLayout extends TextInputLayout { void init(Context context) { addErrorPadding(); - currentError = ""; + currentError = null; } private TextView addErrorPadding() { TextView errorTV = findViewById(R.id.textinput_error); - errorTV.setPadding(0, 4, 0, 4); + errorTV.setPadding(0, 0, 0, 4); return errorTV; } @@ -50,8 +50,20 @@ public class GMETextInputLayout extends TextInputLayout { * @param message */ public void updateErrorSafely(String message) { - setError(message); - setErrorEnabled(message!=null); + + if(currentError==null&&message!=null) + { + setError(message); + currentError=message; + } + else if(currentError!=null&&!currentError.equalsIgnoreCase(message)) + { + setError(message); + currentError=message; + } + +// setError(message); +// setErrorEnabled(message!=null); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/TextWatcherAdapter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/TextWatcherAdapter.java index 90cb0f90..03d6b892 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/TextWatcherAdapter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/TextWatcherAdapter.java @@ -3,6 +3,13 @@ package com.gmeremit.online.gmeremittance_native.customwidgets; import android.text.Editable; import android.text.TextWatcher; +import java.util.concurrent.TimeUnit; + +import io.reactivex.Observable; +import io.reactivex.Observer; +import io.reactivex.disposables.Disposable; +import io.reactivex.observers.DisposableObserver; + /** * @author Preyea R. Regmi *

@@ -11,8 +18,13 @@ import android.text.TextWatcher; * simply subclass this adapter class instead of implementing the interface directly. *

*/ -public class TextWatcherAdapter implements TextWatcher { +public class TextWatcherAdapter implements TextWatcher,Observer { + + Disposable subscription; + public TextWatcherAdapter() { + subscription=null; + } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { @@ -26,6 +38,35 @@ public class TextWatcherAdapter implements TextWatcher { @Override public void afterTextChanged(Editable s) { + Observable.just(s).debounce(300, TimeUnit.MILLISECONDS) + .map(editable -> s.toString().trim()) + .subscribe(this); + } + + + public void onTextUpdated(String text) + { + + } + + + @Override + public void onSubscribe(Disposable d) { + subscription=d; + } + + @Override + public void onNext(String s) { + onTextUpdated(s); + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2Presenter.java index de85cbdf..69186c17 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2Presenter.java @@ -286,6 +286,7 @@ public class KYCV2Presenter extends BasePresenter implements KYCV2PresenterInter { compositeDisposable.add(this.gateway.validateParameters(idType,idNumber) + .delay(300,TimeUnit.MILLISECONDS) .doOnSubscribe(d -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text))) .doFinally(() -> view.showProgressBar(false, "")) .subscribeOn(Schedulers.io()) @@ -391,8 +392,11 @@ public class KYCV2Presenter extends BasePresenter implements KYCV2PresenterInter protected void onSuccess(GenericResponseDataModel t) { if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { kycForm2Validator.updateVerificationIdNumberValidationStatus(true,null); + kycForm2Validator.checkAllFieldValidation(); } else { kycForm2Validator.updateVerificationIdNumberValidationStatus(false,t.getMsg()); + kycForm2Validator.checkAllFieldValidation(); + } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view1/KYCView1Fragment.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view1/KYCView1Fragment.java index da4ddbe2..1cf64044 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view1/KYCView1Fragment.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view1/KYCView1Fragment.java @@ -500,7 +500,7 @@ public class KYCView1Fragment extends BaseFragment implements View.OnClickListen class FullNameTextWatcher extends TextWatcherAdapter { @Override - public void afterTextChanged(Editable s) { + public void onTextUpdated(String text) { ((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm1Validator().validateFullname(ed_firstname.getText().toString()); } } @@ -508,18 +508,17 @@ public class KYCView1Fragment extends BaseFragment implements View.OnClickListen class EmailIdTextWatcher extends TextWatcherAdapter { @Override - public void afterTextChanged(Editable s) { + public void onTextUpdated(String text) { ((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm1Validator().validateEmailAddress(ed_email.getText().toString()); - } } class AddressTextWatcher extends TextWatcherAdapter { @Override - public void afterTextChanged(Editable s) { + public void onTextUpdated(String text) { ((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm1Validator().validateAddress(ed_address.getText().toString()); - } + } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view2/KYCView2Fragment.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view2/KYCView2Fragment.java index dc228517..39119b27 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view2/KYCView2Fragment.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view2/KYCView2Fragment.java @@ -542,22 +542,17 @@ public class KYCView2Fragment extends BaseFragment implements View.OnClickListen class PrimaryBankNumberTextWatcher extends TextWatcherAdapter { - @Override - public void afterTextChanged(Editable s) { - ((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm2Validator().validatePrimaryAccountNumber(s.toString()); + public void onTextUpdated(String text) { + ((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm2Validator().validatePrimaryAccountNumber(text); } } - class IdNumberTextWatcher extends TextWatcherAdapter implements GmeMaskedEditText.ValueListener { - - @Override - public void afterTextChanged(Editable s) { - ((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm2Validator().validateVerificationIdNumber(s.toString()); - } + class IdNumberTextWatcher extends TextWatcherAdapter { @Override - public void onValueChanged(String value) { + public void onTextUpdated(String text) { + ((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm2Validator().validateVerificationIdNumber(text); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/view/RegisterV2Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/view/RegisterV2Activity.java index d45cf60e..29652628 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/view/RegisterV2Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/view/RegisterV2Activity.java @@ -448,8 +448,9 @@ public class RegisterV2Activity extends BaseActivity implements RegisterV2Presen { @Override - public void afterTextChanged(Editable s) { - presenter.updateId(s.toString()); + public void onTextUpdated(String text) { + presenter.updateId(text); + } } diff --git a/app/src/main/res/layout/fragment_kyc_view2_v2.xml b/app/src/main/res/layout/fragment_kyc_view2_v2.xml index 85e898f6..90ee9428 100644 --- a/app/src/main/res/layout/fragment_kyc_view2_v2.xml +++ b/app/src/main/res/layout/fragment_kyc_view2_v2.xml @@ -116,9 +116,9 @@