void search(String translation, final String query) { subscription = searchModel .search(translation, query) .map( new Func1<List<VerseSearchResult>, List<SearchedVerse>>() { @Override public List<SearchedVerse> call(List<VerseSearchResult> searchResults) { final int count = searchResults.size(); final List<SearchedVerse> verses = new ArrayList<>(count); for (int i = 0; i < count; ++i) { verses.add(new SearchedVerse(searchResults.get(i), query)); } return verses; } }) .compose(RxHelper.<List<SearchedVerse>>applySchedulers()) .subscribe( new Subscriber<List<SearchedVerse>>() { @Override public void onCompleted() { final SearchView v = getView(); if (v != null) { v.onVersesSearchFinished(); } } @Override public void onError(Throwable e) { final SearchView v = getView(); if (v != null) { v.onVersesSearchFailed(); } } @Override public void onNext(List<SearchedVerse> verses) { final SearchView v = getView(); if (v != null) { v.onVersesSearched(verses); } } }); }
@Override protected DocearServiceResponse getRequestResponse(boolean userRequest) { MultivaluedMap<String, String> params = new StringKeyStringValueIgnoreCaseMultivaluedMap(); if (searchModel != null) { params.add("searchModelId", String.valueOf(searchModel.getId())); } if (getDocumentsSetId() != null) { params.add("searchDocumentsSetId", String.valueOf(getDocumentsSetId())); } params.add("page", String.valueOf(page)); params.add("userName", ServiceController.getCurrentUser().getName()); params.add("number", "10"); if (this.query.trim().length() > 0) { return ServiceController.getConnectionController() .get("/documents/" + createLuceneSearchString(query) + "/", params); } else { return null; } }
void clearSearchHistory() { searchModel.clearSearchHistory().subscribeOn(Schedulers.io()).onErrorComplete().subscribe(); }