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 ab70d61ea9040db603316121e535c64e0626ccbf..8f1d7f25528742775e4067cae15c09143ca967b8 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 |
@@ -9,10 +9,12 @@ import android.text.Editable; |
import android.text.InputFilter; |
import android.text.InputType; |
import android.text.TextWatcher; |
+import android.view.KeyEvent; |
import android.view.LayoutInflater; |
import android.view.View; |
import android.view.ViewGroup; |
import android.view.accessibility.AccessibilityEvent; |
+import android.view.inputmethod.EditorInfo; |
import android.widget.ArrayAdapter; |
import android.widget.AutoCompleteTextView; |
import android.widget.FrameLayout; |
@@ -32,6 +34,7 @@ import javax.annotation.Nullable; |
@VisibleForTesting |
public class EditorTextField extends FrameLayout implements EditorFieldView, View.OnClickListener { |
private EditorFieldModel mEditorFieldModel; |
+ private OnEditorActionListener mEditorActionListener; |
private CompatibilityTextInputLayout mInputLayout; |
private AutoCompleteTextView mInput; |
private View mIconsLayer; |
@@ -42,11 +45,12 @@ public class EditorTextField extends FrameLayout implements EditorFieldView, Vie |
@Nullable private PaymentRequestObserverForTest mObserverForTest; |
public EditorTextField(Context context, final EditorFieldModel fieldModel, |
- OnEditorActionListener actionlistener, @Nullable InputFilter filter, |
+ OnEditorActionListener actionListener, @Nullable InputFilter filter, |
@Nullable TextWatcher formatter, @Nullable PaymentRequestObserverForTest observer) { |
super(context); |
assert fieldModel.getInputTypeHint() != EditorFieldModel.INPUT_TYPE_HINT_DROPDOWN; |
mEditorFieldModel = fieldModel; |
+ mEditorActionListener = actionListener; |
mObserverForTest = observer; |
LayoutInflater.from(context).inflate(R.layout.payments_request_editor_textview, this, true); |
@@ -60,7 +64,7 @@ public class EditorTextField extends FrameLayout implements EditorFieldView, Vie |
mInput = (AutoCompleteTextView) mInputLayout.findViewById(R.id.text_view); |
mInput.setText(fieldModel.getValue()); |
mInput.setContentDescription(label); |
- mInput.setOnEditorActionListener(actionlistener); |
+ mInput.setOnEditorActionListener(mEditorActionListener); |
mIconsLayer = findViewById(R.id.icons_layer); |
mIconsLayer.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { |
@@ -114,6 +118,13 @@ public class EditorTextField extends FrameLayout implements EditorFieldView, Vie |
if (mObserverForTest != null) { |
mObserverForTest.onPaymentRequestEditorTextUpdate(); |
} |
+ if (!mEditorFieldModel.isLengthMaximum()) return; |
+ updateDisplayedError(true); |
+ if (isValid()) { |
+ // Simulate editor action to select next selectable field. |
+ mEditorActionListener.onEditorAction(mInput, EditorInfo.IME_ACTION_NEXT, |
+ new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER)); |
+ } |
} |
@Override |