currentSearchOperation.interrupted.set(true);
currentSearchOperation = null;
}
- setIndexAndSearchText((indexIndex + 1) % dictionary.indices.size(), searchView.getQuery().toString());
+ setIndexAndSearchText((indexIndex + 1) % dictionary.indices.size(),
+ searchView.getQuery().toString());
}
void onLanguageButtonLongClick(final Context context) {
if (indexToUse == -1) {
indexToUse = defaultIndexToUse;
}
- setIndexAndSearchText(indexToUse, selectedText);
+ // Without this extra indirection, the call to jumpToRow that this
+ // invokes didn't actually have any effect.
+ final int actualIndexToUse = indexToUse;
+ getListView().post(new Runnable() {
+ @Override
+ public void run() {
+ setIndexAndSearchText(actualIndexToUse, selectedText);
+ }
+ });
}
/**
}
private void setSearchText(final String text, final boolean triggerSearch) {
- if (!triggerSearch) {
- searchView.setOnQueryTextListener(null);
- }
+ Log.d(LOG, "setSearchText, text=" + text + ", triggerSearch=" + triggerSearch);
+ // Disable the listener, because sometimes it doesn't work.
+ searchView.setOnQueryTextListener(null);
searchView.setQuery(text, false);
moveCursorToRight();
- if (!triggerSearch) {
- searchView.setOnQueryTextListener(onQueryTextListener);
- } else {
+ searchView.setOnQueryTextListener(onQueryTextListener);
+ if (triggerSearch) {
onQueryTextListener.onQueryTextChange(text);
}
}
if (canLaunch) {
row.setClickable(true);
- row.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- new IntentLauncher(parent.getContext(),
+ row.setOnClickListener(new IntentLauncher(parent.getContext(),
DictionaryActivity.getLaunchIntent(
application.getPath(dictionaryInfo.uncompressedFilename),
- dictionaryInfo.indexInfos.get(0).shortName, ""));
- }
- });
+ dictionaryInfo.indexInfos.get(0).shortName, "")));
row.setFocusable(true);
row.setLongClickable(true);
}
-* Clicking link in HTML view doesn't trigger search.
* Back button in top left
* Contributions from:
* HtmlEntries inline, expandable.
\ No newline at end of file