RxJava- RxAndroid form validation on dynamic EditText
<p>I have form that can have variable number of <code>EditText</code> that needs to be validated before form submission. I can perform validation check if <code>EditText</code>s are fixed in number like following - </p>

<pre><code>Observable&lt;CharSequence&gt; emailObservable = RxTextView.textChanges(editEmail).skip(1);
Observable&lt;CharSequence&gt; passwordObservable = RxTextView.textChanges(editPassword).skip(1);

mFormValidationSubscription = Observable.combineLatest(emailObservable, passwordObservable,
                (newEmail, newPassword) -&gt; {                   
                    boolean emailValid = !TextUtils.isEmpty(newEmail) &amp;&amp; android.util.Patterns.EMAIL_ADDRESS.matcher(newEmail).matches();
                    if(!emailValid) {
                        emailInputLayout.setError(getString(R.string.error_invalid_email));
                        emailInputLayout.setErrorEnabled(true);
                    }else {
                        emailInputLayout.setError(null);
                        emailInputLayout.setErrorEnabled(false);
                    }

                    boolean passValid = !TextUtils.isEmpty(newPassword) &amp;&amp; newPassword.length() &gt; 4;
                    if (!passValid) {
                        passwordInputLayout.setError(getString(R.string.error_invalid_password));
                        passwordInputLayout.setErrorEnabled(true);
                    } else {
                        passwordInputLayout.setError(null);
                        passwordInputLayout.setErrorEnabled(true);
                    }

                    return emailValid &amp;&amp; passValid;
                }).subscribe(isValid -&gt;{
                    mSubmitButton.setEnabled(isValid);
                });
</code></pre>

<p>But now as there are variable number of inputs I tried creating a list of <code>Observable&lt;CharSequence&gt;</code> and <code>Observable.combineLatest()</code> but I'm stuck as to proceed with that. </p>

<pre><code>List&lt;Observable&lt;CharSequence&gt;&gt; observableList = new ArrayList&lt;&gt;();

        for(InputRule inputRule : mMaterial.getRules()) {
            View vInputRow = inflater.inflate(R.layout.item_material_input_row, null, false);

            StyledEditText styledEditText = ((StyledEditText)vInputRow.findViewById(R.id.edit_input));
            styledEditText.setHint(inputRule.getName());

            Observable&lt;CharSequence&gt; observable = RxTextView.textChanges(styledEditText).skip(1);
            observableList.add(observable);

            linearLayout.addView(vInputRow);
        }

        Observable.combineLatest(observableList,......); // What should go in place of these "......" 
</code></pre>

<p>How can I perform checks for a valid charsequence for each input field. I looked into <code>flatMap()</code>, <code>map()</code>, <code>filter()</code> methods but I don't know how to use them. </p>