Index: chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java |
index 19d4bbfb22c23041ea86b8642f03c004bac2f9d3..06f09a0b60574d02611c3abbb935cee17aa00df5 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorFieldModel.java |
@@ -36,6 +36,18 @@ public class EditorFieldModel { |
boolean isValid(@Nullable CharSequence value); |
} |
+ /** |
+ * The interface to be implemented by the field value icon generator. |
+ */ |
+ public interface EditorValueIconGenerator { |
+ /** |
+ * Called to get the field value icon resource Id. |
+ * @param value The value of the field. |
+ * @return The resouce Id of the value icon, 0 indicates no icon. |
+ */ |
+ int getIconResourceId(@Nullable CharSequence value); |
+ } |
+ |
private static final int INPUT_TYPE_HINT_MIN_INCLUSIVE = 0; |
/** Text input with no special formatting rules, e.g., a city, a suburb, or a company name. */ |
@@ -98,6 +110,7 @@ public class EditorFieldModel { |
@Nullable private Set<String> mDropdownKeys; |
@Nullable private List<CharSequence> mSuggestions; |
@Nullable private EditorFieldValidator mValidator; |
+ @Nullable private EditorValueIconGenerator mValueIconGenerator; |
@Nullable private CharSequence mRequiredErrorMessage; |
@Nullable private CharSequence mInvalidErrorMessage; |
@Nullable private CharSequence mErrorMessage; |
@@ -106,10 +119,10 @@ public class EditorFieldModel { |
@Nullable private CharSequence mBottomLabel; |
@Nullable private CharSequence mValue; |
@Nullable private Callback<Pair<String, Runnable>> mDropdownCallback; |
- @Nullable private Runnable mIconAction; |
+ @Nullable private Runnable mActionIconAction; |
private int mLabelIconResourceId; |
private int mActionIconResourceId; |
- private int mActionDescriptionForAccessibility; |
+ private int mActionIconDescriptionForAccessibility; |
private boolean mIsFullLine = true; |
/** |
@@ -242,6 +255,7 @@ public class EditorFieldModel { |
* that should be entered into this field. |
* @param suggestions Optional set of values to suggest to the user. |
* @param validator Optional validator for the values in this field. |
+ * @param valueIconGenerator Optional icon generator for the values in this field. |
* @param requiredErrorMessage The optional error message that indicates to the user that they |
* cannot leave this field empty. |
* @param invalidErrorMessage The optional error message that indicates to the user that the |
@@ -250,6 +264,7 @@ public class EditorFieldModel { |
*/ |
public static EditorFieldModel createTextInput(int inputTypeHint, CharSequence label, |
@Nullable Set<CharSequence> suggestions, @Nullable EditorFieldValidator validator, |
+ @Nullable EditorValueIconGenerator valueIconGenerator, |
@Nullable CharSequence requiredErrorMessage, @Nullable CharSequence invalidErrorMessage, |
@Nullable CharSequence value) { |
assert label != null; |
@@ -257,6 +272,7 @@ public class EditorFieldModel { |
assert result.isTextField(); |
result.mSuggestions = suggestions == null ? null : new ArrayList<CharSequence>(suggestions); |
result.mValidator = validator; |
+ result.mValueIconGenerator = valueIconGenerator; |
result.mInvalidErrorMessage = invalidErrorMessage; |
result.mRequiredErrorMessage = requiredErrorMessage; |
result.mLabel = label; |
@@ -275,8 +291,8 @@ public class EditorFieldModel { |
public void addActionIcon(int icon, int description, Runnable action) { |
assert isTextField(); |
mActionIconResourceId = icon; |
- mActionDescriptionForAccessibility = description; |
- mIconAction = action; |
+ mActionIconDescriptionForAccessibility = description; |
+ mActionIconAction = action; |
} |
private EditorFieldModel(int inputTypeHint) { |
@@ -290,16 +306,22 @@ public class EditorFieldModel { |
return mActionIconResourceId; |
} |
- /** @return The string resource for the human readable description of the action. */ |
- public int getActionDescriptionForAccessibility() { |
+ /** @return The string resource for the human readable description of the action icon. */ |
+ public int getActionIconDescriptionForAccessibility() { |
+ assert isTextField(); |
+ return mActionIconDescriptionForAccessibility; |
+ } |
+ |
+ /** @return The action to invoke when the action icon has been tapped. */ |
+ public Runnable getActionIconAction() { |
assert isTextField(); |
- return mActionDescriptionForAccessibility; |
+ return mActionIconAction; |
} |
- /** @return The action to invoke when the icon has been tapped. */ |
- public Runnable getIconAction() { |
+ /** @return The value icon generator or null if not exist. */ |
+ public EditorValueIconGenerator getValueIconGenerator() { |
assert isTextField(); |
- return mIconAction; |
+ return mValueIconGenerator; |
} |
private boolean isTextField() { |