}\r
}).start();\r
\r
- final String fontName = prefs.getString(getString(R.string.fontKey), "FreeSerif.ttf.jpg");\r
+ \r
+ String fontName = prefs.getString(getString(R.string.fontKey), "FreeSerif.ttf.jpg");\r
if ("SYSTEM".equals(fontName)) {\r
typeface = Typeface.DEFAULT;\r
} else {\r
Toast.makeText(this, getString(R.string.fontFailure, e.getLocalizedMessage()), Toast.LENGTH_LONG).show();\r
}\r
}\r
+// if (!"SYSTEM".equals(fontName)) {\r
+// throw new RuntimeException("Test force using system font: " + fontName);\r
+// }\r
if (typeface == null) {\r
Log.w(LOG, "Unable to create typeface, using default.");\r
typeface = Typeface.DEFAULT;\r
fontSizeSp = Integer.parseInt(fontSize.trim());\r
} catch (NumberFormatException e) {\r
fontSizeSp = 14;\r
- }\r
+ } \r
+\r
\r
setContentView(R.layout.dictionary_activity);\r
searchText = (EditText) findViewById(R.id.SearchText);\r
\r
searchText.requestFocus();\r
searchText.addTextChangedListener(searchTextWatcher);\r
- String text = "";\r
+ \r
+ // Set the search text from the intent, then the saved state.\r
+ String text = getIntent().getStringExtra(C.SEARCH_TOKEN);\r
if (savedInstanceState != null) {\r
text = savedInstanceState.getString(C.SEARCH_TOKEN);\r
- if (text == null) {\r
- text = "";\r
- }\r
+ }\r
+ if (text == null) {\r
+ text = "";\r
}\r
setSearchText(text, true);\r
Log.d(LOG, "Trying to restore searchText=" + text);\r
final SharedPreferences.Editor prefs = PreferenceManager.getDefaultSharedPreferences(context).edit();\r
prefs.putString(C.DICT_FILE, dictFile.getPath());\r
prefs.putInt(C.INDEX_INDEX, indexIndex);\r
- prefs.putString(C.SEARCH_TOKEN, searchToken);\r
+ prefs.putString(C.SEARCH_TOKEN, ""); // Don't need to save search token.\r
prefs.commit();\r
}\r
\r
}\r
searchText.setText(text);\r
searchText.requestFocus();\r
+ moveCursorToRight();\r
+ if (triggerSearch) {\r
+ onSearchTextChange(text);\r
+ }\r
+ }\r
+ \r
+ private long cursorDelayMillis = 100;\r
+ private void moveCursorToRight() {\r
if (searchText.getLayout() != null) {\r
+ cursorDelayMillis = 100;\r
// Surprising, but this can crash when you rotate...\r
Selection.moveToRightEdge(searchText.getText(), searchText.getLayout());\r
- }\r
- if (triggerSearch) {\r
- onSearchTextChange(text);\r
+ } else {\r
+ uiHandler.postDelayed(new Runnable() {\r
+ @Override\r
+ public void run() {\r
+ moveCursorToRight();\r
+ }\r
+ }, cursorDelayMillis);\r
+ cursorDelayMillis = Math.min(10 * 1000, 2 * cursorDelayMillis);\r
}\r
}\r
\r