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

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

Issue 2556753002: PaymentApp: Implement the JNI bridge (Closed)
Patch Set: Rebase and address Ted's comment 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/browser/BUILD.gn » ('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/ServiceWorkerPaymentAppBridge.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java
index 5f25aae1b648c7f1806fbaad2d545ff2210a8435..46cf672f57624db40aa62430df27a7132c158c82 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java
@@ -8,19 +8,22 @@ import android.content.Context;
import android.graphics.drawable.Drawable;
import org.chromium.base.VisibleForTesting;
+import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.SuppressFBWarnings;
import org.chromium.content_public.browser.WebContents;
+import org.chromium.payments.mojom.PaymentMethodData;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
/**
* Native bridge for interacting with service worker based payment apps.
*/
// TODO(tommyt): crbug.com/669876. Remove these suppressions when we actually
// start using all of the functionality in this class.
-@SuppressFBWarnings(
- {"UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD", "UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD"})
+@SuppressFBWarnings({"UWF_NULL_FIELD", "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD",
+ "UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD", "UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD"})
public class ServiceWorkerPaymentAppBridge implements PaymentAppFactory.PaymentAppFactoryAddition {
/**
* This class represents a payment app manifest as defined in the Payment
@@ -62,8 +65,7 @@ public class ServiceWorkerPaymentAppBridge implements PaymentAppFactory.PaymentA
*/
@VisibleForTesting
protected List<Manifest> getAllAppManifests() {
- // TODO(tommyt): crbug.com/669876. Implement this function.
- return new ArrayList<Manifest>();
+ return nativeGetAllAppManifests();
}
@Override
@@ -75,4 +77,50 @@ public class ServiceWorkerPaymentAppBridge implements PaymentAppFactory.PaymentA
}
callback.onAllPaymentAppsCreated();
}
+
+ /**
+ * Invoke a payment app with a given option and matching method data.
+ */
+ public void invokePaymentapp(
+ String scopeUrl, String optionId, Map<String, PaymentMethodData> methodData) {
+ nativeInvokePaymentApp(scopeUrl, optionId, methodData);
+ }
+
+ @CalledByNative
+ private static List<Manifest> createManifestList() {
+ return new ArrayList<Manifest>();
+ }
+
+ @CalledByNative
+ private static Manifest createAndAddManifest(
+ List<Manifest> manifestList, String scopeUrl, String label, String icon) {
+ Manifest manifest = new Manifest();
+ manifest.scopeUrl = scopeUrl;
+ manifest.label = label;
+ // TODO(tommyt): crbug.com/669876. Handle icons.
+ manifest.icon = null;
+ manifestList.add(manifest);
+ return manifest;
+ }
+
+ @CalledByNative
+ private static Option createAndAddOption(
+ Manifest manifest, String id, String label, String icon) {
+ Option option = new Option();
+ option.id = id;
+ option.label = label;
+ // TODO(tommyt): crbug.com/669876. Handle icons.
+ option.icon = null;
+ manifest.options.add(option);
+ return option;
+ }
+
+ @CalledByNative
+ private static void addEnabledMethod(Option option, String enabledMethod) {
+ option.enabledMethods.add(enabledMethod);
+ }
+
+ private static native List<Manifest> nativeGetAllAppManifests();
+ private static native void nativeInvokePaymentApp(
+ String scopeUrl, String optionId, Object methodDataMap);
}
« no previous file with comments | « no previous file | chrome/browser/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698