Index: chrome/browser/android/payments/service_worker_payment_app_bridge.cc |
diff --git a/chrome/browser/android/payments/service_worker_payment_app_bridge.cc b/chrome/browser/android/payments/service_worker_payment_app_bridge.cc |
index 1b0587dda50d9722b10cc483f0d14371e74f417b..ca5276864bd4e9c08e319456a03d623586ff781c 100644 |
--- a/chrome/browser/android/payments/service_worker_payment_app_bridge.cc |
+++ b/chrome/browser/android/payments/service_worker_payment_app_bridge.cc |
@@ -23,6 +23,7 @@ using base::android::JavaParamRef; |
using base::android::JavaRef; |
using base::android::ScopedJavaGlobalRef; |
using base::android::ScopedJavaLocalRef; |
+using base::android::ToJavaArrayOfStrings; |
using payments::mojom::PaymentAppRequest; |
using payments::mojom::PaymentAppRequestPtr; |
using payments::mojom::PaymentCurrencyAmount; |
@@ -34,36 +35,25 @@ using payments::mojom::PaymentMethodDataPtr; |
namespace { |
-void OnGotAllManifests(const JavaRef<jobject>& jweb_contents, |
- const JavaRef<jobject>& jcallback, |
- content::PaymentAppProvider::Manifests manifests) { |
+void OnGotAllPaymentApps(const JavaRef<jobject>& jweb_contents, |
+ const JavaRef<jobject>& jcallback, |
+ content::PaymentAppProvider::PaymentApps apps) { |
JNIEnv* env = AttachCurrentThread(); |
- for (const auto& entry : manifests) { |
- ScopedJavaLocalRef<jobject> java_manifest = |
- Java_ServiceWorkerPaymentAppBridge_createManifest( |
- env, entry.first, ConvertUTF8ToJavaString(env, entry.second->name), |
- entry.second->icon |
- ? ConvertUTF8ToJavaString(env, *entry.second->icon) |
- : nullptr); |
- for (const auto& option : entry.second->options) { |
- ScopedJavaLocalRef<jobject> java_option = |
- Java_ServiceWorkerPaymentAppBridge_createAndAddOption( |
- env, java_manifest, ConvertUTF8ToJavaString(env, option->id), |
- ConvertUTF8ToJavaString(env, option->name), |
- option->icon ? ConvertUTF8ToJavaString(env, *option->icon) |
- : nullptr); |
- for (const auto& enabled_method : option->enabled_methods) { |
- Java_ServiceWorkerPaymentAppBridge_addEnabledMethod( |
- env, java_option, ConvertUTF8ToJavaString(env, enabled_method)); |
- } |
+ for (const auto& app_info : apps) { |
+ ScopedJavaLocalRef<jobject> java_instruments = |
+ Java_ServiceWorkerPaymentAppBridge_createInstrumentList(env); |
+ for (const auto& instrument : app_info.second) { |
+ Java_ServiceWorkerPaymentAppBridge_addInstrument( |
+ env, java_instruments, jweb_contents, instrument->registration_id, |
+ ConvertUTF8ToJavaString(env, instrument->instrument_key), |
+ ConvertUTF8ToJavaString(env, instrument->name), |
+ ToJavaArrayOfStrings(env, instrument->enabled_methods)); |
} |
- |
- Java_ServiceWorkerPaymentAppBridge_onGotManifest(env, java_manifest, |
- jweb_contents, jcallback); |
+ Java_ServiceWorkerPaymentAppBridge_onPaymentAppCreated( |
+ env, java_instruments, jweb_contents, jcallback); |
} |
- |
- Java_ServiceWorkerPaymentAppBridge_onGotAllManifests(env, jcallback); |
+ Java_ServiceWorkerPaymentAppBridge_onAllPaymentAppsCreated(env, jcallback); |
} |
void OnPaymentAppInvoked(const JavaRef<jobject>& jweb_contents, |
@@ -78,18 +68,18 @@ void OnPaymentAppInvoked(const JavaRef<jobject>& jweb_contents, |
} // namespace |
-static void GetAllAppManifests(JNIEnv* env, |
- const JavaParamRef<jclass>& jcaller, |
- const JavaParamRef<jobject>& jweb_contents, |
- const JavaParamRef<jobject>& jcallback) { |
+static void GetAllPaymentApps(JNIEnv* env, |
+ const JavaParamRef<jclass>& jcaller, |
+ const JavaParamRef<jobject>& jweb_contents, |
+ const JavaParamRef<jobject>& jcallback) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
content::WebContents* web_contents = |
content::WebContents::FromJavaWebContents(jweb_contents); |
- content::PaymentAppProvider::GetInstance()->GetAllManifests( |
+ content::PaymentAppProvider::GetInstance()->GetAllPaymentApps( |
web_contents->GetBrowserContext(), |
- base::Bind(&OnGotAllManifests, |
+ base::Bind(&OnGotAllPaymentApps, |
ScopedJavaGlobalRef<jobject>(env, jweb_contents), |
ScopedJavaGlobalRef<jobject>(env, jcallback))); |
} |