From: Thad Hughes Date: Mon, 16 Jan 2012 09:10:22 +0000 (-0800) Subject: Theme, different color rows, dictionary_info, long click begin. X-Git-Url: http://gitweb.fperrin.net/?p=Dictionary.git;a=commitdiff_plain;h=d80531dd96b68d3c05c3825bbe732275b0f9fe02 Theme, different color rows, dictionary_info, long click begin. --- diff --git a/res/drawable/theme_light_token_row_main_bg.xml b/res/drawable/theme_light_token_row_main_bg.xml new file mode 100644 index 0000000..3125908 --- /dev/null +++ b/res/drawable/theme_light_token_row_main_bg.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/res/drawable/token_row_drawable.xml b/res/drawable/token_row_drawable.xml deleted file mode 100644 index fc581cb..0000000 --- a/res/drawable/token_row_drawable.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/res/raw/dictionary_info.txt b/res/raw/dictionary_info.txt index 9d32762..31eaca4 100644 --- a/res/raw/dictionary_info.txt +++ b/res/raw/dictionary_info.txt @@ -1,62 +1,62 @@ -# LANG_1 %LANG_2 FILENAME FILESIZE NUM_MAIN_WORDS_1 NUM_MAIN_WORDS_2 NUM_ALL_WORDS_1 NUM_ALL_WORDS_2 -DE EN DE-EN_chemnitz_enwiktionary.quickdic 50207808 262726 119111 262726 119111 -EN af EN-AF_enwiktionary.quickdic 524028 4864 2757 4864 2757 -EN ar EN-AR_enwiktionary.quickdic 4012835 16522 23357 16522 23357 -EN be EN-BE_enwiktionary.quickdic 711212 4481 5325 4481 5325 -EN bg EN-BG_enwiktionary.quickdic 12913407 19530 54724 19530 54724 -EN bn EN-BN_enwiktionary.quickdic 709473 4479 1867 4479 1867 -EN bo EN-BO_enwiktionary.quickdic 82371 767 424 767 424 -EN bs EN-BS_enwiktionary.quickdic 532886 5031 2947 5031 2947 -EN ca EN-CA_enwiktionary.quickdic 8983841 16662 50054 16662 50054 -EN ci EN-CI_enwiktionary.quickdic 749721 5884 3779 5884 3779 -EN cs EN-CS_enwiktionary.quickdic 5819580 24351 23142 24351 23142 -EN da EN-DA_enwiktionary.quickdic 5279379 17460 30597 17460 30597 -EN el EN-EL_enwiktionary.quickdic 12106155 24424 48789 24424 48789 -EN eo EN-EO_enwiktionary.quickdic 11600016 16907 100765 16907 100765 -EN es EN-ES_enwiktionary.quickdic 66315884 37676 240847 37676 240847 -EN et EN-ET_enwiktionary.quickdic 1447664 9818 7697 9818 7697 -EN fa EN-FA_enwiktionary.quickdic 2266032 11292 11565 11292 11565 -EN fi EN-FI_enwiktionary.quickdic 24362077 51150 126697 51150 126697 -EN FR EN-FR_enwiktionary.quickdic 37999114 44540 208469 44540 208469 -EN ga EN-GA_enwiktionary.quickdic 2146063 11870 8649 11870 8649 -EN iw EN-HE_enwiktionary.quickdic 3655803 15703 18853 15703 18853 -EN hi EN-HI_enwiktionary.quickdic 1578419 8494 5673 8494 5673 -EN hr EN-HR_enwiktionary.quickdic 11994054 21291 45181 21291 45181 -EN hu EN-HU_enwiktionary.quickdic 6648136 22700 36369 22700 36369 -EN hy EN-HY_enwiktionary.quickdic 4635747 16697 20671 16697 20671 -EN in EN-ID_enwiktionary.quickdic 855320 6919 4384 6919 4384 -EN is EN-IS_enwiktionary.quickdic 3539828 16781 16584 16781 16584 -EN IT EN-IT_enwiktionary.quickdic 66258996 82955 458534 82955 458534 -EN ja EN-JA_enwiktionary.quickdic 14160233 32116 74666 32116 74666 -EN ko EN-KO_enwiktionary.quickdic 3798948 18780 24154 18780 24154 -EN ku EN-KU_enwiktionary.quickdic 950213 5853 5266 5853 5266 -EN la EN-LA_enwiktionary.quickdic 97577095 22517 515727 22517 515727 -EN lt EN-LT_enwiktionary.quickdic 2947045 7970 18146 7970 18146 -EN lv EN-LV_enwiktionary.quickdic 895714 6533 4709 6533 4709 -EN mi EN-MI_enwiktionary.quickdic 122547 1316 637 1316 637 -EN mn EN-MN_enwiktionary.quickdic 299861 2238 2295 2238 2295 -EN ms EN-MS_enwiktionary.quickdic 664757 5026 3483 5026 3483 -EN ne EN-NE_enwiktionary.quickdic 55115 494 305 494 305 -EN nl EN-NL_enwiktionary.quickdic 12882227 32296 65344 32296 65344 -EN no EN-NO_enwiktionary.quickdic 3793263 16740 19398 16740 19398 -EN pa EN-PA_enwiktionary.quickdic 79473 721 418 721 418 -EN pl EN-PL_enwiktionary.quickdic 8265972 22429 42112 22429 42112 -EN pt EN-PT_enwiktionary.quickdic 10595199 21951 49188 21951 49188 -EN ro EN-RO_enwiktionary.quickdic 4100603 17827 18709 17827 18709 -EN ru EN-RU_enwiktionary.quickdic 13197074 37230 70018 37230 70018 -EN sa EN-SA_enwiktionary.quickdic 1514085 7958 3667 7958 3667 -EN sk EN-SK_enwiktionary.quickdic 1022589 7895 5040 7895 5040 -EN so EN-SO_enwiktionary.quickdic 29794 326 169 326 169 -EN sq EN-SQ_enwiktionary.quickdic 820891 6153 4112 6153 4112 -EN sr EN-SR_enwiktionary.quickdic 1363176 8002 9261 8002 9261 -EN sv EN-SV_enwiktionary.quickdic 15275508 26455 98329 26455 98329 -EN sw EN-SW_enwiktionary.quickdic 1192717 7864 3526 7864 3526 -EN tg EN-TG_enwiktionary.quickdic 326521 2034 1788 2034 1788 -EN th EN-TH_enwiktionary.quickdic 1394582 7647 8766 7647 8766 -EN tr EN-TR_enwiktionary.quickdic 3420079 15760 17996 15760 17996 -EN uk EN-UK_enwiktionary.quickdic 1332001 7512 9448 7512 9448 -EN vi EN-VI_enwiktionary.quickdic 1225627 9074 4767 9074 4767 -EN ji EN-YI_enwiktionary.quickdic 421569 2955 2807 2955 2807 -EN zh EN-ZH_enwiktionary.quickdic 13270167 28253 73329 28253 73329 -EN zu EN-ZU_enwiktionary.quickdic 41213 484 224 484 224 -EN haw EN-haw_enwiktionary.quickdic 228760 1791 961 1791 961 +# LANG_1 %LANG_2 FILENAME VERSION_CODE FILESIZE NUM_MAIN_WORDS_1 NUM_MAIN_WORDS_2 NUM_ALL_WORDS_1 NUM_ALL_WORDS_2 +DE EN DE-EN_chemnitz_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/DE-EN_chemnitz_enwiktionary.quickdic.v002.zip 1325718937635 50207808 262726 119111 262726 119111 +EN af EN-AF_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-AF_enwiktionary.quickdic.v002.zip 1325712733982 524028 4864 2757 4864 2757 +EN ar EN-AR_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-AR_enwiktionary.quickdic.v002.zip 1325712841396 4012835 16522 23357 16522 23357 +EN be EN-BE_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-BE_enwiktionary.quickdic.v002.zip 1325712970257 711212 4481 5325 4481 5325 +EN bg EN-BG_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-BG_enwiktionary.quickdic.v002.zip 1325713095884 12913407 19530 54724 19530 54724 +EN bn EN-BN_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-BN_enwiktionary.quickdic.v002.zip 1325713012961 709473 4479 1867 4479 1867 +EN bo EN-BO_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-BO_enwiktionary.quickdic.v002.zip 1325718531368 82371 767 424 767 424 +EN bs EN-BS_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-BS_enwiktionary.quickdic.v002.zip 1325713055033 532886 5031 2947 5031 2947 +EN ca EN-CA_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-CA_enwiktionary.quickdic.v002.zip 1325713195193 8983841 16662 50054 16662 50054 +EN ci EN-CI_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-CI_enwiktionary.quickdic.v002.zip 1325718772713 749721 5884 3779 5884 3779 +EN cs EN-CS_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-CS_enwiktionary.quickdic.v002.zip 1325713364344 5819580 24351 23142 24351 23142 +EN da EN-DA_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-DA_enwiktionary.quickdic.v002.zip 1325713904724 5279379 17460 30597 17460 30597 +EN el EN-EL_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-EL_enwiktionary.quickdic.v002.zip 1325714653501 12106155 24424 48789 24424 48789 +EN eo EN-EO_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-EO_enwiktionary.quickdic.v002.zip 1325714080644 11600016 16907 100765 16907 100765 +EN es EN-ES_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-ES_enwiktionary.quickdic.v002.zip 1325717968191 66315884 37676 240847 37676 240847 +EN et EN-ET_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-ET_enwiktionary.quickdic.v002.zip 1325714178084 1447664 9818 7697 9818 7697 +EN fa EN-FA_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-FA_enwiktionary.quickdic.v002.zip 1325717278473 2266032 11292 11565 11292 11565 +EN fi EN-FI_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-FI_enwiktionary.quickdic.v002.zip 1325714229267 24362077 51150 126697 51150 126697 +EN FR EN-FR_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-FR_enwiktionary.quickdic.v002.zip 1325714408840 37999114 44540 208469 44540 208469 +EN ga EN-GA_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-GA_enwiktionary.quickdic.v002.zip 1325715169455 2146063 11870 8649 11870 8649 +EN iw EN-HE_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-HE_enwiktionary.quickdic.v002.zip 1325714833383 3655803 15703 18853 15703 18853 +EN hi EN-HI_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-HI_enwiktionary.quickdic.v002.zip 1325714905043 1578419 8494 5673 8494 5673 +EN hr EN-HR_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-HR_enwiktionary.quickdic.v002.zip 1325713272596 11994054 21291 45181 21291 45181 +EN hu EN-HU_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-HU_enwiktionary.quickdic.v002.zip 1325714960592 6648136 22700 36369 22700 36369 +EN hy EN-HY_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-HY_enwiktionary.quickdic.v002.zip 1325712904604 4635747 16697 20671 16697 20671 +EN in EN-ID_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-ID_enwiktionary.quickdic.v002.zip 1325715115290 855320 6919 4384 6919 4384 +EN is EN-IS_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-IS_enwiktionary.quickdic.v002.zip 1325715046977 3539828 16781 16584 16781 16584 +EN IT EN-IT_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-IT_enwiktionary.quickdic.v002.zip 1325715229113 66258996 82955 458534 82955 458534 +EN ja EN-JA_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-JA_enwiktionary.quickdic.v002.zip 1325716403718 14160233 32116 74666 32116 74666 +EN ko EN-KO_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-KO_enwiktionary.quickdic.v002.zip 1325716785161 3798948 18780 24154 18780 24154 +EN ku EN-KU_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-KU_enwiktionary.quickdic.v002.zip 1325716890843 950213 5853 5266 5853 5266 +EN la EN-LA_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-LA_enwiktionary.quickdic.v002.zip 1325715727850 97577095 22517 515727 22517 515727 +EN lt EN-LT_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-LT_enwiktionary.quickdic.v002.zip 1325716333304 2947045 7970 18146 7970 18146 +EN lv EN-LV_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-LV_enwiktionary.quickdic.v002.zip 1325716269485 895714 6533 4709 6533 4709 +EN mi EN-MI_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-MI_enwiktionary.quickdic.v002.zip 1325717028331 122547 1316 637 1316 637 +EN mn EN-MN_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-MN_enwiktionary.quickdic.v002.zip 1325717086266 299861 2238 2295 2238 2295 +EN ms EN-MS_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-MS_enwiktionary.quickdic.v002.zip 1325716951272 664757 5026 3483 5026 3483 +EN ne EN-NE_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-NE_enwiktionary.quickdic.v002.zip 1325717144745 55115 494 305 494 305 +EN nl EN-NL_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-NL_enwiktionary.quickdic.v002.zip 1325713973178 12882227 32296 65344 32296 65344 +EN no EN-NO_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-NO_enwiktionary.quickdic.v002.zip 1325717213298 3793263 16740 19398 16740 19398 +EN pa EN-PA_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-PA_enwiktionary.quickdic.v002.zip 1325717504467 79473 721 418 721 418 +EN pl EN-PL_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-PL_enwiktionary.quickdic.v002.zip 1325717332279 8265972 22429 42112 22429 42112 +EN pt EN-PT_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-PT_enwiktionary.quickdic.v002.zip 1325717419094 10595199 21951 49188 21951 49188 +EN ro EN-RO_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-RO_enwiktionary.quickdic.v002.zip 1325717544968 4100603 17827 18709 17827 18709 +EN ru EN-RU_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-RU_enwiktionary.quickdic.v002.zip 1325717611144 13197074 37230 70018 37230 70018 +EN sa EN-SA_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-SA_enwiktionary.quickdic.v002.zip 1325717759825 1514085 7958 3667 7958 3667 +EN sk EN-SK_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-SK_enwiktionary.quickdic.v002.zip 1325717868836 1022589 7895 5040 7895 5040 +EN so EN-SO_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-SO_enwiktionary.quickdic.v002.zip 1325717922498 29794 326 169 326 169 +EN sq EN-SQ_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-SQ_enwiktionary.quickdic.v002.zip 1325712783651 820891 6153 4112 6153 4112 +EN sr EN-SR_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-SR_enwiktionary.quickdic.v002.zip 1325717816595 1363176 8002 9261 8002 9261 +EN sv EN-SV_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-SV_enwiktionary.quickdic.v002.zip 1325718302104 15275508 26455 98329 26455 98329 +EN sw EN-SW_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-SW_enwiktionary.quickdic.v002.zip 1325718250792 1192717 7864 3526 7864 3526 +EN tg EN-TG_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-TG_enwiktionary.quickdic.v002.zip 1325718422864 326521 2034 1788 2034 1788 +EN th EN-TH_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-TH_enwiktionary.quickdic.v002.zip 1325718472256 1394582 7647 8766 7647 8766 +EN tr EN-TR_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-TR_enwiktionary.quickdic.v002.zip 1325718581691 3420079 15760 17996 15760 17996 +EN uk EN-UK_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-UK_enwiktionary.quickdic.v002.zip 1325718652467 1332001 7512 9448 7512 9448 +EN vi EN-VI_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-VI_enwiktionary.quickdic.v002.zip 1325718710893 1225627 9074 4767 9074 4767 +EN ji EN-YI_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-YI_enwiktionary.quickdic.v002.zip 1325718829219 421569 2955 2807 2955 2807 +EN zh EN-ZH_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-ZH_enwiktionary.quickdic.v002.zip 1325713436840 13270167 28253 73329 28253 73329 +EN zu EN-ZU_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-ZU_enwiktionary.quickdic.v002.zip 1325718884550 41213 484 224 484 224 +EN haw EN-haw_enwiktionary.quickdic http://quickdic-dictionary.googlecode.com/files/EN-haw_enwiktionary.quickdic.v002.zip 1325714784762 228760 1791 961 1791 961 diff --git a/res/values/themeDefault.xml b/res/values/themeDefault.xml deleted file mode 100644 index dfdb04a..0000000 --- a/res/values/themeDefault.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/res/values/themeLight.xml b/res/values/themeLight.xml deleted file mode 100644 index 2b75000..0000000 --- a/res/values/themeLight.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - diff --git a/res/values/themes.xml b/res/values/themes.xml new file mode 100644 index 0000000..7403f79 --- /dev/null +++ b/res/values/themes.xml @@ -0,0 +1,32 @@ + + + + + + + + + + #FFFFFF + #0000FF + #888888 + #222222 + + + + + + + + + #FFFFFF + #0000FF + #888888 + #DDDDDD + + + \ No newline at end of file diff --git a/src/com/hughes/android/dictionary/AboutActivity.java b/src/com/hughes/android/dictionary/AboutActivity.java index 61a4c56..6d1b5d9 100644 --- a/src/com/hughes/android/dictionary/AboutActivity.java +++ b/src/com/hughes/android/dictionary/AboutActivity.java @@ -24,7 +24,7 @@ public final class AboutActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(final Bundle savedInstanceState) { - ((DictionaryApplication)getApplication()).applyTheme(this); + //TODO((DictionaryApplication)getApplication()).applyTheme(this); super.onCreate(savedInstanceState); setContentView(R.layout.about_activity); diff --git a/src/com/hughes/android/dictionary/C.java b/src/com/hughes/android/dictionary/C.java index b7f4126..4c6fff4 100644 --- a/src/com/hughes/android/dictionary/C.java +++ b/src/com/hughes/android/dictionary/C.java @@ -23,6 +23,29 @@ public class C { static final String SEARCH_TOKEN = "searchToken"; public static final String THANKS_FOR_UPDATING_VERSION = "thanksForUpdatingVersion"; + + enum Theme { + DEFAULT(R.style.Theme_Default, R.style.Theme_Light_TokenRow_Fg, R.drawable.theme_default_token_row_main_bg, R.drawable.theme_default_token_row_other_bg, R.drawable.theme_default_other_lang_bg), + LIGHT(R.style.Theme_Light, R.style.Theme_Default_TokenRow_Fg, R.drawable.theme_light_token_row_main_bg, R.drawable.theme_light_token_row_other_bg, R.drawable.theme_light_other_lang_bg); + + private Theme(final int themeId, + final int tokenRowFg, + final int tokenRowMainBg, + final int tokenRowOtherBg, + final int otherLangBg) { + this.themeId = themeId; + this.tokenRowFg = tokenRowFg; + this.tokenRowMainBg = tokenRowMainBg; + this.tokenRowOtherBg = tokenRowOtherBg; + this.otherLangBg = otherLangBg; + } + + final int themeId; + final int tokenRowFg; + final int tokenRowMainBg; + final int tokenRowOtherBg; + final int otherLangBg; + } } diff --git a/src/com/hughes/android/dictionary/DictionaryActivity.java b/src/com/hughes/android/dictionary/DictionaryActivity.java index a3cc390..0a846e6 100644 --- a/src/com/hughes/android/dictionary/DictionaryActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryActivity.java @@ -78,8 +78,6 @@ public class DictionaryActivity extends ListActivity { static final String LOG = "QuickDic"; - static final int VIBRATE_MILLIS = 100; - int dictIndex = 0; RandomAccessFile dictRaf = null; Dictionary dictionary = null; @@ -96,6 +94,7 @@ public class DictionaryActivity extends ListActivity { }); private SearchOperation currentSearchOperation = null; + C.Theme theme = C.Theme.LIGHT; int fontSizeSp; EditText searchText; Button langButton; @@ -153,7 +152,7 @@ public class DictionaryActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { Log.d(LOG, "onCreate:" + this); - ((DictionaryApplication)getApplication()).applyTheme(this); + theme = ((DictionaryApplication)getApplication()).getSelectedTheme(); super.onCreate(savedInstanceState); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); @@ -163,7 +162,7 @@ public class DictionaryActivity extends ListActivity { QuickDicConfig quickDicConfig = PersistentObjectCache.init( this).read(C.DICTIONARY_CONFIGS, QuickDicConfig.class); dictIndex = prefs.getInt(C.DICT_INDEX, 0) ; - final DictionaryInfo dictionaryConfig = quickDicConfig.dictionaryConfigs.get(dictIndex); + final DictionaryInfo dictionaryConfig = quickDicConfig.dictionaryInfos.get(dictIndex); this.setTitle("QuickDic: " + dictionaryConfig.name); dictRaf = new RandomAccessFile(dictionaryConfig.localFile, "r"); dictionary = new Dictionary(dictRaf); @@ -711,8 +710,8 @@ public class DictionaryActivity extends ListActivity { for (int r = 0; r < rowCount; ++r) { final TableRow tableRow = new TableRow(result.getContext()); - TextView column1 = new TextView(tableRow.getContext()); - TextView column2 = new TextView(tableRow.getContext()); + final EditText column1 = new EditText(tableRow.getContext()); + final EditText column2 = new EditText(tableRow.getContext()); final TableRow.LayoutParams layoutParams = new TableRow.LayoutParams(); layoutParams.weight = 0.5f; @@ -752,6 +751,17 @@ public class DictionaryActivity extends ListActivity { column1.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSizeSp); column2.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSizeSp); + column2.setBackgroundResource(theme.otherLangBg); + + column2.setOnLongClickListener(new EditText.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + final int start = column2.getSelectionStart(); + final int end = column2.getSelectionStart(); + Log.i(LOG, "Long click on: " + column2.getText().toString().substring(start, end)); + return false; + } + }); result.addView(tableRow); } @@ -763,10 +773,10 @@ public class DictionaryActivity extends ListActivity { final Context context = parent.getContext(); final TextView textView = new TextView(context); textView.setText(row.getToken()); - textView.setBackgroundResource(R.drawable.token_row_drawable); + textView.setBackgroundResource(row.hasMainEntry ? theme.tokenRowMainBg : theme.tokenRowOtherBg); // Doesn't work: //textView.setTextColor(android.R.color.secondary_text_light); - textView.setTextAppearance(context, R.style.Theme_Light_Token); + textView.setTextAppearance(context, theme.tokenRowFg); textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 5 * fontSizeSp / 4); return textView; } diff --git a/src/com/hughes/android/dictionary/DictionaryApplication.java b/src/com/hughes/android/dictionary/DictionaryApplication.java index 4b62c7b..d7109a0 100644 --- a/src/com/hughes/android/dictionary/DictionaryApplication.java +++ b/src/com/hughes/android/dictionary/DictionaryApplication.java @@ -14,15 +14,14 @@ package com.hughes.android.dictionary; -import com.hughes.android.dictionary.engine.TransliteratorManager; - -import android.app.Activity; import android.app.Application; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.preference.PreferenceManager; import android.util.Log; +import com.hughes.android.dictionary.engine.TransliteratorManager; + public class DictionaryApplication extends Application { @Override @@ -31,24 +30,30 @@ public class DictionaryApplication extends Application { Log.d("QuickDic", "Application: onCreate"); TransliteratorManager.init(null); + setTheme(getSelectedTheme().themeId); + + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); prefs.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { Log.d("THAD", "prefs changed: " + key); + + if (key.equals(getString(R.string.themeKey))) { + setTheme(getSelectedTheme().themeId); + } } }); } - public void applyTheme(final Activity activity) { + public C.Theme getSelectedTheme() { final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); final String theme = prefs.getString(getString(R.string.themeKey), "themeLight"); - Log.d("QuickDic", "Setting theme to: " + theme); if (theme.equals("themeLight")) { - activity.setTheme(R.style.Theme_Light); + return C.Theme.LIGHT; } else { - activity.setTheme(R.style.Theme_Default); + return C.Theme.DEFAULT; } } } diff --git a/src/com/hughes/android/dictionary/DictionaryEditActivity.java b/src/com/hughes/android/dictionary/DictionaryEditActivity.java index 7d8e1a8..909db75 100644 --- a/src/com/hughes/android/dictionary/DictionaryEditActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryEditActivity.java @@ -26,11 +26,10 @@ import android.os.Handler; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; -import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; -import android.view.View; import android.view.MenuItem.OnMenuItemClickListener; +import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; import android.widget.Button; @@ -61,7 +60,7 @@ public class DictionaryEditActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(final Bundle savedInstanceState) { - ((DictionaryApplication)getApplication()).applyTheme(this); + //((DictionaryApplication)getApplication()).applyTheme(this); super.onCreate(savedInstanceState); setContentView(R.layout.edit_activity); @@ -74,11 +73,11 @@ public class DictionaryEditActivity extends Activity { try { quickDicConfig = PersistentObjectCache.init(this).read( C.DICTIONARY_CONFIGS, QuickDicConfig.class); - dictionaryConfig = quickDicConfig.dictionaryConfigs.get(dictIndex); + dictionaryConfig = quickDicConfig.dictionaryInfos.get(dictIndex); } catch (Exception e) { Log.e(LOG, "Failed to read QuickDicConfig.", e); - quickDicConfig = new QuickDicConfig(); - dictionaryConfig = quickDicConfig.dictionaryConfigs.get(0); + quickDicConfig = new QuickDicConfig(this); + dictionaryConfig = quickDicConfig.dictionaryInfos.get(0); } // Write stuff from object into fields. diff --git a/src/com/hughes/android/dictionary/DictionaryInfo.java b/src/com/hughes/android/dictionary/DictionaryInfo.java index 088dcf6..46aafea 100644 --- a/src/com/hughes/android/dictionary/DictionaryInfo.java +++ b/src/com/hughes/android/dictionary/DictionaryInfo.java @@ -23,25 +23,45 @@ public class DictionaryInfo implements Serializable { // Stuff populated from the text file. public final String[] langIsos = new String[2]; public String uncompressedFilename; + public String downloadUrl; public long uncompressedSize; + public long creationMillis; public final int[] allTokenCounts = new int[2]; public final int[] mainTokenCounts = new int[2]; String name; // Determined at runtime based on locale on device--user editable. String localFile; // Determined based on device's Environment. - String downloadUrl; + public String toTabSeparatedString() { + return String.format("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d", langIsos[0], + langIsos[1], uncompressedFilename, downloadUrl, creationMillis, uncompressedSize, + mainTokenCounts[0], mainTokenCounts[1], allTokenCounts[0], + allTokenCounts[1]); + } + + public DictionaryInfo(final String line) { + final String[] fields = line.split("\t"); + int i = 0; + langIsos[0] = fields[i++]; + langIsos[1] = fields[i++]; + uncompressedFilename = fields[i++]; + downloadUrl = fields[i++]; + creationMillis = Long.parseLong(fields[i++]); + uncompressedSize = Long.parseLong(fields[i++]); + mainTokenCounts[0] = Integer.parseInt(fields[i++]); + mainTokenCounts[1] = Integer.parseInt(fields[i++]); + allTokenCounts[0] = Integer.parseInt(fields[i++]); + allTokenCounts[1] = Integer.parseInt(fields[i++]); + } + + public DictionaryInfo() { + // Blank object. + } + @Override public String toString() { return name; } - public String toTabSeparatedString() { - return String.format("%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d", langIsos[0], - langIsos[1], uncompressedFilename, uncompressedSize, - mainTokenCounts[0], mainTokenCounts[1], allTokenCounts[0], - allTokenCounts[1]); - } - - + } diff --git a/src/com/hughes/android/dictionary/DictionaryManagerActivity.java b/src/com/hughes/android/dictionary/DictionaryManagerActivity.java index b1d2398..ac1d97b 100644 --- a/src/com/hughes/android/dictionary/DictionaryManagerActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryManagerActivity.java @@ -48,11 +48,11 @@ public class DictionaryManagerActivity extends ListActivity { static final String LOG = "QuickDic"; - QuickDicConfig quickDicConfig = new QuickDicConfig(); + QuickDicConfig quickDicConfig; public void onCreate(Bundle savedInstanceState) { - ((DictionaryApplication)getApplication()).applyTheme(this); + //((DictionaryApplication)getApplication()).applyTheme(this); super.onCreate(savedInstanceState); Log.d(LOG, "onCreate:" + this); @@ -120,58 +120,17 @@ public class DictionaryManagerActivity extends ListActivity { quickDicConfig = PersistentObjectCache.init(this).read(C.DICTIONARY_CONFIGS, QuickDicConfig.class); if (quickDicConfig == null) { - quickDicConfig = new QuickDicConfig(); - PersistentObjectCache.getInstance().write(C.DICTIONARY_CONFIGS, quickDicConfig); + quickDicConfig = new QuickDicConfig(this); + } else { + quickDicConfig.addDefaultDictionaries(this); } - if (quickDicConfig.currentVersion < QuickDicConfig.LATEST_VERSION) { - Log.d(LOG, "Dictionary list is old, updating it."); - - // Replace <-> with - - if (quickDicConfig.currentVersion < 5) { - for (final DictionaryInfo config : quickDicConfig.dictionaryConfigs) { - config.name = config.name.replace("<->", "-"); - } - } - quickDicConfig.addDefaultDictionaries(); - quickDicConfig.currentVersion = QuickDicConfig.LATEST_VERSION; - PersistentObjectCache.init(this).write(C.DICTIONARY_CONFIGS, quickDicConfig); - } - - Log.d(LOG, "DictionaryList: " + quickDicConfig.dictionaryConfigs); + PersistentObjectCache.getInstance().write(C.DICTIONARY_CONFIGS, quickDicConfig); + Log.d(LOG, "DictionaryList: " + quickDicConfig.dictionaryInfos); setListAdapter(new Adapter()); } public boolean onCreateOptionsMenu(final Menu menu) { - final MenuItem newDictionaryMenuItem = menu.add(R.string.addDictionary); - newDictionaryMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() { - public boolean onMenuItemClick(final MenuItem menuItem) { - final DictionaryInfo dictionaryConfig = new DictionaryInfo(); - dictionaryConfig.name = getString(R.string.newDictionary); - quickDicConfig.dictionaryConfigs.add(0, dictionaryConfig); - dictionaryConfigsChanged(); - return false; - } - }); - - final MenuItem addDefaultDictionariesMenuItem = menu.add(R.string.addDefaultDictionaries); - addDefaultDictionariesMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() { - public boolean onMenuItemClick(final MenuItem menuItem) { - quickDicConfig.addDefaultDictionaries(); - dictionaryConfigsChanged(); - return false; - } - }); - - 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) { @@ -217,8 +176,8 @@ public class DictionaryManagerActivity extends ListActivity { moveToTopMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { - final DictionaryInfo dictionaryConfig = quickDicConfig.dictionaryConfigs.remove(adapterContextMenuInfo.position); - quickDicConfig.dictionaryConfigs.add(0, dictionaryConfig); + final DictionaryInfo dictionaryConfig = quickDicConfig.dictionaryInfos.remove(adapterContextMenuInfo.position); + quickDicConfig.dictionaryInfos.add(0, dictionaryConfig); dictionaryConfigsChanged(); return true; } @@ -229,7 +188,7 @@ public class DictionaryManagerActivity extends ListActivity { deleteMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { - quickDicConfig.dictionaryConfigs.remove(adapterContextMenuInfo.position); + quickDicConfig.dictionaryInfos.remove(adapterContextMenuInfo.position); dictionaryConfigsChanged(); return true; } @@ -246,12 +205,12 @@ public class DictionaryManagerActivity extends ListActivity { @Override public int getCount() { - return quickDicConfig.dictionaryConfigs.size(); + return quickDicConfig.dictionaryInfos.size(); } @Override public DictionaryInfo getItem(int position) { - return quickDicConfig.dictionaryConfigs.get(position); + return quickDicConfig.dictionaryInfos.get(position); } @Override diff --git a/src/com/hughes/android/dictionary/DownloadActivity.java b/src/com/hughes/android/dictionary/DownloadActivity.java index 7c81e45..0ed8454 100644 --- a/src/com/hughes/android/dictionary/DownloadActivity.java +++ b/src/com/hughes/android/dictionary/DownloadActivity.java @@ -53,7 +53,7 @@ public class DownloadActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(final Bundle savedInstanceState) { - ((DictionaryApplication)getApplication()).applyTheme(this); + //((DictionaryApplication)getApplication()).applyTheme(this); super.onCreate(savedInstanceState); final Intent intent = getIntent(); diff --git a/src/com/hughes/android/dictionary/PreferenceActivity.java b/src/com/hughes/android/dictionary/PreferenceActivity.java index 2ac2118..b935d31 100644 --- a/src/com/hughes/android/dictionary/PreferenceActivity.java +++ b/src/com/hughes/android/dictionary/PreferenceActivity.java @@ -22,10 +22,17 @@ public class PreferenceActivity extends android.preference.PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { - ((DictionaryApplication)getApplication()).applyTheme(this); + //((DictionaryApplication)getApplication()).applyTheme(this); super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } + @Override + public void onContentChanged() { + super.onContentChanged(); + } + + + } diff --git a/src/com/hughes/android/dictionary/QuickDicConfig.java b/src/com/hughes/android/dictionary/QuickDicConfig.java index 414ae2d..0ad8b38 100644 --- a/src/com/hughes/android/dictionary/QuickDicConfig.java +++ b/src/com/hughes/android/dictionary/QuickDicConfig.java @@ -14,10 +14,16 @@ package com.hughes.android.dictionary; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; import java.io.Serializable; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; +import android.content.Context; import android.os.Environment; import com.hughes.android.dictionary.engine.Language; @@ -25,50 +31,64 @@ import com.hughes.android.dictionary.engine.Language; public final class QuickDicConfig implements Serializable { private static final long serialVersionUID = 6711617368780900979L; + + final List dictionaryInfos = new ArrayList(); - // Just increment this to have them all update... - static final int LATEST_VERSION = 6; - - final List dictionaryConfigs = new ArrayList(); - int currentVersion = LATEST_VERSION; - - public QuickDicConfig() { - addDefaultDictionaries(); + public QuickDicConfig(final Context context) { + addDefaultDictionaries(context); } - static final String BASE_URL = "http://quickdic-dictionary.googlecode.com/files/"; - - // TODO: read this from a resource file.... + public void addDefaultDictionaries(final Context context) { + for (final DictionaryInfo dictionaryInfo : getDefaultDictionaries(context).values()) { + addOrReplace(dictionaryInfo); + } + } - public void addDefaultDictionaries() { - { - final DictionaryInfo config = new DictionaryInfo(); - config.name = "German-English"; - config.downloadUrl = String.format("%sDE-EN_chemnitz_enwiktionary.quickdic.%s.zip", BASE_URL, VERSION_SUFFIX); - config.localFile = String.format("%s/quickDic/DE-EN_chemnitz_enwiktionary.quickdic", Environment.getExternalStorageDirectory()); - addOrReplace(config); + private static Map defaultDictionaries = null; + public synchronized static Map getDefaultDictionaries(final Context context) { + if (defaultDictionaries != null) { + return defaultDictionaries; } - for (final String iso : Language.isoCodeToResourceName.keySet()) { - if (iso.equals("EN") || iso.equals("DE")) { - continue; + defaultDictionaries = new LinkedHashMap(); + + final BufferedReader reader = new BufferedReader(new InputStreamReader(context.getResources().openRawResource(R.raw.dictionary_info))); + String line; + String name = ""; + try { + while ((line = reader.readLine()) != null) { + if (line.startsWith("#") || line.length() == 0) { + continue; + } + final DictionaryInfo dictionaryInfo = new DictionaryInfo(line); + for (int i = 0; i < dictionaryInfo.langIsos.length; ++i) { + final Integer langCode = Language.isoCodeToResourceId.get(dictionaryInfo.langIsos[i]); + final String lang = langCode != null ? context.getString(langCode) : dictionaryInfo.langIsos[i]; + if (i > 0) { + name += "-"; + } + name += lang; + } + dictionaryInfo.name = name; + dictionaryInfo.localFile = Environment.getExternalStorageDirectory().getName() + "/quickdic/" + dictionaryInfo.uncompressedFilename; + defaultDictionaries.put(dictionaryInfo.localFile, dictionaryInfo); } - final DictionaryInfo config = new DictionaryInfo(); - config.name = String.format("English-%s", Language.isoCodeToWikiName.get(iso)); - config.downloadUrl = String.format("%sEN-%s_enwiktionary.quickdic.%s.zip", BASE_URL, iso, VERSION_SUFFIX); - config.localFile = String.format("%s/quickDic/EN-%s_enwiktionary.quickdic", Environment.getExternalStorageDirectory(), iso); - addOrReplace(config); + } catch (IOException e) { + defaultDictionaries = null; + return new LinkedHashMap(); } + + return defaultDictionaries; } private void addOrReplace(final DictionaryInfo dictionaryConfig) { - for (int i = 0; i < dictionaryConfigs.size(); ++i) { - if (dictionaryConfigs.get(i).name.equals(dictionaryConfig.name)) { - dictionaryConfigs.set(i, dictionaryConfig); + for (int i = 0; i < dictionaryInfos.size(); ++i) { + if (dictionaryInfos.get(i).uncompressedFilename.equals(dictionaryConfig.uncompressedFilename)) { + dictionaryInfos.set(i, dictionaryConfig); return; } } - dictionaryConfigs.add(dictionaryConfig); + dictionaryInfos.add(dictionaryConfig); } } diff --git a/src/com/hughes/android/dictionary/engine/TokenRow.java b/src/com/hughes/android/dictionary/engine/TokenRow.java index 8579761..adb4c58 100644 --- a/src/com/hughes/android/dictionary/engine/TokenRow.java +++ b/src/com/hughes/android/dictionary/engine/TokenRow.java @@ -20,7 +20,7 @@ import java.io.RandomAccessFile; public class TokenRow extends RowBase { - final boolean hasMainEntry; + public final boolean hasMainEntry; TokenRow(final RandomAccessFile raf, final int thisRowIndex, final Index index, final boolean hasMainEntry) throws IOException { super(raf, thisRowIndex, index); @@ -52,7 +52,8 @@ public class TokenRow extends RowBase { @Override public void print(final PrintStream out) { - out.println("===" + getToken() + "==="); + final String surrounder = hasMainEntry ? "***" : "==="; + out.println(surrounder + getToken() + surrounder); } @Override