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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java

Issue 2640743005: PaymentApp: Implement invokePaymentApp for Android (Closed)
Patch Set: Fix a compile error 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 unified diff | Download patch
OLDNEW
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.content.Context; 7 import android.content.Context;
8 import android.graphics.drawable.Drawable; 8 import android.graphics.drawable.Drawable;
9 9
10 import org.chromium.base.annotations.CalledByNative; 10 import org.chromium.base.annotations.CalledByNative;
11 import org.chromium.base.annotations.SuppressFBWarnings; 11 import org.chromium.base.annotations.SuppressFBWarnings;
12 import org.chromium.content_public.browser.WebContents; 12 import org.chromium.content_public.browser.WebContents;
13 import org.chromium.payments.mojom.PaymentDetailsModifier;
14 import org.chromium.payments.mojom.PaymentItem;
13 import org.chromium.payments.mojom.PaymentMethodData; 15 import org.chromium.payments.mojom.PaymentMethodData;
14 16
15 import java.util.ArrayList; 17 import java.util.ArrayList;
16 import java.util.List; 18 import java.util.List;
17 import java.util.Set; 19 import java.util.Set;
18 20
19 /** 21 /**
20 * Native bridge for interacting with service worker based payment apps. 22 * Native bridge for interacting with service worker based payment apps.
21 */ 23 */
22 // TODO(tommyt): crbug.com/669876. Remove these suppressions when we actually 24 // TODO(tommyt): crbug.com/669876. Remove these suppressions when we actually
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 PaymentAppFactory.PaymentAppCreatedCallback callback) { 62 PaymentAppFactory.PaymentAppCreatedCallback callback) {
61 nativeGetAllAppManifests(webContents, callback); 63 nativeGetAllAppManifests(webContents, callback);
62 } 64 }
63 65
64 /** 66 /**
65 * Invoke a payment app with a given option and matching method data. 67 * Invoke a payment app with a given option and matching method data.
66 * 68 *
67 * @param webContents The web contents that invoked PaymentRequest. 69 * @param webContents The web contents that invoked PaymentRequest.
68 * @param registrationId The service worker registration ID of the Payment A pp. 70 * @param registrationId The service worker registration ID of the Payment A pp.
69 * @param optionId The ID of the PaymentOption that was selected by th e user. 71 * @param optionId The ID of the PaymentOption that was selected by th e user.
70 * @param methodDataSet The PaymentMethodData objects that are relevant for this payment 72 * @param methodData The PaymentMethodData objects that are relevant for this payment
71 * app. 73 * app.
74 * @param total The PaymentItem that represents the total cost of t he payment.
75 * @param modifiers Payment method specific modifiers to the payment it ems and the total.
72 */ 76 */
73 public static void invokePaymentApp(WebContents webContents, long registrati onId, 77 public static void invokePaymentApp(WebContents webContents, long registrati onId,
74 String optionId, Set<PaymentMethodData> methodDataSet) { 78 String optionId, String origin, Set<PaymentMethodData> methodData, P aymentItem total,
75 nativeInvokePaymentApp(webContents, registrationId, optionId, 79 List<PaymentItem> displayItems, Set<PaymentDetailsModifier> modifier s) {
76 methodDataSet.toArray(new PaymentMethodData[methodDataSet.size() ])); 80 nativeInvokePaymentApp(webContents, registrationId, optionId, origin,
81 methodData.toArray(new PaymentMethodData[0]), total,
82 modifiers.toArray(new PaymentDetailsModifier[0]));
77 } 83 }
78 84
79 @CalledByNative 85 @CalledByNative
80 private static Manifest createManifest(long registrationId, String label, St ring icon) { 86 private static Manifest createManifest(long registrationId, String label, St ring icon) {
81 Manifest manifest = new Manifest(); 87 Manifest manifest = new Manifest();
82 manifest.registrationId = registrationId; 88 manifest.registrationId = registrationId;
83 manifest.label = label; 89 manifest.label = label;
84 // TODO(tommyt): crbug.com/669876. Handle icons. 90 // TODO(tommyt): crbug.com/669876. Handle icons.
85 manifest.icon = null; 91 manifest.icon = null;
86 return manifest; 92 return manifest;
(...skipping 10 matching lines...) Expand all
97 manifest.options.add(option); 103 manifest.options.add(option);
98 return option; 104 return option;
99 } 105 }
100 106
101 @CalledByNative 107 @CalledByNative
102 private static void addEnabledMethod(Option option, String enabledMethod) { 108 private static void addEnabledMethod(Option option, String enabledMethod) {
103 option.enabledMethods.add(enabledMethod); 109 option.enabledMethods.add(enabledMethod);
104 } 110 }
105 111
106 @CalledByNative 112 @CalledByNative
113 private static String[] getSupportedMethodsFromMethodData(PaymentMethodData data) {
114 return data.supportedMethods;
115 }
116
117 @CalledByNative
118 private static String getStringifiedDataFromMethodData(PaymentMethodData dat a) {
119 return data.stringifiedData;
120 }
121
122 @CalledByNative
123 private static PaymentMethodData getMethodDataFromModifier(PaymentDetailsMod ifier modifier) {
124 return modifier.methodData;
125 }
126
127 @CalledByNative
128 private static PaymentItem getTotalFromModifier(PaymentDetailsModifier modif ier) {
129 return modifier.total;
130 }
131
132 @CalledByNative
133 private static String getLabelFromPaymentItem(PaymentItem item) {
134 return item.label;
135 }
136
137 @CalledByNative
138 private static String getCurrencyFromPaymentItem(PaymentItem item) {
139 return item.amount.currency;
140 }
141
142 @CalledByNative
143 private static String getValueFromPaymentItem(PaymentItem item) {
144 return item.amount.value;
145 }
146
147 @CalledByNative
107 private static void onGotManifest(Manifest manifest, WebContents webContents , Object callback) { 148 private static void onGotManifest(Manifest manifest, WebContents webContents , Object callback) {
108 assert callback instanceof PaymentAppFactory.PaymentAppCreatedCallback; 149 assert callback instanceof PaymentAppFactory.PaymentAppCreatedCallback;
109 ((PaymentAppFactory.PaymentAppCreatedCallback) callback) 150 ((PaymentAppFactory.PaymentAppCreatedCallback) callback)
110 .onPaymentAppCreated(new ServiceWorkerPaymentApp(webContents, ma nifest)); 151 .onPaymentAppCreated(new ServiceWorkerPaymentApp(webContents, ma nifest));
111 } 152 }
112 153
113 @CalledByNative 154 @CalledByNative
114 private static void onGotAllManifests(Object callback) { 155 private static void onGotAllManifests(Object callback) {
115 assert callback instanceof PaymentAppFactory.PaymentAppCreatedCallback; 156 assert callback instanceof PaymentAppFactory.PaymentAppCreatedCallback;
116 ((PaymentAppFactory.PaymentAppCreatedCallback) callback).onAllPaymentApp sCreated(); 157 ((PaymentAppFactory.PaymentAppCreatedCallback) callback).onAllPaymentApp sCreated();
117 } 158 }
118 159
119 /* 160 /*
120 * TODO(tommyt): crbug.com/505554. Change the |callback| parameter below to 161 * TODO(tommyt): crbug.com/505554. Change the |callback| parameter below to
121 * be of type PaymentAppFactory.PaymentAppCreatedCallback, once this JNI bug 162 * be of type PaymentAppFactory.PaymentAppCreatedCallback, once this JNI bug
122 * has been resolved. 163 * has been resolved.
123 */ 164 */
124 private static native void nativeGetAllAppManifests(WebContents webContents, Object callback); 165 private static native void nativeGetAllAppManifests(WebContents webContents, Object callback);
125 166
126 private static native void nativeInvokePaymentApp(WebContents webContents, l ong registrationId, 167 private static native void nativeInvokePaymentApp(WebContents webContents, l ong registrationId,
127 String optionId, PaymentMethodData[] methodData); 168 String optionId, String origin, PaymentMethodData[] methodData, Paym entItem total,
169 PaymentDetailsModifier[] modifiers);
128 } 170 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698