import android.preference.PreferenceManager;\r
import android.text.ClipboardManager;\r
import android.text.Editable;\r
+import android.text.Selection;\r
import android.text.Spannable;\r
import android.text.TextWatcher;\r
import android.text.style.StyleSpan;\r
\r
@Override\r
public void onCreate(Bundle savedInstanceState) {\r
+ Log.d(LOG, "onCreate:" + this);\r
((DictionaryApplication)getApplication()).applyTheme(this);\r
- \r
super.onCreate(savedInstanceState);\r
- Log.d(LOG, "onCreate:" + this);\r
\r
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\r
\r
\r
@Override\r
protected void onListItemClick(ListView l, View v, int row, long id) {\r
+ defocusSearchText();\r
+ \r
if (clickOpensContextMenu && dictRaf != null) {\r
openContextMenu(v);\r
}\r
}\r
\r
void onAppendToWordList(final RowBase row) {\r
+ defocusSearchText();\r
+ \r
final StringBuilder rawText = new StringBuilder();\r
rawText.append(\r
new SimpleDateFormat("yyyy.MM.dd HH:mm:ss").format(new Date()))\r
rawText.append(row.getRawText(saveOnlyFirstSubentry));\r
Log.d(LOG, "Writing : " + rawText);\r
\r
- // Request focus so that if we start typing again, it clears the text input.\r
- getListView().requestFocus();\r
-\r
try {\r
wordList.getParentFile().mkdirs();\r
final PrintWriter out = new PrintWriter(\r
}\r
return;\r
}\r
-\r
- void onCopy(final RowBase row) {\r
+ \r
+ /**\r
+ * Called when user clicks outside of search text, so that they can start\r
+ * typing again immediately.\r
+ */\r
+ void defocusSearchText() {\r
+ //Log.d(LOG, "defocusSearchText");\r
// Request focus so that if we start typing again, it clears the text input.\r
getListView().requestFocus();\r
+ \r
+ // Visual indication that a new keystroke will clear the search text.\r
+ searchText.selectAll();\r
+ }\r
+\r
+ void onCopy(final RowBase row) {\r
+ defocusSearchText();\r
\r
Log.d(LOG, "Copy, row=" + row);\r
final StringBuilder result = new StringBuilder();\r
searchText.setText("" + (char) event.getUnicodeChar());\r
onSearchTextChange(searchText.getText().toString());\r
searchText.requestFocus();\r
+ Selection.moveToRightEdge(searchText.getText(), searchText.getLayout());\r
}\r
return true;\r
}\r