diff options
| author | 2010-11-04 21:17:48 +0900 | |
|---|---|---|
| committer | 2010-11-05 11:40:56 +0900 | |
| commit | 9ef0283bdcd9534cc09ae37eb2b78771b95247b5 (patch) | |
| tree | 2819ed8e9c104af435d741a1778cf1e5f584e078 | |
| parent | 63cf0279d73937f38def42eeb0ef8278c926e448 (diff) | |
Change API for getting InputMethodSubtype's mode from resource id to String
Change-Id: I00aa99f8ab9901d40806a6bb336ab718eb857e8b
5 files changed, 31 insertions, 31 deletions
diff --git a/api/current.xml b/api/current.xml index 263648d93114..d7382ebe3e20 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 a1f2b633347b..8409baa73952 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 54102f6bd34b..defd104510bb 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 a1ed0445f455..092594034452 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 41471d97f774..d035eb586aad 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; +                }              }          }  |