]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/DictionaryActivity.java
Random word, report issue, what's new.
[Dictionary.git] / src / com / hughes / android / dictionary / DictionaryActivity.java
index ac828e6092a8633db7b2a47b3931d093e7ad80b6..3827259cde49080d91d01dcf5dd5fc2e9315b86e 100644 (file)
@@ -25,6 +25,7 @@ import java.util.Collections;
 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
@@ -176,9 +177,6 @@ public class DictionaryActivity extends ListActivity {
 \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
@@ -372,15 +370,6 @@ public class DictionaryActivity extends ListActivity {
     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
@@ -523,7 +512,10 @@ public class DictionaryActivity extends ListActivity {
     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
@@ -532,10 +524,23 @@ public class DictionaryActivity extends ListActivity {
   // 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
@@ -730,7 +735,8 @@ public class DictionaryActivity extends ListActivity {
     }\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