Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4281)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorTextField.java

Issue 2116583002: Credit card editor for PaymentRequest UI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update comments in personal_data_manager_android.h Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 0191d9eac846f08b0b084b28ed0ae6b4c100eff2..0af1963cfb010631ec40a7663f97d56b997b8a66 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
@@ -5,12 +5,14 @@
package org.chromium.chrome.browser.payments.ui;
import android.content.Context;
-import android.telephony.PhoneNumberFormattingTextWatcher;
import android.text.Editable;
+import android.text.InputFilter;
import android.text.InputType;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.TextView.OnEditorActionListener;
@@ -20,21 +22,19 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.payments.ui.PaymentRequestUI.PaymentRequestObserverForTest;
import org.chromium.chrome.browser.widget.CompatibilityTextInputLayout;
+import javax.annotation.Nullable;
+
/** Handles validation and display of one field from the {@link EditorFieldModel}. */
@VisibleForTesting
-public class EditorTextField extends CompatibilityTextInputLayout {
-
- /** The indicator for input fields that are required. */
- private static final String REQUIRED_FIELD_INDICATOR = "*";
-
+public class EditorTextField extends CompatibilityTextInputLayout implements Validatable {
private EditorFieldModel mEditorFieldModel;
private AutoCompleteTextView mInput;
private boolean mHasFocusedAtLeastOnce;
- private PaymentRequestObserverForTest mObserverForTest;
+ @Nullable private PaymentRequestObserverForTest mObserverForTest;
public EditorTextField(Context context, final EditorFieldModel fieldModel,
- OnEditorActionListener actionlistener, PhoneNumberFormattingTextWatcher formatter,
- PaymentRequestObserverForTest observer) {
+ OnEditorActionListener actionlistener, @Nullable InputFilter filter,
+ @Nullable TextWatcher formatter, @Nullable PaymentRequestObserverForTest observer) {
super(context);
assert fieldModel.getInputTypeHint() != EditorFieldModel.INPUT_TYPE_HINT_DROPDOWN;
mEditorFieldModel = fieldModel;
@@ -42,7 +42,7 @@ public class EditorTextField extends CompatibilityTextInputLayout {
// Build up the label. Required fields are indicated by appending a '*'.
CharSequence label = fieldModel.getLabel();
- if (fieldModel.isRequired()) label = label + REQUIRED_FIELD_INDICATOR;
+ if (fieldModel.isRequired()) label = label + EditorView.REQUIRED_FIELD_INDICATOR;
setHint(label);
// The EditText becomes a child of this class. The TextInputLayout manages how it looks.
@@ -91,7 +91,13 @@ public class EditorTextField extends CompatibilityTextInputLayout {
mInput.setThreshold(0);
}
+ if (filter != null) mInput.setFilters(new InputFilter[] {filter});
+ if (formatter != null) mInput.addTextChangedListener(formatter);
+
switch (fieldModel.getInputTypeHint()) {
+ case EditorFieldModel.INPUT_TYPE_HINT_CREDIT_CARD:
+ mInput.setInputType(InputType.TYPE_CLASS_PHONE);
gone 2016/07/13 21:13:01 TYPE_CLASS_PHONE? is that just to limit it to num
please use gerrit instead 2016/07/14 17:21:44 TYPE_CLASS_PHONE shows number keyboard with phone-
+ break;
case EditorFieldModel.INPUT_TYPE_HINT_PHONE:
mInput.setInputType(InputType.TYPE_CLASS_PHONE);
break;
@@ -139,12 +145,21 @@ public class EditorTextField extends CompatibilityTextInputLayout {
return mInput;
}
- /**
- * Updates the error display.
- *
- * @param showError If true, displays the error message. If false, clears it.
- */
+ @Override
+ public boolean isValid() {
+ return mEditorFieldModel.isValid();
+ }
+
+ @Override
public void updateDisplayedError(boolean showError) {
setError(showError ? mEditorFieldModel.getErrorMessage() : null);
}
+
+ @Override
+ public void scrollToAndFocus() {
+ ViewGroup parent = (ViewGroup) getParent();
+ if (parent != null) parent.requestChildFocus(this, this);
+ requestFocus();
+ sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698