- private static Map<String,DictionaryInfo> defaultDictionaries = null;
- public synchronized static Map<String,DictionaryInfo> getDefaultDictionaries(final Context context) {
- if (defaultDictionaries != null) {
- return defaultDictionaries;
- }
-
- defaultDictionaries = new LinkedHashMap<String, DictionaryInfo>();
-
- 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<String, DictionaryInfo>();
- }
-
- 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);
- }