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

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

Issue 2629883004: [Payment Request] Update the CurrencyStringFormatter to call the native impl. (Closed)
Patch Set: CurrencyStringFormatter -> CurrencyFormatter 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 0070b15e67ec7fe5fa2eb600c16e12cd09be90df..15e0acb6c1721e815f6d451db8fbd9aff28c53ea 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
@@ -266,7 +266,7 @@ public class PaymentRequestImpl
private ContactEditor mContactEditor;
private boolean mHasRecordedAbortReason;
private boolean mQueriedCanMakePayment;
- private CurrencyStringFormatter mFormatter;
+ private CurrencyFormatter mCurrencyFormatter;
/** True if any of the requested payment methods are supported. */
private boolean mArePaymentMethodsSupported;
@@ -326,6 +326,14 @@ public class PaymentRequestImpl
recordSuccessFunnelHistograms("Initiated");
}
+ protected void finalize() throws Throwable {
+ super.finalize();
+ if (mCurrencyFormatter != null) {
+ // Ensures the native implementation of currency formatter does not leak.
+ mCurrencyFormatter.destroy();
+ }
+ }
+
/**
* Called by the merchant website to initialize the payment request data.
*/
@@ -595,23 +603,23 @@ public class PaymentRequestImpl
return false;
}
- if (mFormatter == null) {
- mFormatter = new CurrencyStringFormatter(details.total.amount.currency,
- Locale.getDefault());
+ if (mCurrencyFormatter == null) {
+ mCurrencyFormatter = new CurrencyFormatter(details.total.amount.currency,
+ details.total.amount.currencySystem, Locale.getDefault());
}
// Total is never pending.
- LineItem uiTotal = new LineItem(
- details.total.label, mFormatter.getFormattedCurrencyCode(),
- mFormatter.format(details.total.amount.value), /* isPending */ false);
+ LineItem uiTotal = new LineItem(details.total.label,
+ mCurrencyFormatter.getFormattedCurrencyCode(),
+ mCurrencyFormatter.format(details.total.amount.value), /* isPending */ false);
- List<LineItem> uiLineItems = getLineItems(details.displayItems, mFormatter);
+ List<LineItem> uiLineItems = getLineItems(details.displayItems, mCurrencyFormatter);
mUiShoppingCart = new ShoppingCart(uiTotal, uiLineItems);
mRawTotal = details.total;
mRawLineItems = Collections.unmodifiableList(Arrays.asList(details.displayItems));
- mUiShippingOptions = getShippingOptions(details.shippingOptions, mFormatter);
+ mUiShippingOptions = getShippingOptions(details.shippingOptions, mCurrencyFormatter);
for (int i = 0; i < details.modifiers.length; i++) {
PaymentDetailsModifier modifier = details.modifiers[i];
@@ -636,8 +644,9 @@ public class PaymentRequestImpl
for (int i = 0; i < mPaymentMethodsSection.getSize(); i++) {
PaymentInstrument instrument = (PaymentInstrument) mPaymentMethodsSection.getItem(i);
PaymentDetailsModifier modifier = getModifier(instrument);
- instrument.setModifiedTotal(modifier == null || modifier.total == null ? null
- : mFormatter.format(modifier.total.amount.value));
+ instrument.setModifiedTotal(modifier == null || modifier.total == null
+ ? null
+ : mCurrencyFormatter.format(modifier.total.amount.value));
}
updateOrderSummary((PaymentInstrument) mPaymentMethodsSection.getSelectedItem());
@@ -651,10 +660,12 @@ public class PaymentRequestImpl
PaymentItem total = modifier == null ? null : modifier.total;
if (total == null) total = mRawTotal;
- mUiShoppingCart.setTotal(new LineItem(total.label, mFormatter.getFormattedCurrencyCode(),
- mFormatter.format(total.amount.value), false /* isPending */));
- mUiShoppingCart.setAdditionalContents(modifier == null ? null
- : getLineItems(modifier.additionalDisplayItems, mFormatter));
+ mUiShoppingCart.setTotal(
+ new LineItem(total.label, mCurrencyFormatter.getFormattedCurrencyCode(),
+ mCurrencyFormatter.format(total.amount.value), false /* isPending */));
+ mUiShoppingCart.setAdditionalContents(modifier == null
+ ? null
+ : getLineItems(modifier.additionalDisplayItems, mCurrencyFormatter));
mUI.updateOrderSummarySection(mUiShoppingCart);
}
@@ -674,7 +685,7 @@ public class PaymentRequestImpl
* @return A list of valid line items.
*/
private static List<LineItem> getLineItems(
- @Nullable PaymentItem[] items, CurrencyStringFormatter formatter) {
+ @Nullable PaymentItem[] items, CurrencyFormatter formatter) {
// Line items are optional.
if (items == null) return new ArrayList<>();
@@ -697,7 +708,7 @@ public class PaymentRequestImpl
* @return The UI representation of the shipping options.
*/
private static SectionInformation getShippingOptions(
- @Nullable PaymentShippingOption[] options, CurrencyStringFormatter formatter) {
+ @Nullable PaymentShippingOption[] options, CurrencyFormatter formatter) {
// Shipping options are optional.
if (options == null || options.length == 0) {
return new SectionInformation(PaymentRequestUI.TYPE_SHIPPING_OPTIONS);

Powered by Google App Engine
This is Rietveld 408576698