From dbfba8560dda9de810c4265b765d49952519e841 Mon Sep 17 00:00:00 2001 From: satok Date: Mon, 5 Sep 2011 19:19:12 +0900 Subject: [PATCH] Add a function to check auxiliary ime. Change-Id: Ibda3d0a11c7dd77aa1304d34fc858bb7d941c626 --- .../view/inputmethod/InputMethodInfo.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/core/java/android/view/inputmethod/InputMethodInfo.java b/core/java/android/view/inputmethod/InputMethodInfo.java index 0119d0397dc46..131f0aecba20f 100644 --- a/core/java/android/view/inputmethod/InputMethodInfo.java +++ b/core/java/android/view/inputmethod/InputMethodInfo.java @@ -77,6 +77,8 @@ public final class InputMethodInfo implements Parcelable { */ private final ArrayList mSubtypes = new ArrayList(); + private boolean mIsAuxIme; + /** * Constructor. * @@ -104,6 +106,7 @@ public final class InputMethodInfo implements Parcelable { mService = service; ServiceInfo si = service.serviceInfo; mId = new ComponentName(si.packageName, si.name).flattenToShortString(); + mIsAuxIme = true; PackageManager pm = context.getPackageManager(); String settingsActivityComponent = null; @@ -167,6 +170,9 @@ public final class InputMethodInfo implements Parcelable { .InputMethod_Subtype_isAuxiliary, false), a.getBoolean(com.android.internal.R.styleable .InputMethod_Subtype_overridesImplicitlyEnabledSubtype, false)); + if (!subtype.isAuxiliary()) { + mIsAuxIme = false; + } mSubtypes.add(subtype); } } @@ -177,6 +183,10 @@ public final class InputMethodInfo implements Parcelable { if (parser != null) parser.close(); } + if (mSubtypes.size() == 0) { + mIsAuxIme = false; + } + if (additionalSubtypesMap != null && additionalSubtypesMap.containsKey(mId)) { final List additionalSubtypes = additionalSubtypesMap.get(mId); final int N = additionalSubtypes.size(); @@ -195,6 +205,7 @@ public final class InputMethodInfo implements Parcelable { mId = source.readString(); mSettingsActivityName = source.readString(); mIsDefaultResId = source.readInt(); + mIsAuxIme = source.readInt() == 1; mService = ResolveInfo.CREATOR.createFromParcel(source); source.readTypedList(mSubtypes, InputMethodSubtype.CREATOR); } @@ -220,6 +231,7 @@ public final class InputMethodInfo implements Parcelable { mId = new ComponentName(si.packageName, si.name).flattenToShortString(); mSettingsActivityName = settingsActivity; mIsDefaultResId = 0; + mIsAuxIme = false; } /** @@ -360,16 +372,25 @@ public final class InputMethodInfo implements Parcelable { return mId.hashCode(); } + /** + * @hide + */ + public boolean isAuxiliaryIme() { + return mIsAuxIme; + } + /** * Used to package this object into a {@link Parcel}. * * @param dest The {@link Parcel} to be written. * @param flags The flags used for parceling. */ + @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(mId); dest.writeString(mSettingsActivityName); dest.writeInt(mIsDefaultResId); + dest.writeInt(mIsAuxIme ? 1 : 0); mService.writeToParcel(dest, flags); dest.writeTypedList(mSubtypes); } @@ -379,15 +400,18 @@ public final class InputMethodInfo implements Parcelable { */ public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override public InputMethodInfo createFromParcel(Parcel source) { return new InputMethodInfo(source); } + @Override public InputMethodInfo[] newArray(int size) { return new InputMethodInfo[size]; } }; + @Override public int describeContents() { return 0; }