Fields Summary |
---|
static final String | TAG |
final android.content.pm.ResolveInfo | mServiceThe Service that implements this input method component. |
final String | mIdThe unique string Id to identify the input method. This is generated
from the input method component. |
final String | mSettingsActivityNameThe input method setting activity's name, used by the system settings to
launch the setting activity of this input method. |
final int | mIsDefaultResIdThe resource in the input method's .apk that holds a boolean indicating
whether it should be considered the default input method for this
system. This is a resource ID instead of the final value so that it
can change based on the configuration (in particular locale). |
public static final Parcelable.Creator | CREATORUsed to make this class parcelable. |
Constructors Summary |
---|
public InputMethodInfo(android.content.Context context, android.content.pm.ResolveInfo service)Constructor.
mService = service;
ServiceInfo si = service.serviceInfo;
mId = new ComponentName(si.packageName, si.name).flattenToShortString();
PackageManager pm = context.getPackageManager();
String settingsActivityComponent = null;
int isDefaultResId = 0;
XmlResourceParser parser = null;
try {
parser = si.loadXmlMetaData(pm, InputMethod.SERVICE_META_DATA);
if (parser == null) {
throw new XmlPullParserException("No "
+ InputMethod.SERVICE_META_DATA + " meta-data");
}
AttributeSet attrs = Xml.asAttributeSet(parser);
int type;
while ((type=parser.next()) != XmlPullParser.END_DOCUMENT
&& type != XmlPullParser.START_TAG) {
}
String nodeName = parser.getName();
if (!"input-method".equals(nodeName)) {
throw new XmlPullParserException(
"Meta-data does not start with input-method tag");
}
TypedArray sa = context.getResources().obtainAttributes(attrs,
com.android.internal.R.styleable.InputMethod);
settingsActivityComponent = sa.getString(
com.android.internal.R.styleable.InputMethod_settingsActivity);
isDefaultResId = sa.getResourceId(
com.android.internal.R.styleable.InputMethod_isDefault, 0);
sa.recycle();
} finally {
if (parser != null) parser.close();
}
mSettingsActivityName = settingsActivityComponent;
mIsDefaultResId = isDefaultResId;
|
InputMethodInfo(android.os.Parcel source)
mId = source.readString();
mSettingsActivityName = source.readString();
mIsDefaultResId = source.readInt();
mService = ResolveInfo.CREATOR.createFromParcel(source);
|
public InputMethodInfo(String packageName, String className, CharSequence label, String settingsActivity)Temporary API for creating a built-in input method.
ResolveInfo ri = new ResolveInfo();
ServiceInfo si = new ServiceInfo();
ApplicationInfo ai = new ApplicationInfo();
ai.packageName = packageName;
ai.enabled = true;
si.applicationInfo = ai;
si.enabled = true;
si.packageName = packageName;
si.name = className;
si.exported = true;
si.nonLocalizedLabel = label;
ri.serviceInfo = si;
mService = ri;
mId = new ComponentName(si.packageName, si.name).flattenToShortString();
mSettingsActivityName = settingsActivity;
mIsDefaultResId = 0;
|
Methods Summary |
---|
public int | describeContents()
return 0;
|
public void | dump(android.util.Printer pw, java.lang.String prefix)
pw.println(prefix + "mId=" + mId
+ " mSettingsActivityName=" + mSettingsActivityName);
pw.println(prefix + "mIsDefaultResId=0x"
+ Integer.toHexString(mIsDefaultResId));
pw.println(prefix + "Service:");
mService.dump(pw, prefix + " ");
|
public boolean | equals(java.lang.Object o)Used to test whether the given parameter object is an
{@link InputMethodInfo} and its Id is the same to this one.
if (o == this) return true;
if (o == null) return false;
if (!(o instanceof InputMethodInfo)) return false;
InputMethodInfo obj = (InputMethodInfo) o;
return mId.equals(obj.mId);
|
public android.content.ComponentName | getComponent()Return the component of the service that implements this input
method.
return new ComponentName(mService.serviceInfo.packageName,
mService.serviceInfo.name);
|
public java.lang.String | getId()Return a unique ID for this input method. The ID is generated from
the package and class name implementing the method.
return mId;
|
public int | getIsDefaultResourceId()Return the resource identifier of a resource inside of this input
method's .apk that determines whether it should be considered a
default input method for the system.
return mIsDefaultResId;
|
public java.lang.String | getPackageName()Return the .apk package that implements this input method.
return mService.serviceInfo.packageName;
|
public android.content.pm.ServiceInfo | getServiceInfo()Return the raw information about the Service implementing this
input method. Do not modify the returned object.
return mService.serviceInfo;
|
public java.lang.String | getServiceName()Return the class name of the service component that implements
this input method.
return mService.serviceInfo.name;
|
public java.lang.String | getSettingsActivity()Return the class name of an activity that provides a settings UI for
the input method. You can launch this activity be starting it with
an {@link android.content.Intent} whose action is MAIN and with an
explicit {@link android.content.ComponentName}
composed of {@link #getPackageName} and the class name returned here.
A null will be returned if there is no settings activity associated
with the input method.
return mSettingsActivityName;
|
public android.graphics.drawable.Drawable | loadIcon(android.content.pm.PackageManager pm)Load the user-displayed icon for this input method.
return mService.loadIcon(pm);
|
public java.lang.CharSequence | loadLabel(android.content.pm.PackageManager pm)Load the user-displayed label for this input method.
return mService.loadLabel(pm);
|
public java.lang.String | toString()
return "InputMethodMetaInfo{" + mId
+ ", settings: "
+ mSettingsActivityName + "}";
|
public void | writeToParcel(android.os.Parcel dest, int flags)Used to package this object into a {@link Parcel}.
dest.writeString(mId);
dest.writeString(mSettingsActivityName);
dest.writeInt(mIsDefaultResId);
mService.writeToParcel(dest, flags);
|