mirror of
https://gitlab.futo.org/keyboard/latinime.git
synced 2024-09-28 14:54:30 +01:00
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.
This commit is contained in:
parent
c3413faf92
commit
1e5374e98b
@ -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()
|
||||
|
@ -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());
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user