X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2FDictionaryActivity.java;h=ac828e6092a8633db7b2a47b3931d093e7ad80b6;hb=64d2b5c125dbc1f0880cd4837f29a07916be0fe3;hp=6bfb379dd3bc6b54dccd2ee104bf7f5ac4a39a07;hpb=235d2b9314a21b1ba8fe782efde8a29b717bb94e;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/DictionaryActivity.java b/src/com/hughes/android/dictionary/DictionaryActivity.java index 6bfb379..ac828e6 100644 --- a/src/com/hughes/android/dictionary/DictionaryActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryActivity.java @@ -387,22 +387,15 @@ public class DictionaryActivity extends ListActivity { if (dictRaf == null) { return; } - + + final SearchOperation searchOperation = currentSearchOperation; + currentSearchOperation = null; + // Before we close the RAF, we have to wind the current search down. - if (currentSearchOperation != null) { + if (searchOperation != null) { Log.d(LOG, "Interrupting search to shut down."); - final SearchOperation searchOperation = currentSearchOperation; currentSearchOperation = null; searchOperation.interrupted.set(true); - synchronized (searchOperation) { - while (!searchOperation.done) { - try { - searchOperation.wait(); - } catch (InterruptedException e) { - Log.d(LOG, "Interrupted.", e); - } - } - } } try { @@ -419,9 +412,7 @@ public class DictionaryActivity extends ListActivity { // -------------------------------------------------------------------------- private void onClearSearchTextButton(final Button clearSearchTextButton) { - clearSearchTextButton.requestFocus(); - searchText.setText(""); - searchText.requestFocus(); + setSearchText("", true); Log.d(LOG, "Trying to show soft keyboard."); final InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); manager.showSoftInput(searchText, InputMethodManager.SHOW_IMPLICIT); @@ -858,6 +849,8 @@ public class DictionaryActivity extends ListActivity { } }); } + } catch (Exception e) { + Log.e(LOG, "Failure during search (can happen during Activity close."); } finally { synchronized (this) { done = true;