import java.util.Date;\r
import java.util.LinkedHashSet;\r
import java.util.List;\r
+import java.util.Random;\r
import java.util.Set;\r
import java.util.concurrent.Executor;\r
import java.util.concurrent.Executors;\r
\r
application = (DictionaryApplication) getApplication();\r
theme = application.getSelectedTheme();\r
-\r
- // Clear them so that if something goes wrong, we won't relaunch.\r
- clearDictionaryPrefs(this);\r
\r
final Intent intent = getIntent();\r
dictFile = new File(intent.getStringExtra(C.DICT_FILE));\r
prefs.commit();\r
}\r
\r
- private static void clearDictionaryPrefs(final Context context) {\r
- final SharedPreferences.Editor prefs = PreferenceManager.getDefaultSharedPreferences(context).edit();\r
- prefs.remove(C.DICT_FILE);\r
- prefs.remove(C.INDEX_INDEX);\r
- prefs.remove(C.SEARCH_TOKEN);\r
- prefs.commit();\r
- }\r
-\r
-\r
@Override\r
protected void onDestroy() {\r
super.onDestroy();\r
Log.d(LOG, "onUpDownButton, destIndexEntry=" + dest.token);\r
searchText.removeTextChangedListener(searchTextWatcher);\r
searchText.setText(dest.token);\r
- Selection.moveToRightEdge(searchText.getText(), searchText.getLayout());\r
+ if (searchText.getLayout() != null) {\r
+ // Surprising, but this can otherwise crash sometimes...\r
+ Selection.moveToRightEdge(searchText.getText(), searchText.getLayout());\r
+ }\r
jumpToRow(index.sortedIndexEntries.get(destIndexEntry).startRow);\r
searchText.addTextChangedListener(searchTextWatcher);\r
}\r
// Options Menu\r
// --------------------------------------------------------------------------\r
\r
+ final Random random = new Random();\r
+ \r
@Override\r
public boolean onCreateOptionsMenu(final Menu menu) {\r
application.onCreateGlobalOptionsMenu(this, menu);\r
\r
+ {\r
+ final MenuItem randomWord = menu.add(getString(R.string.randomWord));\r
+ randomWord.setOnMenuItemClickListener(new OnMenuItemClickListener() {\r
+ public boolean onMenuItemClick(final MenuItem menuItem) {\r
+ final String word = index.sortedIndexEntries.get(random.nextInt(index.sortedIndexEntries.size())).token;\r
+ setSearchText(word, true);\r
+ return false;\r
+ }\r
+ });\r
+ }\r
+ \r
{\r
final MenuItem dictionaryList = menu.add(getString(R.string.dictionaryManager));\r
dictionaryList.setOnMenuItemClickListener(new OnMenuItemClickListener() {\r
}\r
if (keyCode == KeyEvent.KEYCODE_BACK) {\r
Log.d(LOG, "Clearing dictionary prefs.");\r
- DictionaryActivity.clearDictionaryPrefs(this);\r
+ // Pretend that we just autolaunched so that we won't do it again.\r
+ DictionaryManagerActivity.lastAutoLaunchMillis = System.currentTimeMillis();\r
}\r
if (keyCode == KeyEvent.KEYCODE_ENTER) {\r
Log.d(LOG, "Trying to hide soft keyboard.");\r