From 1e5374e98b2707aecd774f495350a74be55ec5dc Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Wed, 17 Mar 2010 15:36:23 -0700 Subject: [PATCH] Remove popup for extension keyboard in landscape. bug: 2519903 Also add a summary text in the input language list for languages with a dictionary so that users don't feel cheated when they pick a language that doesn't happen to have a dictionary. Remove greek as it isn't an extension of the QWERTY keyboard. --- .../latin/InputLanguageSelection.java | 26 ++++++++++++++++++- .../inputmethod/latin/LatinKeyboardView.java | 5 ++++ .../android/inputmethod/latin/Suggest.java | 2 +- 3 files changed, 31 insertions(+), 2 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 mAvailableLanguages = new ArrayList(); 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() diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java index 2686a93c6..7ce1e4e65 100644 --- a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java @@ -19,6 +19,7 @@ package com.android.inputmethod.latin; import java.util.List; import android.content.Context; +import android.content.res.Configuration; import android.graphics.Canvas; import android.graphics.Paint; import android.inputmethodservice.Keyboard; @@ -178,6 +179,10 @@ public class LatinKeyboardView extends KeyboardView { Keyboard keyboard; mExtension.setKeyboard(keyboard = new LatinKeyboard(getContext(), ((LatinKeyboard) getKeyboard()).getExtension())); + if (getContext().getResources().getConfiguration().orientation + == Configuration.ORIENTATION_LANDSCAPE) { + mExtension.setPreviewEnabled(false); + } mExtensionPopup.setContentView(mExtension); mExtensionPopup.setWidth(getWidth()); mExtensionPopup.setHeight(keyboard.getHeight()); diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index 712b9cf37..b44717d0a 100755 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -39,7 +39,7 @@ public class Suggest implements Dictionary.WordCallback { public static final int CORRECTION_BASIC = 1; public static final int CORRECTION_FULL = 2; - private static final int LARGE_DICTIONARY_THRESHOLD = 200 * 1000; + static final int LARGE_DICTIONARY_THRESHOLD = 200 * 1000; private BinaryDictionary mMainDict;