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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorDropdownField.java

Issue 2680143002: Use dropdown list for admin areas in pr form. (Closed)
Patch Set: Supress error-- suggested by clank team Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.payments.ui; 5 package org.chromium.chrome.browser.payments.ui;
6 6
7 import android.annotation.SuppressLint; 7 import android.annotation.SuppressLint;
8 import android.content.Context; 8 import android.content.Context;
9 import android.view.LayoutInflater; 9 import android.view.LayoutInflater;
10 import android.view.MotionEvent; 10 import android.view.MotionEvent;
11 import android.view.View; 11 import android.view.View;
12 import android.view.ViewGroup; 12 import android.view.ViewGroup;
13 import android.view.accessibility.AccessibilityEvent; 13 import android.view.accessibility.AccessibilityEvent;
14 import android.widget.AdapterView; 14 import android.widget.AdapterView;
15 import android.widget.AdapterView.OnItemSelectedListener; 15 import android.widget.AdapterView.OnItemSelectedListener;
16 import android.widget.ArrayAdapter; 16 import android.widget.ArrayAdapter;
17 import android.widget.Spinner; 17 import android.widget.Spinner;
18 import android.widget.TextView; 18 import android.widget.TextView;
19 19
20 import org.chromium.chrome.R; 20 import org.chromium.chrome.R;
21 import org.chromium.chrome.browser.payments.ui.PaymentRequestUI.PaymentRequestOb serverForTest;
21 import org.chromium.chrome.browser.preferences.autofill.AutofillProfileBridge.Dr opdownKeyValue; 22 import org.chromium.chrome.browser.preferences.autofill.AutofillProfileBridge.Dr opdownKeyValue;
22 import org.chromium.ui.UiUtils; 23 import org.chromium.ui.UiUtils;
23 24
24 import java.util.ArrayList; 25 import java.util.ArrayList;
25 import java.util.List; 26 import java.util.List;
26 27
28 import javax.annotation.Nullable;
29
27 /** 30 /**
28 * Helper class for creating a dropdown view with a label. 31 * Helper class for creating a dropdown view with a label.
29 */ 32 */
30 class EditorDropdownField implements EditorFieldView { 33 class EditorDropdownField implements EditorFieldView {
31 private final EditorFieldModel mFieldModel; 34 private final EditorFieldModel mFieldModel;
32 private final View mLayout; 35 private final View mLayout;
33 private final TextView mLabel; 36 private final TextView mLabel;
34 private final Spinner mDropdown; 37 private final Spinner mDropdown;
35 private int mSelectedIndex; 38 private int mSelectedIndex;
39 @Nullable
40 private PaymentRequestObserverForTest mObserverForTest;
36 41
37 /** 42 /**
38 * Builds a dropdown view. 43 * Builds a dropdown view.
39 * 44 *
40 * @param context The application context to use when creating widge ts. 45 * @param context The application context to use when creating widge ts.
41 * @param root The object that provides a set of LayoutParams val ues for the view. 46 * @param root The object that provides a set of LayoutParams val ues for the view.
42 * @param fieldModel The data model of the dropdown. 47 * @param fieldModel The data model of the dropdown.
43 * @param changedCallback The callback to invoke after user's dropdwn item s election has been 48 * @param changedCallback The callback to invoke after user's dropdwn item s election has been
44 * processed. 49 * processed.
45 */ 50 */
46 public EditorDropdownField(Context context, ViewGroup root, final EditorFiel dModel fieldModel, 51 public EditorDropdownField(Context context, ViewGroup root, final EditorFiel dModel fieldModel,
47 final Runnable changedCallback) { 52 final Runnable changedCallback, @Nullable PaymentRequestObserverForT est observer) {
48 assert fieldModel.getInputTypeHint() == EditorFieldModel.INPUT_TYPE_HINT _DROPDOWN; 53 assert fieldModel.getInputTypeHint() == EditorFieldModel.INPUT_TYPE_HINT _DROPDOWN;
49 mFieldModel = fieldModel; 54 mFieldModel = fieldModel;
55 mObserverForTest = observer;
50 56
51 mLayout = LayoutInflater.from(context).inflate( 57 mLayout = LayoutInflater.from(context).inflate(
52 R.layout.payment_request_editor_dropdown, root, false); 58 R.layout.payment_request_editor_dropdown, root, false);
53 59
54 mLabel = (TextView) mLayout.findViewById(R.id.spinner_label); 60 mLabel = (TextView) mLayout.findViewById(R.id.spinner_label);
55 mLabel.setText(mFieldModel.isRequired() 61 mLabel.setText(mFieldModel.isRequired()
56 ? mFieldModel.getLabel() + EditorView.REQUIRED_FIELD_INDICATOR 62 ? mFieldModel.getLabel() + EditorView.REQUIRED_FIELD_INDICATOR
57 : mFieldModel.getLabel()); 63 : mFieldModel.getLabel());
58 64
59 final List<DropdownKeyValue> dropdownKeyValues = mFieldModel.getDropdown KeyValues(); 65 final List<DropdownKeyValue> dropdownKeyValues = mFieldModel.getDropdown KeyValues();
(...skipping 30 matching lines...) Expand all
90 mDropdown.setSelection(mSelectedIndex); 96 mDropdown.setSelection(mSelectedIndex);
91 mDropdown.setOnItemSelectedListener(new OnItemSelectedListener() { 97 mDropdown.setOnItemSelectedListener(new OnItemSelectedListener() {
92 @Override 98 @Override
93 public void onItemSelected(AdapterView<?> parent, View view, int pos ition, long id) { 99 public void onItemSelected(AdapterView<?> parent, View view, int pos ition, long id) {
94 if (mSelectedIndex != position) { 100 if (mSelectedIndex != position) {
95 mSelectedIndex = position; 101 mSelectedIndex = position;
96 mFieldModel.setDropdownKey( 102 mFieldModel.setDropdownKey(
97 mFieldModel.getDropdownKeyValues().get(position).get Key(), 103 mFieldModel.getDropdownKeyValues().get(position).get Key(),
98 changedCallback); 104 changedCallback);
99 } 105 }
106 if (mObserverForTest != null) {
107 mObserverForTest.onPaymentRequestEditorTextUpdate();
108 }
100 } 109 }
101 110
102 @Override 111 @Override
103 public void onNothingSelected(AdapterView<?> parent) {} 112 public void onNothingSelected(AdapterView<?> parent) {}
104 }); 113 });
105 mDropdown.setOnTouchListener(new View.OnTouchListener() { 114 mDropdown.setOnTouchListener(new View.OnTouchListener() {
106 @SuppressLint("ClickableViewAccessibility") 115 @SuppressLint("ClickableViewAccessibility")
107 @Override 116 @Override
108 public boolean onTouch(View v, MotionEvent event) { 117 public boolean onTouch(View v, MotionEvent event) {
109 if (event.getAction() == MotionEvent.ACTION_DOWN) requestFocusAn dHideKeyboard(); 118 if (event.getAction() == MotionEvent.ACTION_DOWN) requestFocusAn dHideKeyboard();
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 } 190 }
182 191
183 private static int getDropdownIndex( 192 private static int getDropdownIndex(
184 List<DropdownKeyValue> dropdownKeyValues, CharSequence value) { 193 List<DropdownKeyValue> dropdownKeyValues, CharSequence value) {
185 for (int i = 0; i < dropdownKeyValues.size(); i++) { 194 for (int i = 0; i < dropdownKeyValues.size(); i++) {
186 if (dropdownKeyValues.get(i).getKey().equals(value)) return i; 195 if (dropdownKeyValues.get(i).getKey().equals(value)) return i;
187 } 196 }
188 return 0; 197 return 0;
189 } 198 }
190 } 199 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698