| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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.preferences.autofill; | 5 package org.chromium.chrome.browser.preferences.autofill; |
| 6 | 6 |
| 7 import android.os.Bundle; | 7 import android.os.Bundle; |
| 8 import android.text.Editable; | 8 import android.text.Editable; |
| 9 import android.text.TextUtils; | 9 import android.text.TextUtils; |
| 10 import android.text.TextWatcher; | 10 import android.text.TextWatcher; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 private FloatLabelLayout mNameLabel; | 35 private FloatLabelLayout mNameLabel; |
| 36 private EditText mNameText; | 36 private EditText mNameText; |
| 37 private FloatLabelLayout mNumberLabel; | 37 private FloatLabelLayout mNumberLabel; |
| 38 private EditText mNumberText; | 38 private EditText mNumberText; |
| 39 private Spinner mExpirationMonth; | 39 private Spinner mExpirationMonth; |
| 40 private Spinner mExpirationYear; | 40 private Spinner mExpirationYear; |
| 41 private Spinner mBillingAddress; | 41 private Spinner mBillingAddress; |
| 42 | 42 |
| 43 private int mInitialExpirationMonthPos; | 43 private int mInitialExpirationMonthPos; |
| 44 private int mInitialExpirationYearPos; | 44 private int mInitialExpirationYearPos; |
| 45 private int mInitialBillingAddressPos; |
| 45 | 46 |
| 46 @Override | 47 @Override |
| 47 public View onCreateView(LayoutInflater inflater, ViewGroup container, | 48 public View onCreateView(LayoutInflater inflater, ViewGroup container, |
| 48 Bundle savedInstanceState) { | 49 Bundle savedInstanceState) { |
| 49 View v = super.onCreateView(inflater, container, savedInstanceState); | 50 View v = super.onCreateView(inflater, container, savedInstanceState); |
| 50 | 51 |
| 51 mNameLabel = (FloatLabelLayout) v.findViewById(R.id.credit_card_name_lab
el); | 52 mNameLabel = (FloatLabelLayout) v.findViewById(R.id.credit_card_name_lab
el); |
| 52 mNameText = (EditText) v.findViewById(R.id.credit_card_name_edit); | 53 mNameText = (EditText) v.findViewById(R.id.credit_card_name_edit); |
| 53 mNumberLabel = (FloatLabelLayout) v.findViewById(R.id.credit_card_number
_label); | 54 mNumberLabel = (FloatLabelLayout) v.findViewById(R.id.credit_card_number
_label); |
| 54 mNumberText = (EditText) v.findViewById(R.id.credit_card_number_edit); | 55 mNumberText = (EditText) v.findViewById(R.id.credit_card_number_edit); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 74 | 75 |
| 75 @Override | 76 @Override |
| 76 protected int getTitleResourceId(boolean isNewEntry) { | 77 protected int getTitleResourceId(boolean isNewEntry) { |
| 77 return isNewEntry | 78 return isNewEntry |
| 78 ? R.string.autofill_create_credit_card : R.string.autofill_edit_
credit_card; | 79 ? R.string.autofill_create_credit_card : R.string.autofill_edit_
credit_card; |
| 79 } | 80 } |
| 80 | 81 |
| 81 @Override | 82 @Override |
| 82 public void onItemSelected(AdapterView<?> parent, View view, int position, l
ong id) { | 83 public void onItemSelected(AdapterView<?> parent, View view, int position, l
ong id) { |
| 83 if ((parent == mExpirationYear && position != mInitialExpirationYearPos) | 84 if ((parent == mExpirationYear && position != mInitialExpirationYearPos) |
| 84 || (parent == mExpirationMonth && position != mInitialExpiration
MonthPos)) { | 85 || (parent == mExpirationMonth && position != mInitialExpiration
MonthPos) |
| 86 || (parent == mBillingAddress && position != mInitialBillingAddr
essPos)) { |
| 85 updateSaveButtonEnabled(); | 87 updateSaveButtonEnabled(); |
| 86 } | 88 } |
| 87 } | 89 } |
| 88 | 90 |
| 89 @Override | 91 @Override |
| 90 public void onTextChanged(CharSequence s, int start, int before, int count)
{ | 92 public void onTextChanged(CharSequence s, int start, int before, int count)
{ |
| 91 updateSaveButtonEnabled(); | 93 updateSaveButtonEnabled(); |
| 92 } | 94 } |
| 93 | 95 |
| 94 void addSpinnerAdapters() { | 96 void addSpinnerAdapters() { |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 getActivity().getString(R.string.autofill_billing_address_select
_prompt)); | 129 getActivity().getString(R.string.autofill_billing_address_select
_prompt)); |
| 128 profilesAdapter.add(noSelection); | 130 profilesAdapter.add(noSelection); |
| 129 | 131 |
| 130 List<AutofillProfile> profiles = PersonalDataManager.getInstance().getPr
ofilesForSettings(); | 132 List<AutofillProfile> profiles = PersonalDataManager.getInstance().getPr
ofilesForSettings(); |
| 131 for (int i = 0; i < profiles.size(); i++) { | 133 for (int i = 0; i < profiles.size(); i++) { |
| 132 AutofillProfile profile = profiles.get(i); | 134 AutofillProfile profile = profiles.get(i); |
| 133 if (profile.getIsLocal()) profilesAdapter.add(profile); | 135 if (profile.getIsLocal()) profilesAdapter.add(profile); |
| 134 } | 136 } |
| 135 | 137 |
| 136 mBillingAddress.setAdapter(profilesAdapter); | 138 mBillingAddress.setAdapter(profilesAdapter); |
| 139 mInitialBillingAddressPos = 0; |
| 137 mBillingAddress.setSelection(0); | 140 mBillingAddress.setSelection(0); |
| 138 | 141 |
| 139 // TODO(rouslan): Use an [+ ADD ADDRESS] button instead of disabling the
dropdown. | 142 // TODO(rouslan): Use an [+ ADD ADDRESS] button instead of disabling the
dropdown. |
| 140 // http://crbug.com/623629 | 143 // http://crbug.com/623629 |
| 141 if (profilesAdapter.getCount() == 1) mBillingAddress.setEnabled(false); | 144 if (profilesAdapter.getCount() == 1) mBillingAddress.setEnabled(false); |
| 142 } | 145 } |
| 143 | 146 |
| 144 private void addCardDataToEditFields() { | 147 private void addCardDataToEditFields() { |
| 145 CreditCard card = PersonalDataManager.getInstance().getCreditCard(mGUID)
; | 148 CreditCard card = PersonalDataManager.getInstance().getCreditCard(mGUID)
; |
| 146 if (card == null) { | 149 if (card == null) { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 (ArrayAdapter<CharSequence>) mExpirationYear.getAdapter(); | 184 (ArrayAdapter<CharSequence>) mExpirationYear.getAdapter(); |
| 182 adapter.insert(card.getYear(), 0); | 185 adapter.insert(card.getYear(), 0); |
| 183 mInitialExpirationYearPos = 0; | 186 mInitialExpirationYearPos = 0; |
| 184 } | 187 } |
| 185 mExpirationYear.setSelection(mInitialExpirationYearPos); | 188 mExpirationYear.setSelection(mInitialExpirationYearPos); |
| 186 | 189 |
| 187 if (!TextUtils.isEmpty(card.getBillingAddressId())) { | 190 if (!TextUtils.isEmpty(card.getBillingAddressId())) { |
| 188 for (int i = 0; i < mBillingAddress.getAdapter().getCount(); i++) { | 191 for (int i = 0; i < mBillingAddress.getAdapter().getCount(); i++) { |
| 189 AutofillProfile profile = (AutofillProfile) mBillingAddress.getA
dapter().getItem(i); | 192 AutofillProfile profile = (AutofillProfile) mBillingAddress.getA
dapter().getItem(i); |
| 190 if (TextUtils.equals(profile.getGUID(), card.getBillingAddressId
())) { | 193 if (TextUtils.equals(profile.getGUID(), card.getBillingAddressId
())) { |
| 194 mInitialBillingAddressPos = i; |
| 191 mBillingAddress.setSelection(i); | 195 mBillingAddress.setSelection(i); |
| 192 break; | 196 break; |
| 193 } | 197 } |
| 194 } | 198 } |
| 195 } | 199 } |
| 196 } | 200 } |
| 197 | 201 |
| 198 // Read edited data; save in the associated Chrome profile. | 202 // Read edited data; save in the associated Chrome profile. |
| 199 // Ignore empty fields. | 203 // Ignore empty fields. |
| 200 @Override | 204 @Override |
| (...skipping 20 matching lines...) Expand all Loading... |
| 221 | 225 |
| 222 @Override | 226 @Override |
| 223 protected void initializeButtons(View v) { | 227 protected void initializeButtons(View v) { |
| 224 super.initializeButtons(v); | 228 super.initializeButtons(v); |
| 225 | 229 |
| 226 // Listen for changes to inputs. Enable the save button after something
has changed. | 230 // Listen for changes to inputs. Enable the save button after something
has changed. |
| 227 mNameText.addTextChangedListener(this); | 231 mNameText.addTextChangedListener(this); |
| 228 mNumberText.addTextChangedListener(this); | 232 mNumberText.addTextChangedListener(this); |
| 229 mExpirationMonth.setOnItemSelectedListener(this); | 233 mExpirationMonth.setOnItemSelectedListener(this); |
| 230 mExpirationYear.setOnItemSelectedListener(this); | 234 mExpirationYear.setOnItemSelectedListener(this); |
| 235 mBillingAddress.setOnItemSelectedListener(this); |
| 231 } | 236 } |
| 232 | 237 |
| 233 private void updateSaveButtonEnabled() { | 238 private void updateSaveButtonEnabled() { |
| 234 boolean enabled = !TextUtils.isEmpty(mNameText.getText()) | 239 boolean enabled = !TextUtils.isEmpty(mNameText.getText()) |
| 235 || !TextUtils.isEmpty(mNumberText.getText()); | 240 || !TextUtils.isEmpty(mNumberText.getText()); |
| 236 Button button = (Button) getView().findViewById(R.id.button_primary); | 241 Button button = (Button) getView().findViewById(R.id.button_primary); |
| 237 button.setEnabled(enabled); | 242 button.setEnabled(enabled); |
| 238 } | 243 } |
| 239 | 244 |
| 240 /** | 245 /** |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 } | 325 } |
| 321 } | 326 } |
| 322 | 327 |
| 323 public static boolean hasDashOrSpace(final CharSequence s, final int sta
rt, | 328 public static boolean hasDashOrSpace(final CharSequence s, final int sta
rt, |
| 324 final int count) { | 329 final int count) { |
| 325 return TextUtils.indexOf(s, " ", start, start + count) != -1 | 330 return TextUtils.indexOf(s, " ", start, start + count) != -1 |
| 326 || TextUtils.indexOf(s, "-", start, start + count) != -1; | 331 || TextUtils.indexOf(s, "-", start, start + count) != -1; |
| 327 } | 332 } |
| 328 } | 333 } |
| 329 } | 334 } |
| OLD | NEW |