Browse Source

Rx validation fixes for id type

master
Preyea Regmi 5 years ago
parent
commit
501e97a8f7
  1. 18
      app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/GMETextInputLayout.java
  2. 43
      app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/TextWatcherAdapter.java
  3. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/presenter/kyc/KYCV2Presenter.java
  4. 9
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view1/KYCView1Fragment.java
  5. 15
      app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view2/KYCView2Fragment.java
  6. 5
      app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/view/RegisterV2Activity.java
  7. 4
      app/src/main/res/layout/fragment_kyc_view2_v2.xml

18
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) { void init(Context context) {
addErrorPadding(); addErrorPadding();
currentError = "";
currentError = null;
} }
private TextView addErrorPadding() { private TextView addErrorPadding() {
TextView errorTV = findViewById(R.id.textinput_error); TextView errorTV = findViewById(R.id.textinput_error);
errorTV.setPadding(0, 4, 0, 4);
errorTV.setPadding(0, 0, 0, 4);
return errorTV; return errorTV;
} }
@ -50,8 +50,20 @@ public class GMETextInputLayout extends TextInputLayout {
* @param message * @param message
*/ */
public void updateErrorSafely(String message) { public void updateErrorSafely(String message) {
if(currentError==null&&message!=null)
{
setError(message);
currentError=message;
}
else if(currentError!=null&&!currentError.equalsIgnoreCase(message))
{
setError(message); setError(message);
setErrorEnabled(message!=null);
currentError=message;
}
// setError(message);
// setErrorEnabled(message!=null);
} }
} }

43
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.Editable;
import android.text.TextWatcher; 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 * @author Preyea R. Regmi
* <p> * <p>
@ -11,8 +18,13 @@ import android.text.TextWatcher;
* simply subclass this adapter class instead of implementing the interface directly. * simply subclass this adapter class instead of implementing the interface directly.
* </p> * </p>
*/ */
public class TextWatcherAdapter implements TextWatcher {
public class TextWatcherAdapter implements TextWatcher,Observer<String> {
Disposable subscription;
public TextWatcherAdapter() {
subscription=null;
}
@Override @Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@ -26,6 +38,35 @@ public class TextWatcherAdapter implements TextWatcher {
@Override @Override
public void afterTextChanged(Editable s) { 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() {
} }
} }

4
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) compositeDisposable.add(this.gateway.validateParameters(idType,idNumber)
.delay(300,TimeUnit.MILLISECONDS)
.doOnSubscribe(d -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text))) .doOnSubscribe(d -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))
.doFinally(() -> view.showProgressBar(false, "")) .doFinally(() -> view.showProgressBar(false, ""))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
@ -391,8 +392,11 @@ public class KYCV2Presenter extends BasePresenter implements KYCV2PresenterInter
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) { protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) {
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
kycForm2Validator.updateVerificationIdNumberValidationStatus(true,null); kycForm2Validator.updateVerificationIdNumberValidationStatus(true,null);
kycForm2Validator.checkAllFieldValidation();
} else { } else {
kycForm2Validator.updateVerificationIdNumberValidationStatus(false,t.getMsg()); kycForm2Validator.updateVerificationIdNumberValidationStatus(false,t.getMsg());
kycForm2Validator.checkAllFieldValidation();
} }
} }

9
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 { class FullNameTextWatcher extends TextWatcherAdapter {
@Override @Override
public void afterTextChanged(Editable s) {
public void onTextUpdated(String text) {
((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm1Validator().validateFullname(ed_firstname.getText().toString()); ((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 { class EmailIdTextWatcher extends TextWatcherAdapter {
@Override @Override
public void afterTextChanged(Editable s) {
public void onTextUpdated(String text) {
((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm1Validator().validateEmailAddress(ed_email.getText().toString()); ((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm1Validator().validateEmailAddress(ed_email.getText().toString());
} }
} }
class AddressTextWatcher extends TextWatcherAdapter { class AddressTextWatcher extends TextWatcherAdapter {
@Override @Override
public void afterTextChanged(Editable s) {
public void onTextUpdated(String text) {
((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm1Validator().validateAddress(ed_address.getText().toString()); ((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm1Validator().validateAddress(ed_address.getText().toString());
} }
} }
} }

15
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 { class PrimaryBankNumberTextWatcher extends TextWatcherAdapter {
@Override @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 @Override
public void onValueChanged(String value) {
public void onTextUpdated(String text) {
((KYCV2ActionListener) getActivity()).getPresenter().getKYCForm2Validator().validateVerificationIdNumber(text);
} }
} }

5
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 @Override
public void afterTextChanged(Editable s) {
presenter.updateId(s.toString());
public void onTextUpdated(String text) {
presenter.updateId(text);
} }
} }

4
app/src/main/res/layout/fragment_kyc_view2_v2.xml

@ -116,9 +116,9 @@
<com.gmeremit.online.gmeremittance_native.customwidgets.maskedittext.GmeMaskedEditText <com.gmeremit.online.gmeremittance_native.customwidgets.maskedittext.GmeMaskedEditText
android:id="@+id/ed_verificationId" android:id="@+id/ed_verificationId"
style="@style/editetxtsingleline" style="@style/editetxtsingleline"
android:inputType="textMultiLine"
android:layout_width="match_parent"
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:inputType="textMultiLine|textNoSuggestions"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
</com.gmeremit.online.gmeremittance_native.customwidgets.GMETextInputLayout> </com.gmeremit.online.gmeremittance_native.customwidgets.GMETextInputLayout>

Loading…
Cancel
Save