Loading api/current.xml +22 −0 Original line number Diff line number Diff line Loading @@ -179475,6 +179475,28 @@ visibility="public" > </field> <field name="TYPE_NUMBER_VARIATION_NORMAL" type="int" transient="false" volatile="false" value="0" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="TYPE_NUMBER_VARIATION_PASSWORD" type="int" transient="false" volatile="false" value="16" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="TYPE_TEXT_FLAG_AUTO_COMPLETE" type="int" transient="false" core/java/android/text/InputType.java +27 −1 Original line number Diff line number Diff line Loading @@ -257,7 +257,10 @@ public interface InputType { /** * Class for numeric text. This class supports the following flag: * {@link #TYPE_NUMBER_FLAG_SIGNED} and * {@link #TYPE_NUMBER_FLAG_DECIMAL}. * {@link #TYPE_NUMBER_FLAG_DECIMAL}. It also supports the following * variations: {@link #TYPE_NUMBER_VARIATION_NORMAL} and * {@link #TYPE_NUMBER_VARIATION_PASSWORD}. If you do not recognize * the variation, normal should be assumed. */ public static final int TYPE_CLASS_NUMBER = 0x00000002; Loading @@ -273,6 +276,29 @@ public interface InputType { */ public static final int TYPE_NUMBER_FLAG_DECIMAL = 0x00002000; // ---------------------------------------------------------------------- /** * Default variation of {@link #TYPE_CLASS_NUMBER}: plain normal * numeric text. This was added in * {@link android.os.Build.VERSION_CODES#HONEYCOMB}. An IME must target * this API version or later to see this input type; if it doesn't, a request * for this type will be dropped when passed through * {@link android.view.inputmethod.EditorInfo#makeCompatible(int) * EditorInfo.makeCompatible(int)}. */ public static final int TYPE_NUMBER_VARIATION_NORMAL = 0x00000000; /** * Variation of {@link #TYPE_CLASS_NUMBER}: entering a numeric password. * This was added in {@link android.os.Build.VERSION_CODES#HONEYCOMB}. An * IME must target this API version or later to see this input type; if it * doesn't, a request for this type will be dropped when passed * through {@link android.view.inputmethod.EditorInfo#makeCompatible(int) * EditorInfo.makeCompatible(int)}. */ public static final int TYPE_NUMBER_VARIATION_PASSWORD = 0x00000010; // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- Loading core/java/android/view/inputmethod/EditorInfo.java +10 −3 Original line number Diff line number Diff line Loading @@ -275,7 +275,9 @@ public class EditorInfo implements InputType, Parcelable { * that was developed against the given target API version. This can * impact the following input types: * {@link InputType#TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS}, * {@link InputType#TYPE_TEXT_VARIATION_WEB_PASSWORD}. * {@link InputType#TYPE_TEXT_VARIATION_WEB_PASSWORD}, * {@link InputType#TYPE_NUMBER_VARIATION_NORMAL}, * {@link InputType#TYPE_NUMBER_VARIATION_PASSWORD}. * * <p>This is called by the framework for input method implementations; * you should not generally need to call it yourself. Loading @@ -288,11 +290,16 @@ public class EditorInfo implements InputType, Parcelable { switch (inputType&(TYPE_MASK_CLASS|TYPE_MASK_VARIATION)) { case TYPE_CLASS_TEXT|TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS: inputType = TYPE_CLASS_TEXT|TYPE_TEXT_VARIATION_EMAIL_ADDRESS | (inputType&(~TYPE_MASK_FLAGS)); | (inputType&TYPE_MASK_FLAGS); break; case TYPE_CLASS_TEXT|TYPE_TEXT_VARIATION_WEB_PASSWORD: inputType = TYPE_CLASS_TEXT|TYPE_TEXT_VARIATION_PASSWORD | (inputType&(~TYPE_MASK_FLAGS)); | (inputType&TYPE_MASK_FLAGS); break; case TYPE_CLASS_NUMBER|TYPE_NUMBER_VARIATION_NORMAL: case TYPE_CLASS_NUMBER|TYPE_NUMBER_VARIATION_PASSWORD: inputType = TYPE_CLASS_NUMBER | (inputType&TYPE_MASK_FLAGS); break; } } Loading core/java/android/widget/TextView.java +12 −5 Original line number Diff line number Diff line Loading @@ -783,6 +783,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_PASSWORD); final boolean webPasswordInputType = variation == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_WEB_PASSWORD); final boolean numberPasswordInputType = variation == (EditorInfo.TYPE_CLASS_NUMBER | EditorInfo.TYPE_NUMBER_VARIATION_PASSWORD); if (inputMethod != null) { Class<?> c; Loading Loading @@ -900,6 +902,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mInputType = (mInputType & ~(EditorInfo.TYPE_MASK_VARIATION)) | EditorInfo.TYPE_TEXT_VARIATION_WEB_PASSWORD; } } else if ((mInputType & EditorInfo.TYPE_MASK_CLASS) == EditorInfo.TYPE_CLASS_NUMBER) { if (numberPasswordInputType) { mInputType = (mInputType & ~(EditorInfo.TYPE_MASK_VARIATION)) | EditorInfo.TYPE_NUMBER_VARIATION_PASSWORD; } } if (selectallonfocus) { Loading Loading @@ -946,7 +953,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } setRawTextSize(textSize); if (password || passwordInputType || webPasswordInputType) { if (password || passwordInputType || webPasswordInputType || numberPasswordInputType) { setTransformationMethod(PasswordTransformationMethod.getInstance()); typefaceIndex = MONOSPACE; } else if ((mInputType & (EditorInfo.TYPE_MASK_CLASS | EditorInfo.TYPE_MASK_VARIATION)) Loading Loading @@ -3096,7 +3103,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return variation == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_PASSWORD) || variation == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_WEB_PASSWORD); == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_WEB_PASSWORD) || variation == (EditorInfo.TYPE_CLASS_NUMBER | EditorInfo.TYPE_NUMBER_VARIATION_PASSWORD); } private boolean isVisiblePasswordInputType(int inputType) { Loading Loading @@ -7637,9 +7646,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener int variation = mInputType & InputType.TYPE_MASK_VARIATION; // Text selection is not permitted in password fields if (variation == InputType.TYPE_TEXT_VARIATION_PASSWORD || variation == InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD || variation == InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD) { if (isPasswordInputType(mInputType) || isVisiblePasswordInputType(mInputType)) { return -1; } Loading core/res/res/values/attrs.xml +6 −1 Original line number Diff line number Diff line Loading @@ -850,7 +850,8 @@ {@link android.text.InputType#TYPE_TEXT_VARIATION_WEB_PASSWORD}. --> <flag name="textWebPassword" value="0x000000e1" /> <!-- A numeric only field. Corresponds to {@link android.text.InputType#TYPE_CLASS_NUMBER}. --> {@link android.text.InputType#TYPE_CLASS_NUMBER} | {@link android.text.InputType#TYPE_NUMBER_VARIATION_NORMAL}. --> <flag name="number" value="0x00000002" /> <!-- Can be combined with <var>number</var> and its other options to allow a signed number. Corresponds to Loading @@ -862,6 +863,10 @@ {@link android.text.InputType#TYPE_CLASS_NUMBER} | {@link android.text.InputType#TYPE_NUMBER_FLAG_DECIMAL}. --> <flag name="numberDecimal" value="0x00002002" /> <!-- A numeric password field. Corresponds to {@link android.text.InputType#TYPE_CLASS_NUMBER} | {@link android.text.InputType#TYPE_NUMBER_VARIATION_PASSWORD}. --> <flag name="numberPassword" value="0x00000012" /> <!-- For entering a phone number. Corresponds to {@link android.text.InputType#TYPE_CLASS_PHONE}. --> <flag name="phone" value="0x00000003" /> Loading Loading
api/current.xml +22 −0 Original line number Diff line number Diff line Loading @@ -179475,6 +179475,28 @@ visibility="public" > </field> <field name="TYPE_NUMBER_VARIATION_NORMAL" type="int" transient="false" volatile="false" value="0" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="TYPE_NUMBER_VARIATION_PASSWORD" type="int" transient="false" volatile="false" value="16" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="TYPE_TEXT_FLAG_AUTO_COMPLETE" type="int" transient="false"
core/java/android/text/InputType.java +27 −1 Original line number Diff line number Diff line Loading @@ -257,7 +257,10 @@ public interface InputType { /** * Class for numeric text. This class supports the following flag: * {@link #TYPE_NUMBER_FLAG_SIGNED} and * {@link #TYPE_NUMBER_FLAG_DECIMAL}. * {@link #TYPE_NUMBER_FLAG_DECIMAL}. It also supports the following * variations: {@link #TYPE_NUMBER_VARIATION_NORMAL} and * {@link #TYPE_NUMBER_VARIATION_PASSWORD}. If you do not recognize * the variation, normal should be assumed. */ public static final int TYPE_CLASS_NUMBER = 0x00000002; Loading @@ -273,6 +276,29 @@ public interface InputType { */ public static final int TYPE_NUMBER_FLAG_DECIMAL = 0x00002000; // ---------------------------------------------------------------------- /** * Default variation of {@link #TYPE_CLASS_NUMBER}: plain normal * numeric text. This was added in * {@link android.os.Build.VERSION_CODES#HONEYCOMB}. An IME must target * this API version or later to see this input type; if it doesn't, a request * for this type will be dropped when passed through * {@link android.view.inputmethod.EditorInfo#makeCompatible(int) * EditorInfo.makeCompatible(int)}. */ public static final int TYPE_NUMBER_VARIATION_NORMAL = 0x00000000; /** * Variation of {@link #TYPE_CLASS_NUMBER}: entering a numeric password. * This was added in {@link android.os.Build.VERSION_CODES#HONEYCOMB}. An * IME must target this API version or later to see this input type; if it * doesn't, a request for this type will be dropped when passed * through {@link android.view.inputmethod.EditorInfo#makeCompatible(int) * EditorInfo.makeCompatible(int)}. */ public static final int TYPE_NUMBER_VARIATION_PASSWORD = 0x00000010; // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- Loading
core/java/android/view/inputmethod/EditorInfo.java +10 −3 Original line number Diff line number Diff line Loading @@ -275,7 +275,9 @@ public class EditorInfo implements InputType, Parcelable { * that was developed against the given target API version. This can * impact the following input types: * {@link InputType#TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS}, * {@link InputType#TYPE_TEXT_VARIATION_WEB_PASSWORD}. * {@link InputType#TYPE_TEXT_VARIATION_WEB_PASSWORD}, * {@link InputType#TYPE_NUMBER_VARIATION_NORMAL}, * {@link InputType#TYPE_NUMBER_VARIATION_PASSWORD}. * * <p>This is called by the framework for input method implementations; * you should not generally need to call it yourself. Loading @@ -288,11 +290,16 @@ public class EditorInfo implements InputType, Parcelable { switch (inputType&(TYPE_MASK_CLASS|TYPE_MASK_VARIATION)) { case TYPE_CLASS_TEXT|TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS: inputType = TYPE_CLASS_TEXT|TYPE_TEXT_VARIATION_EMAIL_ADDRESS | (inputType&(~TYPE_MASK_FLAGS)); | (inputType&TYPE_MASK_FLAGS); break; case TYPE_CLASS_TEXT|TYPE_TEXT_VARIATION_WEB_PASSWORD: inputType = TYPE_CLASS_TEXT|TYPE_TEXT_VARIATION_PASSWORD | (inputType&(~TYPE_MASK_FLAGS)); | (inputType&TYPE_MASK_FLAGS); break; case TYPE_CLASS_NUMBER|TYPE_NUMBER_VARIATION_NORMAL: case TYPE_CLASS_NUMBER|TYPE_NUMBER_VARIATION_PASSWORD: inputType = TYPE_CLASS_NUMBER | (inputType&TYPE_MASK_FLAGS); break; } } Loading
core/java/android/widget/TextView.java +12 −5 Original line number Diff line number Diff line Loading @@ -783,6 +783,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_PASSWORD); final boolean webPasswordInputType = variation == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_WEB_PASSWORD); final boolean numberPasswordInputType = variation == (EditorInfo.TYPE_CLASS_NUMBER | EditorInfo.TYPE_NUMBER_VARIATION_PASSWORD); if (inputMethod != null) { Class<?> c; Loading Loading @@ -900,6 +902,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mInputType = (mInputType & ~(EditorInfo.TYPE_MASK_VARIATION)) | EditorInfo.TYPE_TEXT_VARIATION_WEB_PASSWORD; } } else if ((mInputType & EditorInfo.TYPE_MASK_CLASS) == EditorInfo.TYPE_CLASS_NUMBER) { if (numberPasswordInputType) { mInputType = (mInputType & ~(EditorInfo.TYPE_MASK_VARIATION)) | EditorInfo.TYPE_NUMBER_VARIATION_PASSWORD; } } if (selectallonfocus) { Loading Loading @@ -946,7 +953,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } setRawTextSize(textSize); if (password || passwordInputType || webPasswordInputType) { if (password || passwordInputType || webPasswordInputType || numberPasswordInputType) { setTransformationMethod(PasswordTransformationMethod.getInstance()); typefaceIndex = MONOSPACE; } else if ((mInputType & (EditorInfo.TYPE_MASK_CLASS | EditorInfo.TYPE_MASK_VARIATION)) Loading Loading @@ -3096,7 +3103,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return variation == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_PASSWORD) || variation == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_WEB_PASSWORD); == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_WEB_PASSWORD) || variation == (EditorInfo.TYPE_CLASS_NUMBER | EditorInfo.TYPE_NUMBER_VARIATION_PASSWORD); } private boolean isVisiblePasswordInputType(int inputType) { Loading Loading @@ -7637,9 +7646,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener int variation = mInputType & InputType.TYPE_MASK_VARIATION; // Text selection is not permitted in password fields if (variation == InputType.TYPE_TEXT_VARIATION_PASSWORD || variation == InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD || variation == InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD) { if (isPasswordInputType(mInputType) || isVisiblePasswordInputType(mInputType)) { return -1; } Loading
core/res/res/values/attrs.xml +6 −1 Original line number Diff line number Diff line Loading @@ -850,7 +850,8 @@ {@link android.text.InputType#TYPE_TEXT_VARIATION_WEB_PASSWORD}. --> <flag name="textWebPassword" value="0x000000e1" /> <!-- A numeric only field. Corresponds to {@link android.text.InputType#TYPE_CLASS_NUMBER}. --> {@link android.text.InputType#TYPE_CLASS_NUMBER} | {@link android.text.InputType#TYPE_NUMBER_VARIATION_NORMAL}. --> <flag name="number" value="0x00000002" /> <!-- Can be combined with <var>number</var> and its other options to allow a signed number. Corresponds to Loading @@ -862,6 +863,10 @@ {@link android.text.InputType#TYPE_CLASS_NUMBER} | {@link android.text.InputType#TYPE_NUMBER_FLAG_DECIMAL}. --> <flag name="numberDecimal" value="0x00002002" /> <!-- A numeric password field. Corresponds to {@link android.text.InputType#TYPE_CLASS_NUMBER} | {@link android.text.InputType#TYPE_NUMBER_VARIATION_PASSWORD}. --> <flag name="numberPassword" value="0x00000012" /> <!-- For entering a phone number. Corresponds to {@link android.text.InputType#TYPE_CLASS_PHONE}. --> <flag name="phone" value="0x00000003" /> Loading