]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/DictionaryActivity.java
Change layouts, update to v002, change focus stuff.
[Dictionary.git] / src / com / hughes / android / dictionary / DictionaryActivity.java
index 84497e51ac205c1b233197f2a4f5de1c0a1e3840..d217c8191b1010ac7053f7e337cd47821a75882d 100644 (file)
@@ -36,6 +36,7 @@ import android.os.Handler;
 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
@@ -141,10 +142,9 @@ public class DictionaryActivity extends ListActivity {
 \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
@@ -477,12 +477,16 @@ public class DictionaryActivity extends ListActivity {
   \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
@@ -492,9 +496,6 @@ public class DictionaryActivity extends ListActivity {
     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
@@ -507,10 +508,22 @@ public class DictionaryActivity extends ListActivity {
     }\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
@@ -527,6 +540,7 @@ public class DictionaryActivity extends ListActivity {
         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