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

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

Issue 2558993003: Billing address not required for canMakePayment(). (Closed)
Patch Set: gogerald comments Created 4 years 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java
index 2069212f020eee4ee2b92e814c9fe2a08707d68d..3aee75e6681e5575474781f22efd17036c978aad 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java
@@ -42,6 +42,7 @@ public class AutofillPaymentInstrument extends PaymentInstrument
@Nullable private InstrumentDetailsCallback mCallback;
private boolean mIsWaitingForBillingNormalization;
private boolean mIsWaitingForFullCardDetails;
+ private boolean mHasValidNumberAndName;
/**
* Builds a payment instrument for the given credit card.
@@ -80,7 +81,10 @@ public class AutofillPaymentInstrument extends PaymentInstrument
InstrumentDetailsCallback callback) {
// The billing address should never be null for a credit card at this point.
assert mBillingAddress != null;
+ assert AutofillAddress.checkAddressCompletionStatus(mBillingAddress)
+ == AutofillAddress.COMPLETE;
assert mIsComplete;
+ assert mHasValidNumberAndName;
assert mCallback == null;
mCallback = callback;
@@ -210,12 +214,23 @@ public class AutofillPaymentInstrument extends PaymentInstrument
@Override
public void dismissInstrument() {}
- /** @return Whether the card is complete and ready to be sent to the merchant as-is. */
+ /**
+ * @return Whether the card is complete and ready to be sent to the merchant as-is. If true,
+ * this card has a valid card number, a non-empty name on card, and a complete billing address.
+ */
public boolean isComplete() {
return mIsComplete;
}
/**
+ * @return Whether the card number is valid and name on card is non-empty. Billing address is
+ * not taken into consideration.
+ */
+ public boolean isValid() {
+ return mHasValidNumberAndName;
+ }
+
+ /**
* Updates the instrument and marks it "complete." Called after the user has edited this
* instrument.
*
@@ -239,15 +254,19 @@ public class AutofillPaymentInstrument extends PaymentInstrument
mContext.getResources(), card.getIssuerIconDrawableId()));
checkAndUpateCardCompleteness();
assert mIsComplete;
+ assert mHasValidNumberAndName;
}
/**
* Checks whether card is complete, i.e., can be sent to the merchant as-is without editing
* first. And updates edit message, edit title and complete status.
*
- * For both local and server cards, verifies that the billing address is complete. For local
+ * For both local and server cards, verifies that the billing address is present. For local
* cards also verifies that the card number is valid and the name on card is not empty.
*
+ * Does not check that the billing address has all of the required fields. This is done
+ * elsewhere to filter out such billing addresses entirely.
+ *
* Does not check the expiration date. If the card is expired, the user has the opportunity
* update the expiration date when providing their CVC in the card unmask dialog.
*
@@ -265,8 +284,10 @@ public class AutofillPaymentInstrument extends PaymentInstrument
invalidFieldsCount++;
}
+ mHasValidNumberAndName = true;
if (mCard.getIsLocal()) {
if (TextUtils.isEmpty(mCard.getName())) {
+ mHasValidNumberAndName = false;
editMessageResId = R.string.payments_name_on_card_required;
editTitleResId = R.string.payments_add_name_on_card;
invalidFieldsCount++;
@@ -275,6 +296,7 @@ public class AutofillPaymentInstrument extends PaymentInstrument
if (PersonalDataManager.getInstance().getBasicCardPaymentType(
mCard.getNumber().toString(), true)
== null) {
+ mHasValidNumberAndName = false;
editMessageResId = R.string.payments_card_number_invalid;
editTitleResId = R.string.payments_add_valid_card_number;
invalidFieldsCount++;
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698