summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/current.xml6
-rw-r--r--core/java/android/inputmethodservice/InputMethodService.java4
-rw-r--r--core/java/android/view/inputmethod/InputMethodInfo.java4
-rw-r--r--core/java/android/view/inputmethod/InputMethodSubtype.java24
-rw-r--r--services/java/com/android/server/InputMethodManagerService.java24
5 files changed, 31 insertions, 31 deletions
diff --git a/api/current.xml b/api/current.xml
index 263648d..d7382eb 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -219190,8 +219190,8 @@
visibility="public"
>
</method>
-<method name="getModeResId"
- return="int"
+<method name="getMode"
+ return="java.lang.String"
abstract="false"
native="false"
synchronized="false"
@@ -245869,7 +245869,7 @@
deprecated="not deprecated"
visibility="public"
>
-<parameter name="t" type="T">
+<parameter name="arg0" type="T">
</parameter>
</method>
</interface>
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index a1f2b63..8409baa 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -2086,10 +2086,10 @@ public class InputMethodService extends AbstractInputMethodService {
protected void onCurrentInputMethodSubtypeChanged(InputMethodSubtype newSubtype) {
if (DEBUG) {
int nameResId = newSubtype.getNameResId();
- int modeResId = newSubtype.getModeResId();
+ String mode = newSubtype.getMode();
String output = "changeInputMethodSubtype:"
+ (nameResId == 0 ? "<none>" : getString(nameResId)) + ","
- + (modeResId == 0 ? "<none>" : getString(modeResId)) + ","
+ + mode + ","
+ newSubtype.getLocale() + "," + newSubtype.getExtraValue();
Log.v(TAG, "--- " + output);
}
diff --git a/core/java/android/view/inputmethod/InputMethodInfo.java b/core/java/android/view/inputmethod/InputMethodInfo.java
index 54102f6..defd104 100644
--- a/core/java/android/view/inputmethod/InputMethodInfo.java
+++ b/core/java/android/view/inputmethod/InputMethodInfo.java
@@ -142,8 +142,8 @@ public final class InputMethodInfo implements Parcelable {
.InputMethod_Subtype_icon, 0),
a.getString(com.android.internal.R.styleable
.InputMethod_Subtype_imeSubtypeLocale),
- a.getResourceId(com.android.internal.R.styleable
- .InputMethod_Subtype_imeSubtypeMode, 0),
+ a.getString(com.android.internal.R.styleable
+ .InputMethod_Subtype_imeSubtypeMode),
a.getString(com.android.internal.R.styleable
.InputMethod_Subtype_imeSubtypeExtraValue));
mSubtypes.add(subtype);
diff --git a/core/java/android/view/inputmethod/InputMethodSubtype.java b/core/java/android/view/inputmethod/InputMethodSubtype.java
index a1ed044..0925940 100644
--- a/core/java/android/view/inputmethod/InputMethodSubtype.java
+++ b/core/java/android/view/inputmethod/InputMethodSubtype.java
@@ -34,7 +34,7 @@ public final class InputMethodSubtype implements Parcelable {
private final int mSubtypeNameResId;
private final int mSubtypeIconResId;
private final String mSubtypeLocale;
- private final int mSubtypeModeResId;
+ private final String mSubtypeMode;
private final String mSubtypeExtraValue;
private final int mSubtypeHashCode;
@@ -46,24 +46,24 @@ public final class InputMethodSubtype implements Parcelable {
* @param modeId The mode supported by the subtype
* @param extraValue The extra value of the subtype
*/
- InputMethodSubtype(int nameId, int iconId, String locale, int modeId, String extraValue) {
+ InputMethodSubtype(int nameId, int iconId, String locale, String mode, String extraValue) {
mSubtypeNameResId = nameId;
mSubtypeIconResId = iconId;
mSubtypeLocale = locale;
- mSubtypeModeResId = modeId;
+ mSubtypeMode = mode;
mSubtypeExtraValue = extraValue;
mSubtypeHashCode = hashCodeInternal(mSubtypeNameResId, mSubtypeIconResId, mSubtypeLocale,
- mSubtypeModeResId, mSubtypeExtraValue);
+ mSubtypeMode, mSubtypeExtraValue);
}
InputMethodSubtype(Parcel source) {
mSubtypeNameResId = source.readInt();
mSubtypeIconResId = source.readInt();
mSubtypeLocale = source.readString();
- mSubtypeModeResId = source.readInt();
+ mSubtypeMode = source.readString();
mSubtypeExtraValue = source.readString();
mSubtypeHashCode = hashCodeInternal(mSubtypeNameResId, mSubtypeIconResId, mSubtypeLocale,
- mSubtypeModeResId, mSubtypeExtraValue);
+ mSubtypeMode, mSubtypeExtraValue);
}
/**
@@ -90,8 +90,8 @@ public final class InputMethodSubtype implements Parcelable {
/**
* @return the mode of the subtype
*/
- public int getModeResId() {
- return mSubtypeModeResId;
+ public String getMode() {
+ return mSubtypeMode;
}
/**
@@ -111,7 +111,7 @@ public final class InputMethodSubtype implements Parcelable {
if (o instanceof InputMethodSubtype) {
InputMethodSubtype subtype = (InputMethodSubtype) o;
return (subtype.getNameResId() == getNameResId())
- && (subtype.getModeResId() == getModeResId())
+ && (subtype.getMode() == getMode())
&& (subtype.getIconResId() == getIconResId())
&& (subtype.getLocale().equals(getLocale()))
&& (subtype.getExtraValue().equals(getExtraValue()));
@@ -127,7 +127,7 @@ public final class InputMethodSubtype implements Parcelable {
dest.writeInt(mSubtypeNameResId);
dest.writeInt(mSubtypeIconResId);
dest.writeString(mSubtypeLocale);
- dest.writeInt(mSubtypeModeResId);
+ dest.writeString(mSubtypeMode);
dest.writeString(mSubtypeExtraValue);
}
@@ -143,7 +143,7 @@ public final class InputMethodSubtype implements Parcelable {
};
private static int hashCodeInternal(int nameResId, int iconResId, String locale,
- int modeResId, String extraValue) {
- return Arrays.hashCode(new Object[] {nameResId, iconResId, locale, modeResId, extraValue});
+ String mode, String extraValue) {
+ return Arrays.hashCode(new Object[] {nameResId, iconResId, locale, mode, extraValue});
}
} \ No newline at end of file
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java
index 41471d9..d035eb5 100644
--- a/services/java/com/android/server/InputMethodManagerService.java
+++ b/services/java/com/android/server/InputMethodManagerService.java
@@ -1622,15 +1622,12 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
if (enabledSubtypeSet.contains(String.valueOf(subtype.hashCode()))) {
CharSequence title;
int nameResId = subtype.getNameResId();
- int modeResId = subtype.getModeResId();
+ String mode = subtype.getMode();
if (nameResId != 0) {
title = pm.getText(property.getPackageName(), nameResId,
property.getServiceInfo().applicationInfo);
} else {
CharSequence language = subtype.getLocale();
- CharSequence mode = modeResId == 0 ? null
- : pm.getText(property.getPackageName(), modeResId,
- property.getServiceInfo().applicationInfo);
// TODO: Use more friendly Title and UI
title = label + "," + (mode == null ? "" : mode) + ","
+ (language == null ? "" : language);
@@ -1869,14 +1866,17 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
int applicableSubtypeId = DEFAULT_SUBTYPE_ID;
for (int i = 0; i < subtypes.size(); ++i) {
final String subtypeLocale = subtypes.get(i).getLocale();
- if (locale.equals(subtypeLocale)) {
- // Exact match (e.g. system locale is "en_US" and subtype locale is "en_US")
- applicableSubtypeId = i;
- break;
- } else if (!partialMatchFound && subtypeLocale.startsWith(language)) {
- // Partial match (e.g. system locale is "en_US" and subtype locale is "en")
- applicableSubtypeId = i;
- partialMatchFound = true;
+ // An applicable subtype should be a keyboard subtype
+ if (subtypes.get(i).getMode().equalsIgnoreCase("keyboard")) {
+ if (locale.equals(subtypeLocale)) {
+ // Exact match (e.g. system locale is "en_US" and subtype locale is "en_US")
+ applicableSubtypeId = i;
+ break;
+ } else if (!partialMatchFound && subtypeLocale.startsWith(language)) {
+ // Partial match (e.g. system locale is "en_US" and subtype locale is "en")
+ applicableSubtypeId = i;
+ partialMatchFound = true;
+ }
}
}