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

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

Issue 2640743005: PaymentApp: Implement invokePaymentApp for Android (Closed)
Patch Set: Fix unittest compilation Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
index 15e0acb6c1721e815f6d451db8fbd9aff28c53ea..523d0587e36946830bdf7baa921e00d9263d75f7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
@@ -621,11 +621,11 @@ public class PaymentRequestImpl
mUiShippingOptions = getShippingOptions(details.shippingOptions, mCurrencyFormatter);
+ mModifiers = new ArrayMap<>();
for (int i = 0; i < details.modifiers.length; i++) {
PaymentDetailsModifier modifier = details.modifiers[i];
String[] methods = modifier.methodData.supportedMethods;
for (int j = 0; j < methods.length; j++) {
- if (mModifiers == null) mModifiers = new ArrayMap<>();
please use gerrit instead 2017/01/19 16:45:04 I would prefer to keep null ArrayMap if the mercha
tommyt 2017/01/20 09:33:29 Done.
mModifiers.put(methods[j], modifier);
}
}
@@ -1034,19 +1034,25 @@ public class PaymentRequestImpl
mPaymentResponseHelper = new PaymentResponseHelper(
selectedShippingAddress, selectedShippingOption, selectedContact, this);
- // Create a map that is the subset of mMethodData that contains the
- // payment methods supported by the selected payment instrument. If this
- // intersection contains more than one payment method, the payment app is
- // at liberty to choose (or have the user choose) one of the methods.
+ // Create maps that are subsets of mMethodData and mModifiers, that contain
+ // the payment methods supported by the selected payment instrument. If the
+ // intersection of method data contains more than one payment method, the
+ // payment app is at liberty to choose (or have the user choose) one of the
+ // methods.
Map<String, PaymentMethodData> methodData = new HashMap<>();
+ Map<String, PaymentDetailsModifier> modifiers = new HashMap<>();
for (String instrumentMethodName : instrument.getInstrumentMethodNames()) {
if (mMethodData.containsKey(instrumentMethodName)) {
methodData.put(instrumentMethodName, mMethodData.get(instrumentMethodName));
}
+ if (mModifiers.containsKey(instrumentMethodName)) {
please use gerrit instead 2017/01/19 16:45:04 You can check mModifiers != null here, if you keep
tommyt 2017/01/20 09:33:29 Done.
+ modifiers.put(instrumentMethodName, mModifiers.get(instrumentMethodName));
+ }
}
- instrument.invokePaymentApp(mMerchantName, mOrigin, mRawTotal, mRawLineItems,
- Collections.unmodifiableMap(methodData), this);
+ instrument.invokePaymentApp(mMerchantName, mOrigin, Collections.unmodifiableMap(methodData),
+ mRawTotal, mRawLineItems, Collections.unmodifiableMap(modifiers), this);
please use gerrit instead 2017/01/19 16:45:04 Might be a good idea to make mRawLineItems unmodif
tommyt 2017/01/20 09:33:29 It should already be unmodifiable. It is assigned
+
recordSuccessFunnelHistograms("PayClicked");
return !(instrument instanceof AutofillPaymentInstrument);
}

Powered by Google App Engine
This is Rietveld 408576698