]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/DictionaryActivity.java
Major refactor of down dictionary list is stored by app.
[Dictionary.git] / src / com / hughes / android / dictionary / DictionaryActivity.java
index d6ec791fc9a214e9c85caa608d26147dce285e2a..6c69e9b5be350ebd98a2e182e1aee69a20b1af71 100644 (file)
@@ -20,7 +20,6 @@ import java.io.IOException;
 import java.io.PrintWriter;\r
 import java.io.RandomAccessFile;\r
 import java.text.SimpleDateFormat;\r
-import java.util.ArrayList;\r
 import java.util.Date;\r
 import java.util.List;\r
 import java.util.concurrent.Executor;\r
@@ -81,7 +80,6 @@ import com.hughes.android.dictionary.engine.PairEntry.Pair;
 import com.hughes.android.dictionary.engine.RowBase;\r
 import com.hughes.android.dictionary.engine.TokenRow;\r
 import com.hughes.android.dictionary.engine.TransliteratorManager;\r
-import com.hughes.android.util.PersistentObjectCache;\r
 \r
 public class DictionaryActivity extends ListActivity {\r
 \r
@@ -132,16 +130,25 @@ public class DictionaryActivity extends ListActivity {
     return intent;\r
   }\r
   \r
-  // TODO: fix these...\r
-\r
   @Override\r
   protected void onSaveInstanceState(final Bundle outState) {\r
     super.onSaveInstanceState(outState);\r
     outState.putString(C.SEARCH_TOKEN, searchText.getText().toString());\r
   }\r
+\r
+  @Override\r
+  protected void onRestoreInstanceState(final Bundle outState) {\r
+    super.onRestoreInstanceState(outState);\r
+    setSearchText(outState.getString(C.SEARCH_TOKEN));\r
+  }\r
+\r
+  public DictionaryApplication getDictionaryApplication() {\r
+    return (DictionaryApplication) super.getApplication();\r
+  }\r
   \r
   @Override\r
   public void onCreate(Bundle savedInstanceState) {\r
+    // Clear them so that if something goes wrong, we won't relaunch.\r
     clearDictionaryPrefs(this);\r
     \r
     Log.d(LOG, "onCreate:" + this);\r
@@ -152,12 +159,9 @@ public class DictionaryActivity extends ListActivity {
     dictFile = intent.getStringExtra(C.DICT_FILE);\r
 \r
     try {\r
-      PersistentObjectCache.init(this);\r
-      QuickDicConfig quickDicConfig = PersistentObjectCache.init(\r
-          this).read(C.DICTIONARY_CONFIGS, QuickDicConfig.class);\r
-      final DictionaryInfo dictionaryConfig = quickDicConfig.getDictionaryInfoByFile(dictFile);\r
-      this.setTitle("QuickDic: " + dictionaryConfig.name);\r
-      dictRaf = new RandomAccessFile(dictionaryConfig.localFile, "r");\r
+      final String name = getDictionaryApplication().getDictionaryName(dictFile);\r
+      this.setTitle("QuickDic: " + name);\r
+      dictRaf = new RandomAccessFile(dictFile, "r");\r
       dictionary = new Dictionary(dictRaf); \r
     } catch (Exception e) {\r
       Log.e(LOG, "Unable to load dictionary.", e);\r
@@ -170,7 +174,7 @@ public class DictionaryActivity extends ListActivity {
         dictRaf = null;\r
       }\r
       Toast.makeText(this, getString(R.string.invalidDictionary, "", e.getMessage()), Toast.LENGTH_LONG);\r
-      startActivity(DictionaryEditActivity.getLaunchIntent(dictFile));\r
+      startActivity(DictionaryManagerActivity.getLaunchIntent());\r
       finish();\r
       return;\r
     }\r
@@ -427,21 +431,16 @@ public class DictionaryActivity extends ListActivity {
     dialog.setTitle(R.string.selectADictionary);\r
 \r
     ListView listView = (ListView) dialog.findViewById(android.R.id.list);\r
+    \r
+    final List<DictionaryInfo> installedDicts = ((DictionaryApplication)getApplication()).getUsableDicts();\r
 \r
-    QuickDicConfig quickDicConfig = PersistentObjectCache.init(\r
-        this).read(C.DICTIONARY_CONFIGS, QuickDicConfig.class);\r
-    final List<DictionaryInfo> dictionaryInfos = new ArrayList<DictionaryInfo>();\r
-    for (final DictionaryInfo dictionaryInfo : quickDicConfig.dictionaryInfos) {\r
-      if (new File(dictionaryInfo.localFile).canRead()) {\r
-        dictionaryInfos.add(dictionaryInfo);\r
-      }\r
-    }\r
     listView.setAdapter(new BaseAdapter() {\r
       \r
       @Override\r
       public View getView(int position, View convertView, ViewGroup parent) {\r
         final LinearLayout result = new LinearLayout(parent.getContext());\r
         //result.addView(new Butt)\r
+        // TODO: me\r
         return result;\r
       }\r
       \r
@@ -451,13 +450,13 @@ public class DictionaryActivity extends ListActivity {
       }\r
       \r
       @Override\r
-      public Object getItem(int position) {\r
-        return dictionaryInfos.get(position);\r
+      public DictionaryInfo getItem(int position) {\r
+        return installedDicts.get(position);\r
       }\r
       \r
       @Override\r
       public int getCount() {\r
-        return dictionaryInfos.size();\r
+        return installedDicts.size();\r
       }\r
     });\r
   }\r