Advertisement
jakariamasud

form validation using Rx

Mar 24th, 2020
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.39 KB | None | 0 0
  1.  nameET=findViewById(R.id.nameET);
  2.         phoneET=findViewById(R.id.phoneET);
  3.         submitBTN=findViewById(R.id.submitBTN);
  4.        Observable<CharSequence> nameObservable= RxTextView.textChanges(nameET).skip(1)
  5.                .map(name->name.toString());
  6.        Observable<CharSequence> phoneObservable= RxTextView.textChanges(phoneET).skip(1)
  7.                .map(phone->phone.toString());
  8.         Observable.combineLatest(nameObservable,phoneObservable,(name,phone)->{
  9.             return isValidForm(name.toString(),phone.toString());
  10.  
  11.         }).subscribeOn(Schedulers.io())
  12.         .observeOn(AndroidSchedulers.mainThread())
  13.         .subscribe(result-> {
  14.             if(result){
  15.                 submitBTN.setEnabled(true);
  16.         }
  17.             else{
  18.                 submitBTN.setEnabled(false);
  19.             }
  20.     });
  21.  
  22.     public boolean isValidForm(String name, String phone) {
  23.         boolean validName = !name.isEmpty();
  24.  
  25.         if (!validName) {
  26.             nameET.setError("Please enter valid name");
  27.         }
  28.  
  29.         boolean validPhone =!phone.isEmpty();
  30.         boolean validNumber=(phone.length()>10);
  31.         if (!validPhone) {
  32.             phoneET.setError("Incorrect phone number");
  33.         }
  34.         else if(!validNumber){
  35.             phoneET.setError("phone number must be  11 charecter");
  36.         }
  37.  
  38.         return validName && validPhone && validNumber;
  39.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement