aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMike LeBeau <mlebeau@android.com>2010-02-04 18:31:40 -0800
committerMike LeBeau <mlebeau@android.com>2010-02-04 19:43:44 -0800
commit2e3aa86cf389236c085ab4758239b01e80c3b2dc (patch)
tree3feb234b0314fdb402673248b914e771d75ab8bb /src
parent30a7315878c377a46b8d16231bf34a1ef86c800a (diff)
downloadlatinime-2e3aa86cf389236c085ab4758239b01e80c3b2dc.tar.gz
latinime-2e3aa86cf389236c085ab4758239b01e80c3b2dc.tar.xz
latinime-2e3aa86cf389236c085ab4758239b01e80c3b2dc.zip
Add additional language information to FieldContext used for voice input.
This will allow us to choose the right voice input language for the user on the VoiceSearch side.
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;