--- /dev/null
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_selected="true" android:drawable="@android:color/transparent" />
+ <item android:drawable="@color/theme_light_token_row_main_bg" />
+</selector>
\ No newline at end of file
+++ /dev/null
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_window_focused="false" android:state_selected="true" android:drawable="@android:color/transparent" />
- <item android:state_selected="true" android:drawable="@android:color/transparent" />
- <item android:state_pressed="true" android:state_selected="false" android:drawable="@android:color/background_dark" />
- <item android:state_selected="false" android:drawable="@android:color/background_dark" />
-</selector>
\ No newline at end of file
-# 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
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <style name="Theme.Default" parent="@android:style/Theme">
-<!--
- <item name="android:layout_width">fill_parent</item>
- <item name="android:layout_height">wrap_content</item>
-
- <item name="android:colorForeground">#FFFFFF</item>
- <item name="android:colorBackground">#000000</item>
-
- <item name="android:textColorPrimary">#FFFFFF</item>
- -->
-
- </style>
-</resources>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <style name="Theme.Light" parent="@android:style/Theme.Light">
-<!--
- <item name="android:layout_width">fill_parent</item>
- <item name="android:layout_height">wrap_content</item>
-
- <item name="android:colorForeground">#000000</item>
- <item name="android:colorBackground">#FFFFFF</item>
-
- <item name="android:textColorPrimary">#000000</item>
-
- -->
-
- </style>
-
- <style name="Theme.Light.Token" parent="@style/Theme.Light">
- <item name="android:textColor">@android:color/primary_text_dark</item>
-</style>
-
-</resources>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <!-- Default: dark theme -->
+
+ <style name="Theme.Default" parent="@android:style/Theme"></style>
+
+ <style name="Theme.Default.TokenRow.Fg" parent="@style/Theme.Light">
+ <item name="android:textColor">#FFFFFF</item>
+ </style>
+
+ <color name="theme_default_token_row_fg">#FFFFFF</color>
+ <color name="theme_default_token_row_main_bg">#0000FF</color>
+ <color name="theme_default_token_row_other_bg">#888888</color>
+ <color name="theme_default_other_lang_bg">#222222</color>
+
+
+ <!-- ****************************************************************** -->
+
+ <style name="Theme.Light" parent="@android:style/Theme.Light"></style>
+
+ <style name="Theme.Light.TokenRow.Fg" parent="@style/Theme.Light">
+ <item name="android:textColor">#FFFFFF</item>
+ </style>
+
+ <color name="theme_light_token_row_fg">#FFFFFF</color>
+ <color name="theme_light_token_row_main_bg">#0000FF</color>
+ <color name="theme_light_token_row_other_bg">#888888</color>
+ <color name="theme_light_other_lang_bg">#DDDDDD</color>
+
+
+</resources>
\ No newline at end of file
/** Called when the activity is first created. */\r
@Override\r
public void onCreate(final Bundle savedInstanceState) {\r
- ((DictionaryApplication)getApplication()).applyTheme(this);\r
+ //TODO((DictionaryApplication)getApplication()).applyTheme(this);\r
\r
super.onCreate(savedInstanceState);\r
setContentView(R.layout.about_activity);\r
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;
+ }
}
\r
static final String LOG = "QuickDic";\r
\r
- static final int VIBRATE_MILLIS = 100;\r
-\r
int dictIndex = 0;\r
RandomAccessFile dictRaf = null;\r
Dictionary dictionary = null;\r
});\r
private SearchOperation currentSearchOperation = null;\r
\r
+ C.Theme theme = C.Theme.LIGHT;\r
int fontSizeSp;\r
EditText searchText;\r
Button langButton;\r
@Override\r
public void onCreate(Bundle savedInstanceState) {\r
Log.d(LOG, "onCreate:" + this);\r
- ((DictionaryApplication)getApplication()).applyTheme(this);\r
+ theme = ((DictionaryApplication)getApplication()).getSelectedTheme();\r
super.onCreate(savedInstanceState);\r
\r
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\r
QuickDicConfig quickDicConfig = PersistentObjectCache.init(\r
this).read(C.DICTIONARY_CONFIGS, QuickDicConfig.class);\r
dictIndex = prefs.getInt(C.DICT_INDEX, 0) ;\r
- final DictionaryInfo dictionaryConfig = quickDicConfig.dictionaryConfigs.get(dictIndex);\r
+ final DictionaryInfo dictionaryConfig = quickDicConfig.dictionaryInfos.get(dictIndex);\r
this.setTitle("QuickDic: " + dictionaryConfig.name);\r
dictRaf = new RandomAccessFile(dictionaryConfig.localFile, "r");\r
dictionary = new Dictionary(dictRaf); \r
for (int r = 0; r < rowCount; ++r) {\r
final TableRow tableRow = new TableRow(result.getContext());\r
\r
- TextView column1 = new TextView(tableRow.getContext());\r
- TextView column2 = new TextView(tableRow.getContext());\r
+ final EditText column1 = new EditText(tableRow.getContext());\r
+ final EditText column2 = new EditText(tableRow.getContext());\r
final TableRow.LayoutParams layoutParams = new TableRow.LayoutParams();\r
layoutParams.weight = 0.5f;\r
\r
\r
column1.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSizeSp);\r
column2.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSizeSp);\r
+ column2.setBackgroundResource(theme.otherLangBg);\r
+ \r
+ column2.setOnLongClickListener(new EditText.OnLongClickListener() {\r
+ @Override\r
+ public boolean onLongClick(View v) {\r
+ final int start = column2.getSelectionStart();\r
+ final int end = column2.getSelectionStart();\r
+ Log.i(LOG, "Long click on: " + column2.getText().toString().substring(start, end));\r
+ return false;\r
+ }\r
+ });\r
\r
result.addView(tableRow);\r
}\r
final Context context = parent.getContext();\r
final TextView textView = new TextView(context);\r
textView.setText(row.getToken());\r
- textView.setBackgroundResource(R.drawable.token_row_drawable);\r
+ textView.setBackgroundResource(row.hasMainEntry ? theme.tokenRowMainBg : theme.tokenRowOtherBg);\r
// Doesn't work:\r
//textView.setTextColor(android.R.color.secondary_text_light);\r
- textView.setTextAppearance(context, R.style.Theme_Light_Token);\r
+ textView.setTextAppearance(context, theme.tokenRowFg);\r
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 5 * fontSizeSp / 4);\r
return textView;\r
}\r
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
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;
}
}
}
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;
/** 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);
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.
// 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]);
- }
-
-
+
}
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);
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) {
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;
}
deleteMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
- quickDicConfig.dictionaryConfigs.remove(adapterContextMenuInfo.position);
+ quickDicConfig.dictionaryInfos.remove(adapterContextMenuInfo.position);
dictionaryConfigsChanged();
return true;
}
@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
/** Called when the activity is first created. */\r
@Override\r
public void onCreate(final Bundle savedInstanceState) {\r
- ((DictionaryApplication)getApplication()).applyTheme(this);\r
+ //((DictionaryApplication)getApplication()).applyTheme(this);\r
\r
super.onCreate(savedInstanceState);\r
final Intent intent = getIntent();\r
\r
@Override\r
public void onCreate(Bundle savedInstanceState) {\r
- ((DictionaryApplication)getApplication()).applyTheme(this);\r
+ //((DictionaryApplication)getApplication()).applyTheme(this);\r
\r
super.onCreate(savedInstanceState);\r
addPreferencesFromResource(R.xml.preferences);\r
}\r
\r
+ @Override\r
+ public void onContentChanged() {\r
+ super.onContentChanged();\r
+ }\r
+ \r
+ \r
+\r
}\r
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;
public final class QuickDicConfig implements Serializable {
private static final long serialVersionUID = 6711617368780900979L;
+
+ final List<DictionaryInfo> dictionaryInfos = new ArrayList<DictionaryInfo>();
- // Just increment this to have them all update...
- static final int LATEST_VERSION = 6;
-
- final List<DictionaryInfo> dictionaryConfigs = new ArrayList<DictionaryInfo>();
- 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<String,DictionaryInfo> defaultDictionaries = null;
+ public synchronized static Map<String,DictionaryInfo> 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<String, DictionaryInfo>();
+
+ 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<String, DictionaryInfo>();
}
+
+ 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);
}
}
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);
@Override
public void print(final PrintStream out) {
- out.println("===" + getToken() + "===");
+ final String surrounder = hasMainEntry ? "***" : "===";
+ out.println(surrounder + getToken() + surrounder);
}
@Override