AutoCompleteTextView with Retrofit 2, RxJava and RxBinding
<p>I am new to <code>Rx</code> world and try to implement my <code>AutoCompleteTextView</code> with <code>RxJava</code>, <code>RxBinding</code> and <code>Retrofit 2</code>.</p>

<p>Here's what I come up with which is troublesome: (Maybe I'm not doing it in the right way.)</p>

<p>I have an <code>AutoCompleteTextView</code> and here I created my subscribtion and observables:</p>

<pre><code>subcription = RxTextView.textChangeEvents(clearableEditText)
                .skip(1)
                .debounce(400, TimeUnit.MILLISECONDS)
                .map(new Func1&lt;TextViewTextChangeEvent, String&gt;() {
                    @Override
                    public String call(TextViewTextChangeEvent textViewTextChangeEvent) {
                        return textViewTextChangeEvent.text().toString();
                    }
                })
                .filter(new Func1&lt;String, Boolean&gt;() {
                    @Override
                    public Boolean call(String s) {
                        return s.length() &gt; 2;
                    }
                })
                .flatMap(new Func1&lt;String, Observable&lt;List&lt;String&gt;&gt;&gt;() {
                    @Override
                    public Observable&lt;List&lt;String&gt;&gt; call(String text) {
                        return searchService.getAutoCompleteTermsObservable(text)
                                .subscribeOn(Schedulers.io())
                                .observeOn(AndroidSchedulers.mainThread());
                    }
                })
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber&lt;List&lt;String&gt;&gt;() {
                    @Override
                    public void onCompleted() {
                        Log.d("rx", "oncomplete");
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e("rx", e.toString());
                    }

                    @Override
                    public void onNext(List&lt;String&gt; strings) {
                        Log.d("rx", strings.size()+"");
                        autoAdapter = new ArrayAdapter&lt;&gt;(MainActivity.this,
                                android.R.layout.simple_dropdown_item_1line, strings);
                        clearableEditText.setAdapter(autoAdapter);
                        clearableEditText.showDropDown();
                    }
                });
</code></pre>

<p>My issue is when I set my EditText with <code>setText()</code> method, it triggers dropdown. For example it does that when I set the word from <code>AutoCompleteTextView</code>'s dropdown and when I set it with voice input. Is there a way to avoid triggering <code>onTextChanged</code> when I set it manually? Or how can I fix that?</p>