mirror of
https://gitlab.futo.org/keyboard/latinime.git
synced 2024-09-28 14:54:30 +01:00
Fix KeyboardCodesSet code mapping
This is a follow up for Icfd6d06f. Change-Id: I9a11c6f1c8d9654e3fb004940791055c2bcf9f17
This commit is contained in:
parent
7f0c503afc
commit
8834e3dbce
@ -777,7 +777,7 @@ public class Keyboard {
|
||||
|
||||
params.mThemeId = keyboardAttr.getInt(R.styleable.Keyboard_themeId, 0);
|
||||
params.mIconsSet.loadIcons(keyboardAttr);
|
||||
params.mCodesSet.setLocale(params.mId.mLocale);
|
||||
params.mCodesSet.setLanguage(params.mId.mLocale.getLanguage());
|
||||
|
||||
final int resourceId = keyboardAttr.getResourceId(
|
||||
R.styleable.Keyboard_touchPositionCorrectionData, 0);
|
||||
|
@ -19,17 +19,16 @@ package com.android.inputmethod.keyboard.internal;
|
||||
import com.android.inputmethod.keyboard.Keyboard;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
|
||||
public class KeyboardCodesSet {
|
||||
private static final HashMap<Locale, int[]> sLocaleToCodesMap =
|
||||
new HashMap<Locale, int[]>();
|
||||
private static final HashMap<String, int[]> sLanguageToCodesMap =
|
||||
new HashMap<String, int[]>();
|
||||
private static final HashMap<String, Integer> sNameToIdMap = new HashMap<String, Integer>();
|
||||
|
||||
private int[] mCodes = DEFAULT;
|
||||
|
||||
public void setLocale(final Locale locale) {
|
||||
final int[] codes = sLocaleToCodesMap.get(locale);
|
||||
public void setLanguage(final String language) {
|
||||
final int[] codes = sLanguageToCodesMap.get(language);
|
||||
mCodes = (codes != null) ? codes : DEFAULT;
|
||||
}
|
||||
|
||||
@ -85,6 +84,7 @@ public class KeyboardCodesSet {
|
||||
Keyboard.CODE_SHORTCUT,
|
||||
Keyboard.CODE_ACTION_ENTER,
|
||||
Keyboard.CODE_ACTION_NEXT,
|
||||
Keyboard.CODE_ACTION_PREVIOUS,
|
||||
Keyboard.CODE_LANGUAGE_SWITCH,
|
||||
Keyboard.CODE_UNSPECIFIED,
|
||||
CODE_LEFT_PARENTHESIS,
|
||||
@ -111,6 +111,7 @@ public class KeyboardCodesSet {
|
||||
DEFAULT[10],
|
||||
DEFAULT[11],
|
||||
DEFAULT[12],
|
||||
DEFAULT[13],
|
||||
CODE_RIGHT_PARENTHESIS,
|
||||
CODE_LEFT_PARENTHESIS,
|
||||
CODE_GREATER_THAN_SIGN,
|
||||
@ -121,12 +122,12 @@ public class KeyboardCodesSet {
|
||||
CODE_LEFT_CURLY_BRACKET,
|
||||
};
|
||||
|
||||
private static final String LANGUAGE_DEFAULT = null;
|
||||
private static final String LANGUAGE_DEFAULT = "DEFAULT";
|
||||
private static final String LANGUAGE_ARABIC = "ar";
|
||||
private static final String LANGUAGE_PERSIAN = "fa";
|
||||
private static final String LANGUAGE_HEBREW = "iw";
|
||||
|
||||
private static final Object[] LOCALE_AND_CODES = {
|
||||
private static final Object[] LANGUAGE_AND_CODES = {
|
||||
LANGUAGE_DEFAULT, DEFAULT,
|
||||
LANGUAGE_ARABIC, RTL,
|
||||
LANGUAGE_PERSIAN, RTL,
|
||||
@ -138,12 +139,10 @@ public class KeyboardCodesSet {
|
||||
sNameToIdMap.put(ID_TO_NAME[i], i);
|
||||
}
|
||||
|
||||
for (int i = 0; i < LOCALE_AND_CODES.length; i += 2) {
|
||||
final String localeString = (String)LOCALE_AND_CODES[i];
|
||||
final int[] codes = (int[])LOCALE_AND_CODES[i + 1];
|
||||
final Locale locale = (localeString == LANGUAGE_DEFAULT)
|
||||
? null : new Locale(localeString);
|
||||
sLocaleToCodesMap.put(locale, codes);
|
||||
for (int i = 0; i < LANGUAGE_AND_CODES.length; i += 2) {
|
||||
final String language = (String)LANGUAGE_AND_CODES[i];
|
||||
final int[] codes = (int[])LANGUAGE_AND_CODES[i + 1];
|
||||
sLanguageToCodesMap.put(language, codes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,8 +41,10 @@ public class KeySpecParserTests extends AndroidTestCase {
|
||||
private int mSettingsIconId;
|
||||
|
||||
@Override
|
||||
protected void setUp() {
|
||||
mCodesSet.setLocale(Locale.US);
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
mCodesSet.setLanguage(Locale.ENGLISH.getLanguage());
|
||||
mCodeSettings = mCodesSet.getCode(CODE_SETTINGS_NAME);
|
||||
mSettingsIconId = KeyboardIconsSet.getIconId(ICON_SETTINGS_NAME);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user