[Search] Fix delay between chars

This commit is contained in:
Alexey Kulish 2017-03-26 10:21:40 +03:00
parent 17f4fd4108
commit 58dc5f01bd
2 changed files with 9 additions and 6 deletions

View file

@ -39,7 +39,8 @@ import java.util.concurrent.atomic.AtomicInteger;
public class SearchUICore {
private static final int TIMEOUT_BETWEEN_CHARS = 400;
private static final int TIMEOUT_BETWEEN_CHARS = 700;
private static final int TIMEOUT_BEFORE_SEARCH = 50;
private static final Log LOG = PlatformUtil.getLog(SearchUICore.class);
private SearchPhrase phrase;
private SearchResultCollection currentSearchResult;
@ -353,7 +354,7 @@ public class SearchUICore {
return this.phrase;
}
public SearchResultCollection search(final String text, final ResultMatcher<SearchResult> matcher) {
public SearchResultCollection search(final String text, final boolean updateResult, final ResultMatcher<SearchResult> matcher) {
final int request = requestNumber.incrementAndGet();
final SearchPhrase phrase = this.phrase.generateNewPhrase(text, searchSettings);
this.phrase = phrase;
@ -369,10 +370,12 @@ public class SearchUICore {
onSearchStart.run();
}
SearchResultMatcher rm = new SearchResultMatcher(matcher, phrase, request, requestNumber, totalLimit);
if(TIMEOUT_BETWEEN_CHARS > 0) {
if (TIMEOUT_BETWEEN_CHARS > 0 && updateResult) {
Thread.sleep(TIMEOUT_BETWEEN_CHARS);
} else if (TIMEOUT_BEFORE_SEARCH > 0) {
Thread.sleep(TIMEOUT_BEFORE_SEARCH);
}
if(rm.isCancelled()) {
if (rm.isCancelled()) {
return;
}
searchInBackground(phrase, rm);

View file

@ -1072,7 +1072,7 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
searchEditText.setHint(R.string.type_city_town);
startCitySearch();
updateTabbarVisibility(false);
runSearch();
runCoreSearch("", false, false);
searchEditText.requestFocus();
AndroidUtils.softKeyboardDelayed(searchEditText);
}
@ -1249,7 +1249,7 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
}
private void runCoreSearchInternal(String text, boolean updateResult, boolean searchMore) {
SearchResultCollection c = searchUICore.search(text, new ResultMatcher<SearchResult>() {
SearchResultCollection c = searchUICore.search(text, updateResult, new ResultMatcher<SearchResult>() {
SearchResultCollection regionResultCollection = null;
SearchCoreAPI regionResultApi = null;
List<SearchResult> results = new ArrayList<>();