aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/inputmethod/latin/LanguageSwitcher.java7
-rw-r--r--src/com/android/inputmethod/latin/LatinIME.java11
-rw-r--r--src/com/android/inputmethod/voice/FieldContext.java19
3 files changed, 31 insertions, 6 deletions
diff --git a/src/com/android/inputmethod/latin/LanguageSwitcher.java b/src/com/android/inputmethod/latin/LanguageSwitcher.java
index 97173533d..3fa882e44 100644
--- a/src/com/android/inputmethod/latin/LanguageSwitcher.java
+++ b/src/com/android/inputmethod/latin/LanguageSwitcher.java
@@ -108,6 +108,13 @@ public class LanguageSwitcher {
return mSelectedLanguageArray[mCurrentIndex];
}
+
+ /**
+ * Returns the list of enabled language codes.
+ */
+ public String[] getEnabledLanguages() {
+ return mSelectedLanguageArray;
+ }
/**
* Returns the currently selected input locale, or the display locale if no specific
diff --git a/src/com/android/inputmethod/latin/LatinIME.java b/src/com/android/inputmethod/latin/LatinIME.java
index 992456183..ef761a06e 100644
--- a/src/com/android/inputmethod/latin/LatinIME.java
+++ b/src/com/android/inputmethod/latin/LatinIME.java
@@ -1202,7 +1202,10 @@ public class LatinIME extends InputMethodService
setSuggestions(null, false, false, true);
FieldContext context = new FieldContext(
- getCurrentInputConnection(), getCurrentInputEditorInfo());
+ getCurrentInputConnection(),
+ getCurrentInputEditorInfo(),
+ mLanguageSwitcher.getInputLanguage(),
+ mLanguageSwitcher.getEnabledLanguages());
mVoiceInput.startListening(context, swipe);
switchToRecognitionStatusView();
}
@@ -1576,7 +1579,11 @@ public class LatinIME extends InputMethodService
}
private FieldContext makeFieldContext() {
- return new FieldContext(getCurrentInputConnection(), getCurrentInputEditorInfo());
+ return new FieldContext(
+ getCurrentInputConnection(),
+ getCurrentInputEditorInfo(),
+ mLanguageSwitcher.getInputLanguage(),
+ mLanguageSwitcher.getEnabledLanguages());
}
private boolean fieldCanDoVoice(FieldContext fieldContext) {
diff --git a/src/com/android/inputmethod/voice/FieldContext.java b/src/com/android/inputmethod/voice/FieldContext.java
index 0578af732..5fbacfb6c 100644
--- a/src/com/android/inputmethod/voice/FieldContext.java
+++ b/src/com/android/inputmethod/voice/FieldContext.java
@@ -28,6 +28,8 @@ import android.view.inputmethod.InputConnection;
* to the speech recognizer as context information.
*/
public class FieldContext {
+ private static final boolean DBG = false;
+
static final String LABEL = "label";
static final String HINT = "hint";
static final String PACKAGE_NAME = "packageName";
@@ -36,14 +38,18 @@ public class FieldContext {
static final String SINGLE_LINE = "singleLine";
static final String INPUT_TYPE = "inputType";
static final String IME_OPTIONS = "imeOptions";
+ static final String SELECTED_LANGUAGE = "selectedLanguage";
+ static final String ENABLED_LANGUAGES = "enabledLanguages";
Bundle mFieldInfo;
- public FieldContext(InputConnection conn, EditorInfo info) {
- this.mFieldInfo = new Bundle();
+ public FieldContext(InputConnection conn, EditorInfo info,
+ String selectedLanguage, String[] enabledLanguages) {
+ mFieldInfo = new Bundle();
addEditorInfoToBundle(info, mFieldInfo);
addInputConnectionToBundle(conn, mFieldInfo);
- Log.i("FieldContext", "Bundle = " + mFieldInfo.toString());
+ addLanguageInfoToBundle(selectedLanguage, enabledLanguages, mFieldInfo);
+ if (DBG) Log.i("FieldContext", "Bundle = " + mFieldInfo.toString());
}
private static String safeToString(Object o) {
@@ -58,7 +64,6 @@ public class FieldContext {
return;
}
-
bundle.putString(LABEL, safeToString(info.label));
bundle.putString(HINT, safeToString(info.hintText));
bundle.putString(PACKAGE_NAME, safeToString(info.packageName));
@@ -80,6 +85,12 @@ public class FieldContext {
}
bundle.putBoolean(SINGLE_LINE, (et.flags & et.FLAG_SINGLE_LINE) > 0);
}
+
+ private static void addLanguageInfoToBundle(
+ String selectedLanguage, String[] enabledLanguages, Bundle bundle) {
+ bundle.putString(SELECTED_LANGUAGE, selectedLanguage);
+ bundle.putStringArray(ENABLED_LANGUAGES, enabledLanguages);
+ }
public Bundle getBundle() {
return mFieldInfo;