if (dictRaf == null) {\r
return;\r
}\r
- \r
+\r
+ final SearchOperation searchOperation = currentSearchOperation;\r
+ currentSearchOperation = null;\r
+\r
// Before we close the RAF, we have to wind the current search down.\r
- if (currentSearchOperation != null) {\r
+ if (searchOperation != null) {\r
Log.d(LOG, "Interrupting search to shut down.");\r
- final SearchOperation searchOperation = currentSearchOperation;\r
currentSearchOperation = null;\r
searchOperation.interrupted.set(true);\r
- synchronized (searchOperation) {\r
- while (!searchOperation.done) {\r
- try {\r
- searchOperation.wait();\r
- } catch (InterruptedException e) {\r
- Log.d(LOG, "Interrupted.", e);\r
- }\r
- }\r
- }\r
}\r
\r
try {\r
// --------------------------------------------------------------------------\r
\r
private void onClearSearchTextButton(final Button clearSearchTextButton) {\r
- clearSearchTextButton.requestFocus();\r
- searchText.setText("");\r
- searchText.requestFocus();\r
+ setSearchText("", true);\r
Log.d(LOG, "Trying to show soft keyboard.");\r
final InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);\r
manager.showSoftInput(searchText, InputMethodManager.SHOW_IMPLICIT);\r
}\r
});\r
}\r
+ } catch (Exception e) {\r
+ Log.e(LOG, "Failure during search (can happen during Activity close.");\r
} finally {\r
synchronized (this) {\r
done = true;\r