Skip to content

Commit

Permalink
add useLimit, change immediateSearch
Browse files Browse the repository at this point in the history
  • Loading branch information
alisa911 committed Jun 23, 2023
1 parent d05a9e9 commit 0764448
Showing 1 changed file with 21 additions and 7 deletions.
28 changes: 21 additions & 7 deletions OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ public static boolean isDebugMode() {
public static class SearchResultCollection {
private final List<SearchResult> searchResults = new ArrayList<>();
private SearchPhrase phrase;
private boolean useLimit;
private static final int DEPTH_TO_CHECK_SAME_SEARCH_RESULTS = 20;

public SearchResultCollection(SearchPhrase phrase) {
Expand All @@ -109,6 +110,14 @@ public SearchResultCollection combineWithCollection(SearchResultCollection colle
src.addSearchResults(collection.searchResults, resort, removeDuplicates);
return src;
}

public boolean getUseLimit() {
return this.useLimit;
}

public void setUseLimit(boolean useLimit) {
this.useLimit = useLimit;
}

public SearchResultCollection addSearchResults(List<SearchResult> sr, boolean resortAll, boolean removeDuplicates) {
if (SearchUICore.isDebugMode()) {
Expand Down Expand Up @@ -480,13 +489,18 @@ public SearchPhrase resetPhrase(String text) {
}

public SearchResultCollection immediateSearch(final String text, final LatLon loc) {
searchSettings = searchSettings.setOriginalLocation(loc);
final SearchPhrase phrase = this.phrase.generateNewPhrase(text, searchSettings);
final SearchResultMatcher rm = new SearchResultMatcher(null, phrase, requestNumber.get(), requestNumber, totalLimit);
searchInternal(phrase, rm);
SearchResultCollection collection = new SearchResultCollection(phrase);
collection.addSearchResults(rm.getRequestResults(), true, true);
return collection;
if (loc != null) {
searchSettings = searchSettings.setOriginalLocation(loc);
}
final SearchPhrase searchPhrase = this.phrase.generateNewPhrase(text, searchSettings);
final SearchResultMatcher rm = new SearchResultMatcher(null, searchPhrase, requestNumber.get(), requestNumber, totalLimit);
searchInternal(searchPhrase, rm);
SearchResultCollection resultCollection = new SearchResultCollection(searchPhrase);
if (rm.count > rm.totalLimit) {
resultCollection.setUseLimit(true);
}
resultCollection.addSearchResults(rm.getRequestResults(), true, true);
return resultCollection;
}

public void search(final String text, final boolean delayedExecution, final ResultMatcher<SearchResult> matcher) {
Expand Down

0 comments on commit 0764448

Please sign in to comment.