19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.text;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.text.TextUtils;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Bit definitions for an integer defining the basic content type of text
23d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * held in an {@link Editable} object. Supported classes may be combined
24d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * with variations and flags to indicate desired behaviors.
25d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root *
26d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * <h3>Examples</h3>
27d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root *
28d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * <dl>
29d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * <dt>A password field with with the password visible to the user:
30d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * <dd>inputType = TYPE_CLASS_TEXT |
31d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root *     TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
32d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root *
33d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * <dt>A multi-line postal address with automatic capitalization:
34d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * <dd>inputType = TYPE_CLASS_TEXT |
35d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root *     TYPE_TEXT_VARIATION_POSTAL_ADDRESS |
36d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root *     TYPE_TEXT_FLAG_MULTI_LINE
37d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root *
38d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * <dt>A time field:
39d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * <dd>inputType = TYPE_CLASS_DATETIME |
40d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root *     TYPE_DATETIME_VARIATION_TIME
41d3badad3aa7fd250a0a81549c6c3c15d8aee9f8dKenny Root * </dl>
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface InputType {
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Mask of bits that determine the overall class
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of text being given.  Currently supported classes are:
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_CLASS_TEXT}, {@link #TYPE_CLASS_NUMBER},
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_CLASS_PHONE}, {@link #TYPE_CLASS_DATETIME}.
49c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * <p>IME authors: If the class is not one you
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * understand, assume {@link #TYPE_CLASS_TEXT} with NO variation
51c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * or flags.<p>
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_MASK_CLASS = 0x0000000f;
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Mask of bits that determine the variation of
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the base content class.
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_MASK_VARIATION = 0x00000ff0;
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Mask of bits that provide addition bit flags
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of options.
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_MASK_FLAGS = 0x00fff000;
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Special content type for when no explicit type has been specified.
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This should be interpreted to mean that the target input connection
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is not rich, it can not process and show things like candidate text nor
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * retrieve the current text, so the input method will need to run in a
72c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * limited "generate key events" mode, if it supports it. Note that some
73c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * input methods may not support it, for example a voice-based input
74c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * method will likely not be able to generate key events even if this
75c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * flag is set.
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_NULL = 0x00000000;
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Class for normal text.  This class supports the following flags (only
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * one of which should be set):
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_TEXT_FLAG_CAP_CHARACTERS},
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_TEXT_FLAG_CAP_WORDS}, and.
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_TEXT_FLAG_CAP_SENTENCES}.  It also supports the
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * following variations:
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_TEXT_VARIATION_NORMAL}, and
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_TEXT_VARIATION_URI}.  If you do not recognize the
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * variation, normal should be assumed.
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_CLASS_TEXT = 0x00000001;
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Flag for {@link #TYPE_CLASS_TEXT}: capitalize all characters.  Overrides
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_TEXT_FLAG_CAP_WORDS} and
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_TEXT_FLAG_CAP_SENTENCES}.  This value is explicitly defined
100c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * to be the same as {@link TextUtils#CAP_MODE_CHARACTERS}. Of course,
101c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * this only affects languages where there are upper-case and lower-case letters.
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_FLAG_CAP_CHARACTERS = 0x00001000;
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
106c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * Flag for {@link #TYPE_CLASS_TEXT}: capitalize the first character of
107c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * every word.  Overrides {@link #TYPE_TEXT_FLAG_CAP_SENTENCES}.  This
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * value is explicitly defined
109c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * to be the same as {@link TextUtils#CAP_MODE_WORDS}. Of course,
110c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * this only affects languages where there are upper-case and lower-case letters.
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_FLAG_CAP_WORDS = 0x00002000;
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
115c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * Flag for {@link #TYPE_CLASS_TEXT}: capitalize the first character of
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * each sentence.  This value is explicitly defined
117c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * to be the same as {@link TextUtils#CAP_MODE_SENTENCES}. For example
118c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * in English it means to capitalize after a period and a space (note that other
119c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * languages may have different characters for period, or not use spaces,
120c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * or use different grammatical rules). Of course,
121c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * this only affects languages where there are upper-case and lower-case letters.
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_FLAG_CAP_SENTENCES = 0x00004000;
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Flag for {@link #TYPE_CLASS_TEXT}: the user is entering free-form
127c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * text that should have auto-correction applied to it. Without this flag,
128c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * the IME will not try to correct typos. You should always set this flag
129c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * unless you really expect users to type non-words in this field, for
130c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * example to choose a name for a character in a game.
131218ecd43946001f07b60757db130ef5585d474d3Jean Chalard     * Contrast this with {@link #TYPE_TEXT_FLAG_AUTO_COMPLETE} and
132218ecd43946001f07b60757db130ef5585d474d3Jean Chalard     * {@link #TYPE_TEXT_FLAG_NO_SUGGESTIONS}:
133c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * {@code TYPE_TEXT_FLAG_AUTO_CORRECT} means that the IME will try to
134c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * auto-correct typos as the user is typing, but does not define whether
135c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * the IME offers an interface to show suggestions.
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_FLAG_AUTO_CORRECT = 0x00008000;
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
140c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * Flag for {@link #TYPE_CLASS_TEXT}: the text editor (which means
141c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * the application) is performing auto-completion of the text being entered
142c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * based on its own semantics, which it will present to the user as they type.
143c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * This generally means that the input method should not be showing
144c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * candidates itself, but can expect the editor to supply its own
145c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * completions/candidates from
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.view.inputmethod.InputMethodSession#displayCompletions
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * InputMethodSession.displayCompletions()} as a result of the editor calling
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.view.inputmethod.InputMethodManager#displayCompletions
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * InputMethodManager.displayCompletions()}.
150218ecd43946001f07b60757db130ef5585d474d3Jean Chalard     * Note the contrast with {@link #TYPE_TEXT_FLAG_AUTO_CORRECT} and
151218ecd43946001f07b60757db130ef5585d474d3Jean Chalard     * {@link #TYPE_TEXT_FLAG_NO_SUGGESTIONS}:
152218ecd43946001f07b60757db130ef5585d474d3Jean Chalard     * {@code TYPE_TEXT_FLAG_AUTO_COMPLETE} means the editor should show an
153c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * interface for displaying suggestions, but instead of supplying its own
154c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * it will rely on the Editor to pass completions/corrections.
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_FLAG_AUTO_COMPLETE = 0x00010000;
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Flag for {@link #TYPE_CLASS_TEXT}: multiple lines of text can be
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * entered into the field.  If this flag is not set, the text field
161c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * will be constrained to a single line. The IME may also choose not to
162c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * display an enter key when this flag is not set, as there should be no
163c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * need to create new lines.
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_FLAG_MULTI_LINE = 0x00020000;
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Flag for {@link #TYPE_CLASS_TEXT}: the regular text view associated
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * with this should not be multi-line, but when a fullscreen input method
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is providing text it should use multiple lines if it can.
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_FLAG_IME_MULTI_LINE = 0x00040000;
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17412cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77aAmith Yamasani    /**
17512cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77aAmith Yamasani     * Flag for {@link #TYPE_CLASS_TEXT}: the input method does not need to
17612cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77aAmith Yamasani     * display any dictionary-based candidates. This is useful for text views that
17712cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77aAmith Yamasani     * do not contain words from the language and do not benefit from any
17812cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77aAmith Yamasani     * dictionary-based completions or corrections. It overrides the
17912cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77aAmith Yamasani     * {@link #TYPE_TEXT_FLAG_AUTO_CORRECT} value when set.
180c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * Please avoid using this unless you are certain this is what you want.
181c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * Many input methods need suggestions to work well, for example the ones
182c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * based on gesture typing. Consider clearing
183218ecd43946001f07b60757db130ef5585d474d3Jean Chalard     * {@link #TYPE_TEXT_FLAG_AUTO_CORRECT} instead if you just do not
184c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * want the IME to correct typos.
185218ecd43946001f07b60757db130ef5585d474d3Jean Chalard     * Note the contrast with {@link #TYPE_TEXT_FLAG_AUTO_CORRECT} and
186218ecd43946001f07b60757db130ef5585d474d3Jean Chalard     * {@link #TYPE_TEXT_FLAG_AUTO_COMPLETE}:
187c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * {@code TYPE_TEXT_FLAG_NO_SUGGESTIONS} means the IME should never
188c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * show an interface to display suggestions. Most IMEs will also take this to
189c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * mean they should not try to auto-correct what the user is typing.
19012cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77aAmith Yamasani     */
19112cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77aAmith Yamasani    public static final int TYPE_TEXT_FLAG_NO_SUGGESTIONS = 0x00080000;
19212cc9d82a6f3bd2aebad8ed97a29e2cbad3ec77aAmith Yamasani
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Default variation of {@link #TYPE_CLASS_TEXT}: plain old normal text.
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_NORMAL = 0x00000000;
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering a URI.
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_URI = 0x00000010;
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering an e-mail address.
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_EMAIL_ADDRESS = 0x00000020;
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering the subject line of
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * an e-mail.
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_EMAIL_SUBJECT = 0x00000030;
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering a short, possibly informal
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * message such as an instant message or a text message.
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_SHORT_MESSAGE = 0x00000040;
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering the content of a long, possibly
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * formal message such as the body of an e-mail.
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_LONG_MESSAGE = 0x00000050;
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering the name of a person.
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_PERSON_NAME = 0x00000060;
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering a postal mailing address.
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_POSTAL_ADDRESS = 0x00000070;
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering a password.
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_PASSWORD = 0x00000080;
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2444df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering a password, which should
2454df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project     * be visible to the user.
2464df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project     */
2474df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_VISIBLE_PASSWORD = 0x00000090;
2484df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project
2494df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    /**
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering text inside of a web form.
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2524df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_WEB_EDIT_TEXT = 0x000000a0;
2534df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project
2544df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    /**
2554df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering text to filter contents
2564df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project     * of a list etc.
2574df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project     */
2584df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_FILTER = 0x000000b0;
2594df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project
2604df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    /**
2614df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project     * Variation of {@link #TYPE_CLASS_TEXT}: entering text for phonetic
262c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * pronunciation, such as a phonetic name field in contacts. This is mostly
263c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * useful for languages where one spelling may have several phonetic
264c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * readings, like Japanese.
2654df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project     */
2664df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project    public static final int TYPE_TEXT_VARIATION_PHONETIC = 0x000000c0;
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
268dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn    /**
269dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * Variation of {@link #TYPE_CLASS_TEXT}: entering e-mail address inside
270dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * of a web form.  This was added in
271dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * {@link android.os.Build.VERSION_CODES#HONEYCOMB}.  An IME must target
272dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * this API version or later to see this input type; if it doesn't, a request
273dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * for this type will be seen as {@link #TYPE_TEXT_VARIATION_EMAIL_ADDRESS}
274dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * when passed through {@link android.view.inputmethod.EditorInfo#makeCompatible(int)
275dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * EditorInfo.makeCompatible(int)}.
276dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     */
277dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn    public static final int TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS = 0x000000d0;
278dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn
279dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn    /**
280dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * Variation of {@link #TYPE_CLASS_TEXT}: entering password inside
281dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * of a web form.  This was added in
282dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * {@link android.os.Build.VERSION_CODES#HONEYCOMB}.  An IME must target
283dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * this API version or later to see this input type; if it doesn't, a request
284dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * for this type will be seen as {@link #TYPE_TEXT_VARIATION_PASSWORD}
285dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * when passed through {@link android.view.inputmethod.EditorInfo#makeCompatible(int)
286dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     * EditorInfo.makeCompatible(int)}.
287dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn     */
288dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn    public static final int TYPE_TEXT_VARIATION_WEB_PASSWORD = 0x000000e0;
289dea3ef7967228f0ddcc03f2455a4f1254758e584Dianne Hackborn
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
295c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * Class for numeric text.  This class supports the following flags:
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_NUMBER_FLAG_SIGNED} and
29782d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * {@link #TYPE_NUMBER_FLAG_DECIMAL}.  It also supports the following
29882d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * variations: {@link #TYPE_NUMBER_VARIATION_NORMAL} and
299c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * {@link #TYPE_NUMBER_VARIATION_PASSWORD}.
300c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * <p>IME authors: If you do not recognize
301c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * the variation, normal should be assumed.</p>
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_CLASS_NUMBER = 0x00000002;
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Flag of {@link #TYPE_CLASS_NUMBER}: the number is signed, allowing
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a positive or negative sign at the start.
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_NUMBER_FLAG_SIGNED = 0x00001000;
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Flag of {@link #TYPE_CLASS_NUMBER}: the number is decimal, allowing
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a decimal point to provide fractional values.
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_NUMBER_FLAG_DECIMAL = 0x00002000;
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
31882d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa
31982d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa    /**
32082d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * Default variation of {@link #TYPE_CLASS_NUMBER}: plain normal
32182d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * numeric text.  This was added in
32282d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * {@link android.os.Build.VERSION_CODES#HONEYCOMB}.  An IME must target
32382d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * this API version or later to see this input type; if it doesn't, a request
32482d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * for this type will be dropped when passed through
32582d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * {@link android.view.inputmethod.EditorInfo#makeCompatible(int)
32682d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * EditorInfo.makeCompatible(int)}.
32782d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     */
32882d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa    public static final int TYPE_NUMBER_VARIATION_NORMAL = 0x00000000;
32982d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa
33082d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa    /**
33182d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * Variation of {@link #TYPE_CLASS_NUMBER}: entering a numeric password.
33282d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * This was added in {@link android.os.Build.VERSION_CODES#HONEYCOMB}.  An
33382d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * IME must target this API version or later to see this input type; if it
33482d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * doesn't, a request for this type will be dropped when passed
33582d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * through {@link android.view.inputmethod.EditorInfo#makeCompatible(int)
33682d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     * EditorInfo.makeCompatible(int)}.
33782d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa     */
33882d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa    public static final int TYPE_NUMBER_VARIATION_PASSWORD = 0x00000010;
33982d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa
34082d731ac5d28fb54c49948116786813a62b07b8bKen Wakasa    // ----------------------------------------------------------------------
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Class for a phone number.  This class currently supports no variations
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * or flags.
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_CLASS_PHONE = 0x00000003;
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // ----------------------------------------------------------------------
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Class for dates and times.  It supports the
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * following variations:
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_DATETIME_VARIATION_NORMAL}
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #TYPE_DATETIME_VARIATION_DATE}, and
359c1a11f17a2de18911317d235ff75fa17e098a962Jean Chalard     * {@link #TYPE_DATETIME_VARIATION_TIME}.
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_CLASS_DATETIME = 0x00000004;
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Default variation of {@link #TYPE_CLASS_DATETIME}: allows entering
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * both a date and time.
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_DATETIME_VARIATION_NORMAL = 0x00000000;
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Default variation of {@link #TYPE_CLASS_DATETIME}: allows entering
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * only a date.
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_DATETIME_VARIATION_DATE = 0x00000010;
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Default variation of {@link #TYPE_CLASS_DATETIME}: allows entering
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * only a time.
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TYPE_DATETIME_VARIATION_TIME = 0x00000020;
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
381