aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardSet.java12
-rw-r--r--java/src/com/android/inputmethod/latin/SubtypeLocale.java12
2 files changed, 18 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSet.java b/java/src/com/android/inputmethod/keyboard/KeyboardSet.java
index c17fe8628..f0c773ff4 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSet.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSet.java
@@ -98,6 +98,7 @@ public class KeyboardSet {
int mMode;
EditorInfo mEditorInfo;
boolean mTouchPositionCorrectionEnabled;
+ boolean mDisableShortcutKey;
boolean mVoiceKeyEnabled;
boolean mVoiceKeyOnMain;
boolean mNoSettingsKey;
@@ -200,11 +201,11 @@ public class KeyboardSet {
final Params params = mParams;
final boolean isSymbols = (keyboardSetElementId == KeyboardId.ELEMENT_SYMBOLS
|| keyboardSetElementId == KeyboardId.ELEMENT_SYMBOLS_SHIFTED);
- final boolean hasShortcutKey = params.mVoiceKeyEnabled
- && (isSymbols != params.mVoiceKeyOnMain);
+ final boolean voiceKeyEnabled = params.mVoiceKeyEnabled && !params.mDisableShortcutKey;
+ final boolean hasShortcutKey = voiceKeyEnabled && (isSymbols != params.mVoiceKeyOnMain);
return new KeyboardId(keyboardSetElementId, params.mLocale, params.mOrientation,
params.mWidth, params.mMode, params.mEditorInfo, params.mNoSettingsKey,
- params.mVoiceKeyEnabled, hasShortcutKey, params.mLanguageSwitchKeyEnabled);
+ voiceKeyEnabled, hasShortcutKey, params.mLanguageSwitchKeyEnabled);
}
public static class Builder {
@@ -293,6 +294,11 @@ public class KeyboardSet {
if (event == XmlPullParser.START_TAG) {
final String tag = parser.getName();
if (TAG_KEYBOARD_SET.equals(tag)) {
+ final TypedArray a = mResources.obtainAttributes(
+ Xml.asAttributeSet(parser), R.styleable.KeyboardSet);
+ mParams.mDisableShortcutKey = a.getBoolean(
+ R.styleable.KeyboardSet_disableShortcutKey, false);
+ a.recycle();
parseKeyboardSetContent(parser);
} else {
throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD_SET);
diff --git a/java/src/com/android/inputmethod/latin/SubtypeLocale.java b/java/src/com/android/inputmethod/latin/SubtypeLocale.java
index 917521c40..66c13bd2e 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeLocale.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeLocale.java
@@ -36,10 +36,16 @@ public class SubtypeLocale {
}
public static String getFullDisplayName(Locale locale) {
- String localeCode = locale.toString();
+ final String localeCode = locale.toString();
for (int index = 0; index < sExceptionKeys.length; index++) {
- if (sExceptionKeys[index].equals(localeCode))
- return sExceptionValues[index];
+ if (sExceptionKeys[index].equals(localeCode)) {
+ final String value = sExceptionValues[index];
+ if (value.indexOf("%s") >= 0) {
+ final String languageName = locale.getDisplayLanguage(locale);
+ return String.format(value, languageName);
+ }
+ return value;
+ }
}
return locale.getDisplayName(locale);
}