| OLD | NEW |
| 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; | 5 package org.chromium.chrome.browser.payments; |
| 6 | 6 |
| 7 import android.os.AsyncTask; | 7 import android.os.AsyncTask; |
| 8 import android.os.Handler; | 8 import android.os.Handler; |
| 9 import android.text.SpannableStringBuilder; | 9 import android.text.SpannableStringBuilder; |
| 10 import android.text.TextUtils; | 10 import android.text.TextUtils; |
| (...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 478 // Card scanner is expensive to query. | 478 // Card scanner is expensive to query. |
| 479 if (mCardScanner == null) { | 479 if (mCardScanner == null) { |
| 480 mCardScanner = CreditCardScanner.create(mWebContents, this); | 480 mCardScanner = CreditCardScanner.create(mWebContents, this); |
| 481 mCanScan = mCardScanner.canScan(); | 481 mCanScan = mCardScanner.canScan(); |
| 482 } | 482 } |
| 483 | 483 |
| 484 // Card number is validated. | 484 // Card number is validated. |
| 485 if (mNumberField == null) { | 485 if (mNumberField == null) { |
| 486 mNumberField = EditorFieldModel.createTextInput( | 486 mNumberField = EditorFieldModel.createTextInput( |
| 487 EditorFieldModel.INPUT_TYPE_HINT_CREDIT_CARD, | 487 EditorFieldModel.INPUT_TYPE_HINT_CREDIT_CARD, |
| 488 mContext.getString(R.string.autofill_credit_card_editor_numb
er), null, | 488 mContext.getString(R.string.autofill_credit_card_editor_numb
er), |
| 489 mCardNumberValidator, mCardIconGenerator, | 489 null /* suggestions */, null /* formatter */, mCardNumberVal
idator, |
| 490 mCardIconGenerator, |
| 490 mContext.getString(R.string.payments_field_required_validati
on_message), | 491 mContext.getString(R.string.payments_field_required_validati
on_message), |
| 491 mContext.getString(R.string.payments_card_number_invalid_val
idation_message), | 492 mContext.getString(R.string.payments_card_number_invalid_val
idation_message), |
| 492 null); | 493 null /* value */); |
| 493 if (mCanScan) { | 494 if (mCanScan) { |
| 494 mNumberField.addActionIcon(R.drawable.ic_photo_camera, | 495 mNumberField.addActionIcon(R.drawable.ic_photo_camera, |
| 495 R.string.autofill_scan_credit_card, new Runnable() { | 496 R.string.autofill_scan_credit_card, new Runnable() { |
| 496 @Override | 497 @Override |
| 497 public void run() { | 498 public void run() { |
| 498 if (mIsScanning) return; | 499 if (mIsScanning) return; |
| 499 mIsScanning = true; | 500 mIsScanning = true; |
| 500 mCardScanner.scan(); | 501 mCardScanner.scan(); |
| 501 } | 502 } |
| 502 }); | 503 }); |
| 503 } | 504 } |
| 504 } | 505 } |
| 505 mNumberField.setValue(card.getNumber()); | 506 mNumberField.setValue(card.getNumber()); |
| 506 editor.addField(mNumberField); | 507 editor.addField(mNumberField); |
| 507 | 508 |
| 508 // Name on card is required. | 509 // Name on card is required. |
| 509 if (mNameField == null) { | 510 if (mNameField == null) { |
| 510 mNameField = EditorFieldModel.createTextInput( | 511 mNameField = |
| 511 EditorFieldModel.INPUT_TYPE_HINT_PERSON_NAME, | 512 EditorFieldModel.createTextInput(EditorFieldModel.INPUT_TYPE
_HINT_PERSON_NAME, |
| 512 mContext.getString(R.string.autofill_credit_card_editor_name
), null, null, null, | 513 mContext.getString(R.string.autofill_credit_card_edi
tor_name), |
| 513 mContext.getString(R.string.payments_field_required_validati
on_message), null, | 514 null /* suggestions */, null /* formatter */, null /
* validator */, |
| 514 null); | 515 null /* valueIconGenerator */, |
| 516 mContext.getString(R.string.payments_field_required_
validation_message), |
| 517 null /* invalidErrorMessage */, null /* value */); |
| 515 } | 518 } |
| 516 mNameField.setValue(card.getName()); | 519 mNameField.setValue(card.getName()); |
| 517 editor.addField(mNameField); | 520 editor.addField(mNameField); |
| 518 | 521 |
| 519 // Expiration month dropdown. | 522 // Expiration month dropdown. |
| 520 if (mMonthField == null) { | 523 if (mMonthField == null) { |
| 521 mCurrentYear = calendar.get(Calendar.YEAR); | 524 mCurrentYear = calendar.get(Calendar.YEAR); |
| 522 // The month in calendar is 0 based but the month value is 1 based. | 525 // The month in calendar is 0 based but the month value is 1 based. |
| 523 mCurrentMonth = calendar.get(Calendar.MONTH) + 1; | 526 mCurrentMonth = calendar.get(Calendar.MONTH) + 1; |
| 524 | 527 |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 827 | 830 |
| 828 mEditorDialog.update(); | 831 mEditorDialog.update(); |
| 829 mIsScanning = false; | 832 mIsScanning = false; |
| 830 } | 833 } |
| 831 | 834 |
| 832 @Override | 835 @Override |
| 833 public void onScanCancelled() { | 836 public void onScanCancelled() { |
| 834 mIsScanning = false; | 837 mIsScanning = false; |
| 835 } | 838 } |
| 836 } | 839 } |
| OLD | NEW |