@@ -0,0 +1,926 @@
+package org.apache.taverna.mobile.utils;%0A%0Aimport android.support.annotation.NonNull;%0Aimport android.support.v7.widget.SearchView;%0A%0Aimport rx.Observable;%0Aimport rx.subjects.BehaviorSubject;%0A%0A%0Apublic class RxSearch %7B%0A%0A    public static Observable%3CString%3E fromSearchView(@NonNull final SearchView searchView) %7B%0A        final BehaviorSubject%3CString%3E subject = BehaviorSubject.create(%22%22);%0A%0A        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() %7B%0A%0A            @Override%0A            public boolean onQueryTextSubmit(String query) %7B%0A                subject.onNext(query);%0A                subject.onCompleted();%0A                searchView.clearFocus();%0A                return true;%0A            %7D%0A%0A            @Override%0A            public boolean onQueryTextChange(String newText) %7B%0A                subject.onNext(newText);%0A                return true;%0A            %7D%0A        %7D);%0A%0A        return subject;%0A    %7D%0A%7D

add reactive search's QueryTextListener