aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
diff options
context:
space:
mode:
authorsatok <satok@google.com>2011-04-18 16:06:31 +0900
committersatok <satok@google.com>2011-04-18 19:32:40 +0900
commitbc3dba451a7af85eab600968fbafda3040b7ced4 (patch)
tree1fed69c3631949fb7c041e8b328cc367d60ef99c /java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
parent458807e8a3f948ccbb6a2183053e0d2eda0b3f63 (diff)
downloadlatinime-bc3dba451a7af85eab600968fbafda3040b7ced4.tar.gz
latinime-bc3dba451a7af85eab600968fbafda3040b7ced4.tar.xz
latinime-bc3dba451a7af85eab600968fbafda3040b7ced4.zip
A fix for handling dummy voice subtypes
Change-Id: I75d4d1625e0925d01ae84c9577e15087d83e4191
Diffstat (limited to 'java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java')
-rw-r--r--java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
index 2b7e25591..0c2a58ea9 100644
--- a/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
+++ b/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
@@ -67,7 +67,6 @@ public class InputMethodManagerCompatWrapper {
// For the compatibility, IMM will create dummy subtypes if subtypes are not found.
// This is required to be false if the current behavior is broken. For now, it's ok to be true.
- private static final boolean ALLOW_DUMMY_SUBTYPE = true;
private static final boolean HAS_VOICE_FUNCTION = true;
private static final String VOICE_MODE = "voice";
private static final String KEYBOARD_MODE = "keyboard";
@@ -119,11 +118,13 @@ public class InputMethodManagerCompatWrapper {
Object retval = CompatUtils.invoke(mImm, null, METHOD_getEnabledInputMethodSubtypeList,
(imi != null ? imi.getInputMethodInfo() : null), allowsImplicitlySelectedSubtypes);
if (retval == null || !(retval instanceof List) || ((List<?>)retval).isEmpty()) {
- if (!ALLOW_DUMMY_SUBTYPE) {
+ if (InputMethodServiceCompatWrapper.
+ CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) {
// Returns an empty list
return Collections.emptyList();
}
// Creates dummy subtypes
+ @SuppressWarnings("unused")
List<InputMethodSubtypeCompatWrapper> subtypeList =
new ArrayList<InputMethodSubtypeCompatWrapper>();
InputMethodSubtypeCompatWrapper keyboardSubtype = getLastResortSubtype(KEYBOARD_MODE);
@@ -159,11 +160,13 @@ public class InputMethodManagerCompatWrapper {
getShortcutInputMethodsAndSubtypes() {
Object retval = CompatUtils.invoke(mImm, null, METHOD_getShortcutInputMethodsAndSubtypes);
if (retval == null || !(retval instanceof Map) || ((Map<?, ?>)retval).isEmpty()) {
- if (!ALLOW_DUMMY_SUBTYPE) {
+ if (InputMethodServiceCompatWrapper.
+ CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) {
// Returns an empty map
return Collections.emptyMap();
}
// Creates dummy subtypes
+ @SuppressWarnings("unused")
InputMethodInfoCompatWrapper imi = getLatinImeInputMethodInfo();
InputMethodSubtypeCompatWrapper voiceSubtype = getLastResortSubtype(VOICE_MODE);
if (imi != null && voiceSubtype != null) {
@@ -196,8 +199,10 @@ public class InputMethodManagerCompatWrapper {
public void setInputMethodAndSubtype(
IBinder token, String id, InputMethodSubtypeCompatWrapper subtype) {
- CompatUtils.invoke(mImm, null, METHOD_setInputMethodAndSubtype,
- token, id, subtype.getOriginalObject());
+ if (subtype != null && subtype.hasOriginalObject()) {
+ CompatUtils.invoke(mImm, null, METHOD_setInputMethodAndSubtype,
+ token, id, subtype.getOriginalObject());
+ }
}
public boolean switchToLastInputMethod(IBinder token) {