Check the availability of layouts for showing the input languages in the settings
Bug: 4316889 Change-Id: I746b3ff79c2a6cd4925fca1817d5b209623b5108main
parent
6d645e13e4
commit
15a0ba6d74
|
@ -33,7 +33,7 @@
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity android:name="InputLanguageSelection"
|
<activity android:name="com.android.inputmethod.deprecated.languageswitcher.InputLanguageSelection"
|
||||||
android:label="@string/language_selection_title">
|
android:label="@string/language_selection_title">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
|
|
@ -91,6 +91,8 @@
|
||||||
<attr name="verticalGap" format="dimension|fraction" />
|
<attr name="verticalGap" format="dimension|fraction" />
|
||||||
<!-- Popup keyboard layout template -->
|
<!-- Popup keyboard layout template -->
|
||||||
<attr name="popupKeyboardTemplate" format="reference" />
|
<attr name="popupKeyboardTemplate" format="reference" />
|
||||||
|
<!-- Locale of the keyboard layout -->
|
||||||
|
<attr name="keyboardLocale" format="string" />
|
||||||
</declare-styleable>
|
</declare-styleable>
|
||||||
|
|
||||||
<declare-styleable name="Keyboard_Key">
|
<declare-styleable name="Keyboard_Key">
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="ar"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_ar_rows" />
|
latin:keyboardLayout="@xml/kbd_ar_rows" />
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="cs"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
|
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="da"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
|
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="de"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
|
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="fi"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
|
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="fr_CA"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_qwerty_rows" />
|
latin:keyboardLayout="@xml/kbd_qwerty_rows" />
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="fr_CH"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
|
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="fr"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_azerty_rows" />
|
latin:keyboardLayout="@xml/kbd_azerty_rows" />
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="hu"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
|
latin:keyboardLayout="@xml/kbd_qwertz_rows" />
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="iw"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_iw_rows" />
|
latin:keyboardLayout="@xml/kbd_iw_rows" />
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="nb"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
|
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="ru"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_ru_rows" />
|
latin:keyboardLayout="@xml/kbd_ru_rows" />
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="sr"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_sr_rows" />
|
latin:keyboardLayout="@xml/kbd_sr_rows" />
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="sv"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
|
latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2010, The Android Open Source Project
|
|
||||||
**
|
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<Keyboard
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
|
|
||||||
latin:keyboardHeight="@dimen/keyboardHeight"
|
|
||||||
latin:maxKeyboardHeight="50%p"
|
|
||||||
latin:rowHeight="25%p"
|
|
||||||
latin:horizontalGap="@dimen/key_horizontal_gap"
|
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
|
||||||
>
|
|
||||||
<include
|
|
||||||
latin:keyboardLayout="@xml/kbd_qwerty_rows" />
|
|
||||||
</Keyboard>
|
|
|
@ -28,6 +28,7 @@
|
||||||
latin:verticalGap="@dimen/key_bottom_gap"
|
latin:verticalGap="@dimen/key_bottom_gap"
|
||||||
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
|
||||||
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
|
||||||
|
latin:keyboardLocale="en"
|
||||||
>
|
>
|
||||||
<include
|
<include
|
||||||
latin:keyboardLayout="@xml/kbd_qwerty_rows" />
|
latin:keyboardLayout="@xml/kbd_qwerty_rows" />
|
||||||
|
|
|
@ -64,6 +64,13 @@
|
||||||
android:key="subtype_settings"
|
android:key="subtype_settings"
|
||||||
android:title="@string/language_selection_title"
|
android:title="@string/language_selection_title"
|
||||||
android:summary="@string/language_selection_summary" />
|
android:summary="@string/language_selection_summary" />
|
||||||
|
<PreferenceScreen
|
||||||
|
android:key="language_selection"
|
||||||
|
android:title="@string/language_selection_title"
|
||||||
|
android:summary="@string/language_selection_summary">
|
||||||
|
<intent
|
||||||
|
android:action="com.android.inputmethod.latin.INPUT_LANGUAGE_SELECTION"/>
|
||||||
|
</PreferenceScreen>
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/prediction_category"
|
android:title="@string/prediction_category"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2008-2009 Google Inc.
|
* Copyright (C) 2008-2009 Google Inc.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
* use this file except in compliance with the License. You may obtain a copy of
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
* the License at
|
* the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
@ -14,7 +14,18 @@
|
||||||
* the License.
|
* the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.inputmethod.latin;
|
package com.android.inputmethod.deprecated.languageswitcher;
|
||||||
|
|
||||||
|
import com.android.inputmethod.keyboard.KeyboardParser;
|
||||||
|
import com.android.inputmethod.latin.BinaryDictionary;
|
||||||
|
import com.android.inputmethod.latin.R;
|
||||||
|
import com.android.inputmethod.latin.Settings;
|
||||||
|
import com.android.inputmethod.latin.SharedPreferencesCompat;
|
||||||
|
import com.android.inputmethod.latin.SubtypeSwitcher;
|
||||||
|
import com.android.inputmethod.latin.Suggest;
|
||||||
|
import com.android.inputmethod.latin.Utils;
|
||||||
|
|
||||||
|
import org.xmlpull.v1.XmlPullParserException;
|
||||||
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.SharedPreferences.Editor;
|
import android.content.SharedPreferences.Editor;
|
||||||
|
@ -27,6 +38,7 @@ import android.preference.PreferenceGroup;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.text.Collator;
|
import java.text.Collator;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -37,9 +49,6 @@ public class InputLanguageSelection extends PreferenceActivity {
|
||||||
private SharedPreferences mPrefs;
|
private SharedPreferences mPrefs;
|
||||||
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", "zz"
|
|
||||||
};
|
|
||||||
|
|
||||||
private static class Loc implements Comparable<Object> {
|
private static class Loc implements Comparable<Object> {
|
||||||
private static Collator sCollator = Collator.getInstance();
|
private static Collator sCollator = Collator.getInstance();
|
||||||
|
@ -78,8 +87,11 @@ public class InputLanguageSelection extends PreferenceActivity {
|
||||||
mAvailableLanguages = getUniqueLocales();
|
mAvailableLanguages = getUniqueLocales();
|
||||||
PreferenceGroup parent = getPreferenceScreen();
|
PreferenceGroup parent = getPreferenceScreen();
|
||||||
for (int i = 0; i < mAvailableLanguages.size(); i++) {
|
for (int i = 0; i < mAvailableLanguages.size(); i++) {
|
||||||
CheckBoxPreference pref = new CheckBoxPreference(this);
|
|
||||||
Locale locale = mAvailableLanguages.get(i).mLocale;
|
Locale locale = mAvailableLanguages.get(i).mLocale;
|
||||||
|
if (!hasDictionary(locale) && !hasLayout(locale)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
CheckBoxPreference pref = new CheckBoxPreference(this);
|
||||||
pref.setTitle(SubtypeSwitcher.getFullDisplayName(locale, true));
|
pref.setTitle(SubtypeSwitcher.getFullDisplayName(locale, true));
|
||||||
boolean checked = isLocaleIn(locale, languageList);
|
boolean checked = isLocaleIn(locale, languageList);
|
||||||
pref.setChecked(checked);
|
pref.setChecked(checked);
|
||||||
|
@ -120,6 +132,32 @@ public class InputLanguageSelection extends PreferenceActivity {
|
||||||
return haveDictionary;
|
return haveDictionary;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean hasLayout(Locale locale) {
|
||||||
|
if (locale == null) return false;
|
||||||
|
final Resources res = getResources();
|
||||||
|
final Configuration conf = res.getConfiguration();
|
||||||
|
final Locale saveLocale = conf.locale;
|
||||||
|
conf.locale = locale;
|
||||||
|
res.updateConfiguration(conf, res.getDisplayMetrics());
|
||||||
|
|
||||||
|
try {
|
||||||
|
final String countryCode = locale.getLanguage();
|
||||||
|
final String layoutCountryCode = KeyboardParser.parseKeyboardLocale(
|
||||||
|
this, R.xml.kbd_qwerty);
|
||||||
|
if (!TextUtils.isEmpty(countryCode) && !TextUtils.isEmpty(layoutCountryCode)) {
|
||||||
|
return countryCode.subSequence(0, 2).equals(layoutCountryCode.substring(0, 2));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
} catch (XmlPullParserException e) {
|
||||||
|
return false;
|
||||||
|
} catch (IOException e) {
|
||||||
|
return false;
|
||||||
|
} finally {
|
||||||
|
conf.locale = saveLocale;
|
||||||
|
res.updateConfiguration(conf, res.getDisplayMetrics());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private String get5Code(Locale locale) {
|
private String get5Code(Locale locale) {
|
||||||
String country = locale.getCountry();
|
String country = locale.getCountry();
|
||||||
return locale.getLanguage()
|
return locale.getLanguage()
|
||||||
|
@ -173,7 +211,7 @@ public class InputLanguageSelection extends PreferenceActivity {
|
||||||
Locale l = new Locale(language, country);
|
Locale l = new Locale(language, country);
|
||||||
|
|
||||||
// Exclude languages that are not relevant to LatinIME
|
// Exclude languages that are not relevant to LatinIME
|
||||||
if (arrayContains(BLACKLIST_LANGUAGES, language) || TextUtils.isEmpty(language)) {
|
if (TextUtils.isEmpty(language)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -207,11 +245,4 @@ public class InputLanguageSelection extends PreferenceActivity {
|
||||||
}
|
}
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -22,6 +22,7 @@ import com.android.inputmethod.latin.R;
|
||||||
import org.xmlpull.v1.XmlPullParser;
|
import org.xmlpull.v1.XmlPullParser;
|
||||||
import org.xmlpull.v1.XmlPullParserException;
|
import org.xmlpull.v1.XmlPullParserException;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
import android.content.res.XmlResourceParser;
|
import android.content.res.XmlResourceParser;
|
||||||
|
@ -163,6 +164,27 @@ public class KeyboardParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String parseKeyboardLocale(
|
||||||
|
Context context, int resId) throws XmlPullParserException, IOException {
|
||||||
|
final Resources res = context.getResources();
|
||||||
|
final XmlResourceParser parser = res.getXml(resId);
|
||||||
|
if (parser == null) return "";
|
||||||
|
int event;
|
||||||
|
while ((event = parser.next()) != XmlPullParser.END_DOCUMENT) {
|
||||||
|
if (event == XmlPullParser.START_TAG) {
|
||||||
|
final String tag = parser.getName();
|
||||||
|
if (TAG_KEYBOARD.equals(tag)) {
|
||||||
|
final TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
|
||||||
|
R.styleable.Keyboard);
|
||||||
|
return keyboardAttr.getString(R.styleable.Keyboard_keyboardLocale);
|
||||||
|
} else {
|
||||||
|
throw new IllegalStartTag(parser, TAG_KEYBOARD);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
private void parseKeyboardAttributes(XmlResourceParser parser) {
|
private void parseKeyboardAttributes(XmlResourceParser parser) {
|
||||||
final Keyboard keyboard = mKeyboard;
|
final Keyboard keyboard = mKeyboard;
|
||||||
final TypedArray keyboardAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser),
|
final TypedArray keyboardAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser),
|
||||||
|
|
|
@ -18,6 +18,7 @@ package com.android.inputmethod.latin;
|
||||||
|
|
||||||
import com.android.inputmethod.compat.CompatUtils;
|
import com.android.inputmethod.compat.CompatUtils;
|
||||||
import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
|
import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
|
||||||
|
import com.android.inputmethod.compat.InputMethodServiceCompatWrapper;
|
||||||
import com.android.inputmethod.deprecated.VoiceProxy;
|
import com.android.inputmethod.deprecated.VoiceProxy;
|
||||||
import com.android.inputmethod.compat.VibratorCompatWrapper;
|
import com.android.inputmethod.compat.VibratorCompatWrapper;
|
||||||
|
|
||||||
|
@ -67,6 +68,7 @@ public class Settings extends PreferenceActivity
|
||||||
public static final String PREF_AUTO_CORRECTION_THRESHOLD = "auto_correction_threshold";
|
public static final String PREF_AUTO_CORRECTION_THRESHOLD = "auto_correction_threshold";
|
||||||
public static final String PREF_BIGRAM_SUGGESTIONS = "bigram_suggestion";
|
public static final String PREF_BIGRAM_SUGGESTIONS = "bigram_suggestion";
|
||||||
public static final String PREF_DEBUG_SETTINGS = "debug_settings";
|
public static final String PREF_DEBUG_SETTINGS = "debug_settings";
|
||||||
|
public static final String PREF_LANGUAGE_SELECTION = "language_selection";
|
||||||
|
|
||||||
public static final String PREF_USABILITY_STUDY_MODE = "usability_study_mode";
|
public static final String PREF_USABILITY_STUDY_MODE = "usability_study_mode";
|
||||||
|
|
||||||
|
@ -183,6 +185,10 @@ public class Settings extends PreferenceActivity
|
||||||
if (!showUsabilityModeStudyOption) {
|
if (!showUsabilityModeStudyOption) {
|
||||||
getPreferenceScreen().removePreference(findPreference(PREF_USABILITY_STUDY_MODE));
|
getPreferenceScreen().removePreference(findPreference(PREF_USABILITY_STUDY_MODE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (InputMethodServiceCompatWrapper.CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) {
|
||||||
|
generalSettings.removePreference(findPreference(PREF_LANGUAGE_SELECTION));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class Suggest implements Dictionary.WordCallback {
|
||||||
public static final String DICT_KEY_USER_BIGRAM = "user_bigram";
|
public static final String DICT_KEY_USER_BIGRAM = "user_bigram";
|
||||||
public static final String DICT_KEY_WHITELIST ="whitelist";
|
public static final String DICT_KEY_WHITELIST ="whitelist";
|
||||||
|
|
||||||
static final int LARGE_DICTIONARY_THRESHOLD = 200 * 1000;
|
public static final int LARGE_DICTIONARY_THRESHOLD = 200 * 1000;
|
||||||
|
|
||||||
private static final boolean DBG = LatinImeLogger.sDBG;
|
private static final boolean DBG = LatinImeLogger.sDBG;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue