From a4f403413341b2b8b4e9055f312867367caa9f85 Mon Sep 17 00:00:00 2001 From: Thad Hughes Date: Sun, 18 Dec 2011 11:35:07 -0800 Subject: [PATCH] More dictionary configs, dictionary name in window title, remove all dictionaries menu item. --- res/values/strings.xml | 1 + .../dictionary/DictionaryActivity.java | 1 + .../dictionary/DictionaryListActivity.java | 9 +++ .../android/dictionary/QuickDicConfig.java | 33 +++++---- .../dictionary/engine/EntryTypeName.java | 1 + .../android/dictionary/engine/Language.java | 71 +++++++++++++++++++ 6 files changed, 103 insertions(+), 13 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 93946c6..8298edf 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -10,6 +10,7 @@ \nLong-press to edit the dictionary config. Press "menu" to add a new dictionary.]]> Add dictionary Add default dictionaries + Remove all dictionaries Edit dictionary config Delete dictionary Move up diff --git a/src/com/hughes/android/dictionary/DictionaryActivity.java b/src/com/hughes/android/dictionary/DictionaryActivity.java index 80025c2..1bfdc29 100644 --- a/src/com/hughes/android/dictionary/DictionaryActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryActivity.java @@ -151,6 +151,7 @@ public class DictionaryActivity extends ListActivity { this).read(C.DICTIONARY_CONFIGS, QuickDicConfig.class); dictIndex = prefs.getInt(C.DICT_INDEX, 0) ; final DictionaryConfig dictionaryConfig = quickDicConfig.dictionaryConfigs.get(dictIndex); + this.setTitle("QuickDic: " + dictionaryConfig.name); dictRaf = new RandomAccessFile(dictionaryConfig.localFile, "r"); dictionary = new Dictionary(dictRaf); } catch (Exception e) { diff --git a/src/com/hughes/android/dictionary/DictionaryListActivity.java b/src/com/hughes/android/dictionary/DictionaryListActivity.java index da61737..b6ac370 100644 --- a/src/com/hughes/android/dictionary/DictionaryListActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryListActivity.java @@ -139,6 +139,15 @@ public class DictionaryListActivity extends ListActivity { } }); + final MenuItem removeAllDictionariesMenuItem = menu.add(R.string.removeAllDictionaries); + removeAllDictionariesMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() { + public boolean onMenuItemClick(final MenuItem menuItem) { + quickDicConfig.dictionaryConfigs.clear(); + dictionaryConfigsChanged(); + return false; + } + }); + final MenuItem about = menu.add(getString(R.string.about)); about.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(final MenuItem menuItem) { diff --git a/src/com/hughes/android/dictionary/QuickDicConfig.java b/src/com/hughes/android/dictionary/QuickDicConfig.java index 497f375..306ff80 100644 --- a/src/com/hughes/android/dictionary/QuickDicConfig.java +++ b/src/com/hughes/android/dictionary/QuickDicConfig.java @@ -18,11 +18,14 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import com.hughes.android.dictionary.engine.Language; + public final class QuickDicConfig implements Serializable { private static final long serialVersionUID = 6711617368780900979L; - static final int LATEST_VERSION = 1; + // Just increment this to have them all update... + static final int LATEST_VERSION = 3; final List dictionaryConfigs = new ArrayList(); int currentVersion = LATEST_VERSION; @@ -33,20 +36,24 @@ public final class QuickDicConfig implements Serializable { public void addDefaultDictionaries() { { - final DictionaryConfig de_en_chemnitz = new DictionaryConfig(); - de_en_chemnitz.name = "DE<->EN (Chemnitz)"; - de_en_chemnitz.downloadUrl = "https://sites.google.com/site/quickdic/dictionaries-1/DE-EN_chemnitz.quickdic.zip?attredirects=0&d=1"; - de_en_chemnitz.localFile = "/sdcard/quickDic/DE-EN_chemnitz.quickdic"; - addOrReplace(de_en_chemnitz); + final DictionaryConfig config = new DictionaryConfig(); + config.name = "German<->English"; + config.downloadUrl = "https://sites.google.com/site/quickdic/dictionaries-1/DE-EN_chemnitz_enwiktionary.quickdic.zip?attredirects=0&d=1"; + config.localFile = "/sdcard/quickDic/DE-EN_chemnitz_enwiktionary.quickdic"; + addOrReplace(config); } - - { - final DictionaryConfig en_it_wiktionary = new DictionaryConfig(); - en_it_wiktionary.name = "EN<->IT (EN Wiktionary)"; - en_it_wiktionary.downloadUrl = "https://sites.google.com/site/quickdic/dictionaries-1/EN-IT_enwiktionary.quickdic.zip?attredirects=0&d=1"; - en_it_wiktionary.localFile = "/sdcard/quickDic/EN-IT_enwiktionary.quickdic"; - addOrReplace(en_it_wiktionary); + + for (final String iso : Language.isoCodeToWikiName.keySet()) { + if (iso.equals("EN") || iso.equals("DE")) { + continue; + } + final DictionaryConfig config = new DictionaryConfig(); + config.name = String.format("EN<->%s English<->%s (Wiktionary)", iso, Language.isoCodeToWikiName.get(iso)); + config.downloadUrl = String.format("https://sites.google.com/site/quickdic/dictionaries-1/EN-%s_enwiktionary.quickdic.zip?attredirects=0&d=1", iso); + config.localFile = String.format("/sdcard/quickDic/EN-%s_enwiktionary.quickdic", iso); + addOrReplace(config); } + } private void addOrReplace(final DictionaryConfig dictionaryConfig) { diff --git a/src/com/hughes/android/dictionary/engine/EntryTypeName.java b/src/com/hughes/android/dictionary/engine/EntryTypeName.java index 0df2727..7ea167e 100644 --- a/src/com/hughes/android/dictionary/engine/EntryTypeName.java +++ b/src/com/hughes/android/dictionary/engine/EntryTypeName.java @@ -49,6 +49,7 @@ public enum EntryTypeName { MULTIROW_HEAD_MANY_WORDS(0), MULTIROW_TAIL_MANY_WORDS(0), + WIKTIONARY_EXAMPLE(0), PART_OF_HYPHENATED(0), BRACKETED(0), PARENTHESIZED(0), diff --git a/src/com/hughes/android/dictionary/engine/Language.java b/src/com/hughes/android/dictionary/engine/Language.java index 5aae782..c3cb84b 100644 --- a/src/com/hughes/android/dictionary/engine/Language.java +++ b/src/com/hughes/android/dictionary/engine/Language.java @@ -14,7 +14,9 @@ package com.hughes.android.dictionary.engine; +import java.util.Arrays; import java.util.LinkedHashMap; +import java.util.List; import java.util.Locale; import java.util.Map; @@ -22,6 +24,75 @@ import com.ibm.icu.text.Collator; public class Language { + public static final Map isoCodeToWikiName = new LinkedHashMap(); + static { +// Albanian +// Armenian +// Belarusian +// Bengali +// Bosnian +// Bulgarian +// Catalan +// Esperanto +// Estonian +// Hungarian +// Indonesian +// Kurdish +// Latin +// Lithuanian +// Nepali +// Punjabi +// Swahili + isoCodeToWikiName.put("AF", "Afrikaans"); + isoCodeToWikiName.put("AR", "Arabic"); + isoCodeToWikiName.put("HY", "Armenian"); + isoCodeToWikiName.put("HR", "Croation"); + isoCodeToWikiName.put("CS", "Czech"); + isoCodeToWikiName.put("ZH", "Chinese|Mandarin|Cantonese"); + isoCodeToWikiName.put("DA", "Danish"); + isoCodeToWikiName.put("NL", "Dutch"); + isoCodeToWikiName.put("EN", "English"); + isoCodeToWikiName.put("FI", "Finish"); + isoCodeToWikiName.put("FR", "French"); + isoCodeToWikiName.put("DE", "German"); + isoCodeToWikiName.put("EL", "Greek"); + isoCodeToWikiName.put("haw", "Hawaiian"); + isoCodeToWikiName.put("HE", "Hewbrew"); + isoCodeToWikiName.put("HI", "Hindi"); + isoCodeToWikiName.put("IS", "Icelandic"); + isoCodeToWikiName.put("GA", "Irish"); + isoCodeToWikiName.put("IT", "Italian"); + isoCodeToWikiName.put("LT", "Lithuanian"); + isoCodeToWikiName.put("JA", "Japanese"); + isoCodeToWikiName.put("KO", "Korean"); + isoCodeToWikiName.put("KU", "Kurdish"); + isoCodeToWikiName.put("MS", "Malay"); + isoCodeToWikiName.put("MI", "Maori"); + isoCodeToWikiName.put("MN", "Mongolian"); + isoCodeToWikiName.put("NO", "Norwegian"); + isoCodeToWikiName.put("FA", "Persian"); + isoCodeToWikiName.put("PT", "Portuguese"); + isoCodeToWikiName.put("RO", "Romanian"); + isoCodeToWikiName.put("RU", "Russian"); + isoCodeToWikiName.put("SA", "Sanskrit"); + isoCodeToWikiName.put("SR", "Serbian"); + isoCodeToWikiName.put("SO", "Somali"); + isoCodeToWikiName.put("ES", "Spanish"); + isoCodeToWikiName.put("SU", "Sudanese"); + isoCodeToWikiName.put("SV", "Swedish"); + isoCodeToWikiName.put("TG", "Tajik"); + isoCodeToWikiName.put("TH", "Thai"); + isoCodeToWikiName.put("BO", "Tibetan"); + isoCodeToWikiName.put("TR", "Turkish"); + isoCodeToWikiName.put("UK", "Ukranian"); + isoCodeToWikiName.put("VI", "Vietnamese"); + isoCodeToWikiName.put("CI", "Welsh"); + isoCodeToWikiName.put("YI", "Yiddish"); + isoCodeToWikiName.put("ZU", "Zulu"); + } + + static final List ISO_CODES_WITH_DICTS = Arrays.asList(); + static final Map symbolToLangauge = new LinkedHashMap(); final String symbol; -- 2.43.0