Loading java/src/com/android/inputmethod/latin/InputLanguageSelection.java +42 −33 Original line number Original line Diff line number Diff line Loading @@ -36,10 +36,20 @@ public class InputLanguageSelection extends PreferenceActivity { private String mSelectedLanguages; private String mSelectedLanguages; private ArrayList<Loc> mAvailableLanguages = new ArrayList<Loc>(); private ArrayList<Loc> mAvailableLanguages = new ArrayList<Loc>(); private static final String[] BLACKLIST_LANGUAGES = { "ko", "ja", "zh", "el" private static final String[] WHITELIST_LANGUAGES = { "cs", "da", "de", "en_GB", "en_US", "es", "es_US", "fr", "it", "nb", "nl", "pl", "pt", "ru" }; }; private static boolean isWhitelisted(String lang) { for (String s : WHITELIST_LANGUAGES) { if (s.equalsIgnoreCase(lang)) { return true; } } return false; } private static class Loc implements Comparable<Object> { private static class Loc implements Comparable<Object> { static Collator sCollator = Collator.getInstance(); static Collator sCollator = Collator.getInstance(); Loading Loading @@ -157,13 +167,20 @@ public class InputLanguageSelection extends PreferenceActivity { for (int i = 0 ; i < origSize; i++ ) { for (int i = 0 ; i < origSize; i++ ) { String s = locales[i]; String s = locales[i]; int len = s.length(); int len = s.length(); final Locale l; final String language; if (len == 5) { if (len == 5) { String language = s.substring(0, 2); language = s.substring(0, 2); String country = s.substring(3, 5); String country = s.substring(3, 5); Locale l = new Locale(language, country); l = new Locale(language, country); } else if (len == 2) { language = s; l = new Locale(language); } else { continue; } // Exclude languages that are not relevant to LatinIME // Exclude languages that are not relevant to LatinIME if (arrayContains(BLACKLIST_LANGUAGES, language)) continue; if (!isWhitelisted(s)) continue; if (finalSize == 0) { if (finalSize == 0) { preprocess[finalSize++] = preprocess[finalSize++] = Loading @@ -189,17 +206,9 @@ public class InputLanguageSelection extends PreferenceActivity { } } } } } } } for (int i = 0; i < finalSize ; i++) { for (int i = 0; i < finalSize ; i++) { uniqueLocales.add(preprocess[i]); uniqueLocales.add(preprocess[i]); } } return uniqueLocales; return uniqueLocales; } } private boolean arrayContains(String[] array, String value) { for (int i = 0; i < array.length; i++) { if (array[i].equalsIgnoreCase(value)) return true; } return false; } } } Loading
java/src/com/android/inputmethod/latin/InputLanguageSelection.java +42 −33 Original line number Original line Diff line number Diff line Loading @@ -36,10 +36,20 @@ public class InputLanguageSelection extends PreferenceActivity { private String mSelectedLanguages; private String mSelectedLanguages; private ArrayList<Loc> mAvailableLanguages = new ArrayList<Loc>(); private ArrayList<Loc> mAvailableLanguages = new ArrayList<Loc>(); private static final String[] BLACKLIST_LANGUAGES = { "ko", "ja", "zh", "el" private static final String[] WHITELIST_LANGUAGES = { "cs", "da", "de", "en_GB", "en_US", "es", "es_US", "fr", "it", "nb", "nl", "pl", "pt", "ru" }; }; private static boolean isWhitelisted(String lang) { for (String s : WHITELIST_LANGUAGES) { if (s.equalsIgnoreCase(lang)) { return true; } } return false; } private static class Loc implements Comparable<Object> { private static class Loc implements Comparable<Object> { static Collator sCollator = Collator.getInstance(); static Collator sCollator = Collator.getInstance(); Loading Loading @@ -157,13 +167,20 @@ public class InputLanguageSelection extends PreferenceActivity { for (int i = 0 ; i < origSize; i++ ) { for (int i = 0 ; i < origSize; i++ ) { String s = locales[i]; String s = locales[i]; int len = s.length(); int len = s.length(); final Locale l; final String language; if (len == 5) { if (len == 5) { String language = s.substring(0, 2); language = s.substring(0, 2); String country = s.substring(3, 5); String country = s.substring(3, 5); Locale l = new Locale(language, country); l = new Locale(language, country); } else if (len == 2) { language = s; l = new Locale(language); } else { continue; } // Exclude languages that are not relevant to LatinIME // Exclude languages that are not relevant to LatinIME if (arrayContains(BLACKLIST_LANGUAGES, language)) continue; if (!isWhitelisted(s)) continue; if (finalSize == 0) { if (finalSize == 0) { preprocess[finalSize++] = preprocess[finalSize++] = Loading @@ -189,17 +206,9 @@ public class InputLanguageSelection extends PreferenceActivity { } } } } } } } for (int i = 0; i < finalSize ; i++) { for (int i = 0; i < finalSize ; i++) { uniqueLocales.add(preprocess[i]); uniqueLocales.add(preprocess[i]); } } return uniqueLocales; return uniqueLocales; } } private boolean arrayContains(String[] array, String value) { for (int i = 0; i < array.length; i++) { if (array[i].equalsIgnoreCase(value)) return true; } return false; } } }