| Index: chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java
|
| index c26fc5fdafb4f7e43006dca62c3177d746be0b35..fcafe77e934489be6011e223fb820bf8237ad660 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java
|
| @@ -17,13 +17,14 @@ import android.widget.ArrayAdapter;
|
| import android.widget.AutoCompleteTextView;
|
| import android.widget.TextView.OnEditorActionListener;
|
|
|
| -import org.chromium.chrome.R;
|
| +import org.chromium.base.VisibleForTesting;
|
| import org.chromium.chrome.browser.payments.ui.PaymentRequestUI.PaymentRequestObserverForTest;
|
|
|
| import javax.annotation.Nullable;
|
|
|
| /** Handles validation and display of one field from the {@link EditorFieldModel}. */
|
| -class EditorTextField extends TextInputLayout {
|
| +@VisibleForTesting
|
| +public class EditorTextField extends TextInputLayout {
|
|
|
| /** The indicator for input fields that are required. */
|
| private static final String REQUIRED_FIELD_INDICATOR = "*";
|
| @@ -38,6 +39,7 @@ class EditorTextField extends TextInputLayout {
|
| OnEditorActionListener actionlistener, PhoneNumberFormattingTextWatcher formatter,
|
| PaymentRequestObserverForTest observer) {
|
| super(context);
|
| + assert fieldModel.getInputTypeHint() != EditorFieldModel.INPUT_TYPE_HINT_DROPDOWN;
|
| mEditorFieldModel = fieldModel;
|
| mObserverForTest = observer;
|
|
|
| @@ -94,14 +96,41 @@ class EditorTextField extends TextInputLayout {
|
| mInput.setThreshold(0);
|
| }
|
|
|
| - if (fieldModel.getInputTypeHint() == EditorFieldModel.INPUT_TYPE_HINT_PHONE) {
|
| - mInput.setId(R.id.payments_edit_phone_input);
|
| - mInput.setInputType(InputType.TYPE_CLASS_PHONE);
|
| - mInput.addTextChangedListener(formatter);
|
| - } else if (fieldModel.getInputTypeHint() == EditorFieldModel.INPUT_TYPE_HINT_EMAIL) {
|
| - mInput.setId(R.id.payments_edit_email_input);
|
| - mInput.setInputType(
|
| - InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
| + switch (fieldModel.getInputTypeHint()) {
|
| + case EditorFieldModel.INPUT_TYPE_HINT_PHONE:
|
| + mInput.setInputType(InputType.TYPE_CLASS_PHONE);
|
| + break;
|
| + case EditorFieldModel.INPUT_TYPE_HINT_EMAIL:
|
| + mInput.setInputType(InputType.TYPE_CLASS_TEXT
|
| + | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
| + break;
|
| + case EditorFieldModel.INPUT_TYPE_HINT_STREET_LINES:
|
| + // TODO(rouslan): Provide a hint to the keyboard that the street lines are
|
| + // likely to have numbers.
|
| + mInput.setInputType(InputType.TYPE_CLASS_TEXT
|
| + | InputType.TYPE_TEXT_FLAG_CAP_WORDS
|
| + | InputType.TYPE_TEXT_FLAG_MULTI_LINE
|
| + | InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS);
|
| + break;
|
| + case EditorFieldModel.INPUT_TYPE_HINT_PERSON_NAME:
|
| + mInput.setInputType(InputType.TYPE_CLASS_TEXT
|
| + | InputType.TYPE_TEXT_FLAG_CAP_WORDS
|
| + | InputType.TYPE_TEXT_VARIATION_PERSON_NAME);
|
| + break;
|
| + case EditorFieldModel.INPUT_TYPE_HINT_REGION:
|
| + mInput.setInputType(InputType.TYPE_CLASS_TEXT
|
| + | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS
|
| + | InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS);
|
| + break;
|
| + case EditorFieldModel.INPUT_TYPE_HINT_ALPHA_NUMERIC:
|
| + // Intentionally fall through.
|
| + // TODO(rouslan): Provide a hint to the keyboard that postal code and sorting
|
| + // code are likely to have numbers.
|
| + default:
|
| + mInput.setInputType(InputType.TYPE_CLASS_TEXT
|
| + | InputType.TYPE_TEXT_FLAG_CAP_WORDS
|
| + | InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS);
|
| + break;
|
| }
|
| }
|
|
|
|
|