public final class InputMethodSubtype extends Object implements Parcelable
It should be defined in an XML resource file of the input method with the
<subtype>
element, which resides within an <input-method>
element.
For more information, see the guide to
Creating an Input Method.
InputMethodInfo
Modifier and Type | Class and Description |
---|---|
static class |
InputMethodSubtype.InputMethodSubtypeBuilder
InputMethodSubtypeBuilder is a builder class of InputMethodSubtype.
|
Parcelable.ClassLoaderCreator<T>, Parcelable.Creator<T>
Modifier and Type | Field and Description |
---|---|
static Parcelable.Creator<InputMethodSubtype> |
CREATOR |
CONTENTS_FILE_DESCRIPTOR, PARCELABLE_ELIDE_DUPLICATES, PARCELABLE_WRITE_RETURN_VALUE
Constructor and Description |
---|
InputMethodSubtype(int nameId,
int iconId,
String locale,
String mode,
String extraValue,
boolean isAuxiliary,
boolean overridesImplicitlyEnabledSubtype)
Deprecated.
use
InputMethodSubtype.InputMethodSubtypeBuilder instead.
Arguments for this constructor have the same meanings as
InputMethodSubtype(int, int, String, String, String, boolean,
boolean, int) except "id". |
InputMethodSubtype(int nameId,
int iconId,
String locale,
String mode,
String extraValue,
boolean isAuxiliary,
boolean overridesImplicitlyEnabledSubtype,
int id)
Deprecated.
use
InputMethodSubtype.InputMethodSubtypeBuilder instead.
"isAsciiCapable" is "false" in this constructor. |
Modifier and Type | Method and Description |
---|---|
boolean |
containsExtraValueKey(String key)
The string of ExtraValue in subtype should be defined as follows:
example: key0,key1=value1,key2,key3,key4=value4
|
int |
describeContents()
Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation.
|
boolean |
equals(Object o)
Indicates whether some other object is "equal to" this one.
|
CharSequence |
getDisplayName(Context context,
String packageName,
ApplicationInfo appInfo)
Returns a display name for this subtype.
|
String |
getExtraValue() |
String |
getExtraValueOf(String key)
The string of ExtraValue in subtype should be defined as follows:
example: key0,key1=value1,key2,key3,key4=value4
|
int |
getIconResId() |
String |
getLanguageTag() |
String |
getLocale()
Deprecated.
Use
getLanguageTag() instead. |
Locale |
getLocaleObject() |
String |
getMode() |
int |
getNameResId() |
int |
getSubtypeId() |
int |
hashCode()
Returns a hash code value for the object.
|
boolean |
hasSubtypeId() |
boolean |
isAsciiCapable() |
boolean |
isAuxiliary() |
boolean |
overridesImplicitlyEnabledSubtype() |
static List<InputMethodSubtype> |
sort(Context context,
int flags,
InputMethodInfo imi,
List<InputMethodSubtype> subtypeList)
Sort the list of InputMethodSubtype
|
void |
writeToParcel(Parcel dest,
int parcelableFlags)
Flatten this object in to a Parcel.
|
public static final Parcelable.Creator<InputMethodSubtype> CREATOR
public InputMethodSubtype(int nameId, int iconId, String locale, String mode, String extraValue, boolean isAuxiliary, boolean overridesImplicitlyEnabledSubtype)
InputMethodSubtype.InputMethodSubtypeBuilder
instead.
Arguments for this constructor have the same meanings as
InputMethodSubtype(int, int, String, String, String, boolean,
boolean, int)
except "id".public InputMethodSubtype(int nameId, int iconId, String locale, String mode, String extraValue, boolean isAuxiliary, boolean overridesImplicitlyEnabledSubtype, int id)
InputMethodSubtype.InputMethodSubtypeBuilder
instead.
"isAsciiCapable" is "false" in this constructor.nameId
- Resource ID of the subtype name string. The string resource may have exactly
one %s in it. If there is, the %s part will be replaced with the locale's display name by
the formatter. Please refer to getDisplayName(android.content.Context, java.lang.String, android.content.pm.ApplicationInfo)
for details.iconId
- Resource ID of the subtype icon drawable.locale
- The locale supported by the subtypemode
- The mode supported by the subtypeextraValue
- The extra value of the subtype. This string is free-form, but the API
supplies tools to deal with a key-value comma-separated list; see
containsExtraValueKey(java.lang.String)
and getExtraValueOf(java.lang.String)
.isAuxiliary
- true when this subtype is auxiliary, false otherwise. An auxiliary
subtype will not be shown in the list of enabled IMEs for choosing the current IME in
the Settings even when this subtype is enabled. Please note that this subtype will still
be shown in the list of IMEs in the IME switcher to allow the user to tentatively switch
to this subtype while an IME is shown. The framework will never switch the current IME to
this subtype by InputMethodManager.switchToLastInputMethod(android.os.IBinder)
.
The intent of having this flag is to allow for IMEs that are invoked in a one-shot way as
auxiliary input mode, and return to the previous IME once it is finished (e.g. voice input).overridesImplicitlyEnabledSubtype
- true when this subtype should be enabled by default
if no other subtypes in the IME are enabled explicitly. Note that a subtype with this
parameter being true will not be shown in the list of subtypes in each IME's subtype enabler.
Having an "automatic" subtype is an example use of this flag.id
- The unique ID for the subtype. The input method framework keeps track of enabled
subtypes by ID. When the IME package gets upgraded, enabled IDs will stay enabled even if
other attributes are different. If the ID is unspecified or 0,
Arrays.hashCode(new Object[] {locale, mode, extraValue,
isAuxiliary, overridesImplicitlyEnabledSubtype, isAsciiCapable}) will be used instead.public int getNameResId()
public int getIconResId()
@Deprecated public String getLocale()
getLanguageTag()
instead.public String getLanguageTag()
Locale.forLanguageTag(String)
public Locale getLocaleObject()
Locale
constructed from getLanguageTag()
. If the Language Tag is not
specified, then try to construct from getLocale()
TODO: Consider to make this a public API, or move this to support lib.
public String getMode()
public String getExtraValue()
public boolean isAuxiliary()
InputMethodManager.switchToLastInputMethod(android.os.IBinder)
.
The intent of having this flag is to allow for IMEs that are invoked in a one-shot way as
auxiliary input mode, and return to the previous IME once it is finished (e.g. voice input).public boolean overridesImplicitlyEnabledSubtype()
public boolean isAsciiCapable()
public CharSequence getDisplayName(Context context, String packageName, ApplicationInfo appInfo)
If subtypeNameResId
is specified (!= 0) text generated from that resource will
be returned. The localized string resource of the label should be capitalized for inclusion
in UI lists. The string resource may contain at most one %s
. If present, the
%s
will be replaced with the display name of the subtype locale in the user's locale.
If subtypeNameResId
is not specified (== 0) the framework returns the display name
of the subtype locale, as capitalized for use in UI lists, in the user's locale.
context
- Context
will be used for getting Locale
and
PackageManager
.packageName
- The package name of the input method.appInfo
- The ApplicationInfo
of the input method.public boolean containsExtraValueKey(String key)
key
- The key of extra valuepublic String getExtraValueOf(String key)
key
- The key of extra valuepublic int hashCode()
Object
HashMap
.
The general contract of hashCode
is:
hashCode
method
must consistently return the same integer, provided no information
used in equals
comparisons on the object is modified.
This integer need not remain consistent from one execution of an
application to another execution of the same application.
equals(Object)
method, then calling the hashCode
method on each of
the two objects must produce the same integer result.
Object.equals(java.lang.Object)
method, then calling the hashCode
method on each of the
two objects must produce distinct integer results. However, the
programmer should be aware that producing distinct integer results
for unequal objects may improve the performance of hash tables.
As much as is reasonably practical, the hashCode method defined by
class Object
does return distinct integers for distinct
objects. (This is typically implemented by converting the internal
address of the object into an integer, but this implementation
technique is not required by the
JavaTM programming language.)
hashCode
in class Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public final boolean hasSubtypeId()
true
if a valid subtype ID exists.public final int getSubtypeId()
0
means that not subtype ID is specified.public boolean equals(Object o)
Object
The equals
method implements an equivalence relation
on non-null object references:
x
, x.equals(x)
should return
true
.
x
and y
, x.equals(y)
should return true
if and only if
y.equals(x)
returns true
.
x
, y
, and z
, if
x.equals(y)
returns true
and
y.equals(z)
returns true
, then
x.equals(z)
should return true
.
x
and y
, multiple invocations of
x.equals(y)
consistently return true
or consistently return false
, provided no
information used in equals
comparisons on the
objects is modified.
x
,
x.equals(null)
should return false
.
The equals
method for class Object
implements
the most discriminating possible equivalence relation on objects;
that is, for any non-null reference values x
and
y
, this method returns true
if and only
if x
and y
refer to the same object
(x == y
has the value true
).
Note that it is generally necessary to override the hashCode
method whenever this method is overridden, so as to maintain the
general contract for the hashCode
method, which states
that equal objects must have equal hash codes.
equals
in class Object
o
- the reference object with which to compare.true
if this object is the same as the obj
argument; false
otherwise.Object.hashCode()
,
HashMap
public int describeContents()
Parcelable
Parcelable.writeToParcel(Parcel, int)
,
the return value of this method must include the
Parcelable.CONTENTS_FILE_DESCRIPTOR
bit.describeContents
in interface Parcelable
Parcelable.CONTENTS_FILE_DESCRIPTOR
public void writeToParcel(Parcel dest, int parcelableFlags)
Parcelable
writeToParcel
in interface Parcelable
dest
- The Parcel in which the object should be written.parcelableFlags
- Additional flags about how the object should be written.
May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE
.public static List<InputMethodSubtype> sort(Context context, int flags, InputMethodInfo imi, List<InputMethodSubtype> subtypeList)
context
- Context will be used for getting localized strings from IMEflags
- Flags for the sort orderimi
- InputMethodInfo of which subtypes are subject to be sortedsubtypeList
- List of InputMethodSubtype which will be sorted