\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
}\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