aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/InputLanguageSelection.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/latin/InputLanguageSelection.java')
-rw-r--r--java/src/com/android/inputmethod/latin/InputLanguageSelection.java26
1 files changed, 25 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/latin/InputLanguageSelection.java b/java/src/com/android/inputmethod/latin/InputLanguageSelection.java
index b1ddb2175..b5a11010b 100644
--- a/java/src/com/android/inputmethod/latin/InputLanguageSelection.java
+++ b/java/src/com/android/inputmethod/latin/InputLanguageSelection.java
@@ -23,6 +23,8 @@ import java.util.Locale;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
+import android.content.res.Configuration;
+import android.content.res.Resources;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.PreferenceActivity;
@@ -35,7 +37,7 @@ public class InputLanguageSelection extends PreferenceActivity {
private String mSelectedLanguages;
private ArrayList<Loc> mAvailableLanguages = new ArrayList<Loc>();
private static final String[] BLACKLIST_LANGUAGES = {
- "ko", "ja", "zh"
+ "ko", "ja", "zh", "el"
};
private static class Loc implements Comparable {
@@ -75,6 +77,9 @@ public class InputLanguageSelection extends PreferenceActivity {
pref.setTitle(LanguageSwitcher.toTitleCase(locale.getDisplayName(locale)));
boolean checked = isLocaleIn(locale, languageList);
pref.setChecked(checked);
+ if (hasDictionary(locale)) {
+ pref.setSummary(R.string.has_dictionary);
+ }
parent.addPreference(pref);
}
}
@@ -92,6 +97,25 @@ public class InputLanguageSelection extends PreferenceActivity {
return false;
}
+ private boolean hasDictionary(Locale locale) {
+ Resources res = getResources();
+ Configuration conf = res.getConfiguration();
+ Locale saveLocale = conf.locale;
+ boolean haveDictionary = false;
+ conf.locale = locale;
+ res.updateConfiguration(conf, res.getDisplayMetrics());
+ BinaryDictionary bd = new BinaryDictionary(this, R.raw.main);
+ // Is the dictionary larger than a placeholder? Arbitrarily chose a lower limit of
+ // 4000-5000 words, whereas the LARGE_DICTIONARY is about 20000+ words.
+ if (bd.getSize() > Suggest.LARGE_DICTIONARY_THRESHOLD / 4) {
+ haveDictionary = true;
+ }
+ bd.close();
+ conf.locale = saveLocale;
+ res.updateConfiguration(conf, res.getDisplayMetrics());
+ return haveDictionary;
+ }
+
private String get5Code(Locale locale) {
String country = locale.getCountry();
return locale.getLanguage()