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