Index: chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestWebDataService.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestWebDataService.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestWebDataService.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..757261ead3d69aeb86666261dec61ade8ef21b20 |
--- /dev/null |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestWebDataService.java |
@@ -0,0 +1,119 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.chrome.browser.payments; |
+ |
+import org.chromium.base.ThreadUtils; |
+import org.chromium.base.annotations.CalledByNative; |
+import org.chromium.base.annotations.JNINamespace; |
+import org.chromium.payments.mojom.WebAppManifestSection; |
+ |
+/** Java wrapper of the payment manifest web data service. */ |
+@JNINamespace("payments") |
+public class PaymentManifestWebDataService { |
+ /** Interface for the callback to invoke when getting data from the web data service. */ |
+ public interface PaymentManifestWebDataServiceCallback { |
+ /** |
+ * Called when getPaymentMethodManifest success. |
+ * |
+ * @param webAppsIds The web apps Ids in the payment method manifest. |
+ */ |
+ @CalledByNative("PaymentManifestWebDataServiceCallback") |
+ void onPaymentMethodManifestFetched(String[] webAppsIds); |
+ |
+ /** |
+ * Called when getPaymentWebAppManifest success. |
+ * |
+ * @param manifest The web app manifest sections. |
+ */ |
+ @CalledByNative("PaymentManifestWebDataServiceCallback") |
+ void onPaymentWebAppManifestFetched(WebAppManifestSection[] manifest); |
please use gerrit instead
2017/04/24 18:22:31
Can you define a simpler interface that hides the
gogerald1
2017/04/26 13:46:31
Distinguish them looks a little more consistent he
please use gerrit instead
2017/04/26 15:00:43
You're right that PaymentManifestDownloader has tw
gogerald1
2017/04/26 17:30:30
Acknowledged.
|
+ } |
+ |
+ private static PaymentManifestWebDataService sWebDataService; |
+ |
+ /** |
+ * Gets an instance of this class. |
+ * |
+ * @return An instance of PaymentManifestWebDataService. |
+ */ |
+ public static PaymentManifestWebDataService getInstance() { |
+ ThreadUtils.assertOnUiThread(); |
+ if (sWebDataService == null) { |
+ sWebDataService = new PaymentManifestWebDataService(); |
+ } |
+ return sWebDataService; |
+ } |
+ |
+ private final long mManifestWebDataServiceAndroid; |
please use gerrit instead
2017/04/24 18:22:31
Please put all member variables together.
gogerald1
2017/04/26 13:46:31
Done.
|
+ |
+ private PaymentManifestWebDataService() { |
+ mManifestWebDataServiceAndroid = nativeInit(); |
+ } |
+ |
+ /** |
+ * Gets the payment method's manifest. |
+ * |
+ * @param methodName The payment method name. |
+ * @param callback The callback to invoke when finishing the request. |
+ * @return True if the result will be returned through callback. |
+ */ |
+ public boolean getPaymentMethodManifest( |
+ String methodName, PaymentManifestWebDataServiceCallback callback) { |
+ return nativeGetPaymentMethodManifest(mManifestWebDataServiceAndroid, methodName, callback); |
+ } |
+ |
+ /** |
+ * Adds the supported web apps Ids of the method. |
please use gerrit instead
2017/04/24 18:22:31
s/web app Ids/Android app package names/g
Here an
gogerald1
2017/04/26 13:46:32
Done.
|
+ * |
+ * @param methodName The method name. |
+ * @param webAppsIds The supported web apps Ids. |
+ */ |
+ public void addPaymentMethodManifest(String methodName, String[] webAppsIds) { |
+ nativeAddPaymentMethodManifest(mManifestWebDataServiceAndroid, methodName, webAppsIds); |
+ } |
+ |
+ /** |
+ * Gets the payment web app's manifest. |
+ * |
+ * @param webAppId The id of the payment web app. |
please use gerrit instead
2017/04/24 18:22:31
s/webAppId/androidAppPackageName/ (or packageName)
gogerald1
2017/04/26 13:46:31
Done.
|
+ * @param callback The callback to invoke when finishing the request. |
+ * @return True if the result will be returned through callback. |
+ */ |
+ public boolean getPaymentWebAppManifest( |
+ String webAppId, PaymentManifestWebDataServiceCallback callback) { |
+ return nativeGetPaymentWebAppManifest(mManifestWebDataServiceAndroid, webAppId, callback); |
+ } |
+ |
+ @CalledByNative |
+ private static WebAppManifestSection[] createManifest(int numberOfsections) { |
+ return new WebAppManifestSection[numberOfsections]; |
+ } |
+ |
+ @CalledByNative |
+ private static void addSectionToManifest(WebAppManifestSection[] manifest, int sectionIndex, |
+ String id, long minVersion, int numberOfFingerprints) { |
+ manifest[sectionIndex] = new WebAppManifestSection(); |
+ manifest[sectionIndex].id = id; |
+ manifest[sectionIndex].minVersion = minVersion; |
+ manifest[sectionIndex].fingerprints = new byte[numberOfFingerprints][]; |
+ } |
+ |
+ @CalledByNative |
+ private static void addFingerprintToSection(WebAppManifestSection[] manifest, int sectionIndex, |
+ int fingerprintIndex, byte[] fingerprint) { |
+ manifest[sectionIndex].fingerprints[fingerprintIndex] = fingerprint; |
+ } |
+ |
+ private native long nativeInit(); |
please use gerrit instead
2017/04/24 18:22:31
If there's initialization, then you also need dest
gogerald1
2017/04/26 13:46:31
Done.
|
+ private native boolean nativeGetPaymentMethodManifest( |
+ long nativePaymentManifestWebDataServiceAndroid, String methodName, |
+ PaymentManifestWebDataServiceCallback callback); |
+ private native void nativeAddPaymentMethodManifest( |
+ long nativePaymentManifestWebDataServiceAndroid, String methodName, |
+ String[] webAppsIds); |
+ private native boolean nativeGetPaymentWebAppManifest( |
please use gerrit instead
2017/04/24 18:22:31
Can you group the "Get" methods together?
gogerald1
2017/04/26 13:46:32
Done.
|
+ long nativePaymentManifestWebDataServiceAndroid, String webAppId, |
+ PaymentManifestWebDataServiceCallback callback); |
+} |