X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2FQuickDicConfig.java;h=e98f0152ba2f721e303b8c3946ea3cc97ded0903;hb=6d31b7b124787ac07ba682879fd47229765b6ee0;hp=4cdcbd38ae2f9ddbc7c43cbea4f9df08a5e0a5a2;hpb=c56b5d8ce1721eabc8283558acce1d00b6b358e2;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/QuickDicConfig.java b/src/com/hughes/android/dictionary/QuickDicConfig.java index 4cdcbd3..e98f015 100644 --- a/src/com/hughes/android/dictionary/QuickDicConfig.java +++ b/src/com/hughes/android/dictionary/QuickDicConfig.java @@ -15,89 +15,31 @@ package com.hughes.android.dictionary; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStreamReader; +import java.io.RandomAccessFile; import java.io.Serializable; import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Set; import android.content.Context; import android.os.Environment; +import android.util.Log; +import com.hughes.android.dictionary.engine.Dictionary; import com.hughes.android.dictionary.engine.Language; public final class QuickDicConfig implements Serializable { - private static final long serialVersionUID = 6711617368780900979L; + private static final String LOG = "QuickDicConfig"; - final List dictionaryInfos = new ArrayList(); - - public QuickDicConfig(final Context context) { - addDefaultDictionaries(context); - } - - public void addDefaultDictionaries(final Context context) { - for (final DictionaryInfo dictionaryInfo : getDefaultDictionaries(context).values()) { - addOrReplace(dictionaryInfo); - } - } + private static final long serialVersionUID = 6711617368780900979L; - private static Map defaultDictionaries = null; - public synchronized static Map getDefaultDictionaries(final Context context) { - if (defaultDictionaries != null) { - return defaultDictionaries; - } - - defaultDictionaries = new LinkedHashMap(); - - final BufferedReader reader = new BufferedReader(new InputStreamReader(context.getResources().openRawResource(R.raw.dictionary_info))); - String line; - try { - while ((line = reader.readLine()) != null) { - if (line.startsWith("#") || line.length() == 0) { - continue; - } - final DictionaryInfo dictionaryInfo = new DictionaryInfo(line); - String name = ""; - for (int i = 0; i < dictionaryInfo.indexInfos.size(); ++i) { - final Integer langCode = Language.isoCodeToResourceId.get(dictionaryInfo.indexInfos.get(i).langIso); - final String lang = langCode != null ? context.getString(langCode) : dictionaryInfo.indexInfos.get(i).langIso; - if (i > 0) { - name += "-"; - } - name += lang; - } - dictionaryInfo.name = name; - dictionaryInfo.localFile = Environment.getExternalStorageDirectory().getName() + "/quickdic/" + dictionaryInfo.uncompressedFilename; - defaultDictionaries.put(dictionaryInfo.localFile, dictionaryInfo); - } - } catch (IOException e) { - defaultDictionaries = null; - return new LinkedHashMap(); - } - - return defaultDictionaries; - } - - private void addOrReplace(final DictionaryInfo dictionaryConfig) { - for (int i = 0; i < dictionaryInfos.size(); ++i) { - if (dictionaryInfos.get(i).uncompressedFilename.equals(dictionaryConfig.uncompressedFilename)) { - dictionaryInfos.set(i, dictionaryConfig); - return; - } - } - dictionaryInfos.add(dictionaryConfig); - } - DictionaryInfo getDictionaryInfoByFile(final String dictFile) throws Exception { - for (int i = 0; i < dictionaryInfos.size(); ++i) { - if (dictionaryInfos.get(i).localFile.equals(dictFile)) { - return dictionaryInfos.get(i); - } - } - throw new Exception("Not found: " + dictFile); - } }