| 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)));
|
| }
|
|
|