Commit 0fa2d6ec authored by Liquan (Max) Gu's avatar Liquan (Max) Gu Committed by Commit Bot

[PRImpl] Move merchantSupportsBasicCard from AutofillPaymentAppFactory to BasicCardUtils

Purpose:
In order to compute merchantSupportsBasicCard(), the business logic
, in //components, I am moving it from AutofillPaymentAppFactory into
BasicCardUtils, and move BasicCardUtils into //components.

Bug: 1106563

Change-Id: Ie245648b585dea807c28bb0029388286cc1398b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2407238
Commit-Queue: Liquan (Max) Gu <maxlg@chromium.org>
Reviewed-by: default avatarSahel Sharify <sahel@chromium.org>
Reviewed-by: default avatarPeter Wen <wnwen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#807449}
parent c887a55d
......@@ -526,7 +526,6 @@ android_library("chrome_java") {
"//components/ntp_snippets:ntp_snippets_java_enums_srcjar",
"//components/ntp_tiles:ntp_tiles_enums_java",
"//components/offline_pages/core:offline_page_model_enums_java",
"//components/payments/content/android:method_strings_generated_srcjar",
"//components/search_engines:search_engine_type_java",
"//components/ui_metrics:ui_metrics_enums_java",
"//net:effective_connection_type_java",
......
......@@ -1251,7 +1251,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/payments/AutofillPaymentAppCreator.java",
"java/src/org/chromium/chrome/browser/payments/AutofillPaymentAppFactory.java",
"java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java",
"java/src/org/chromium/chrome/browser/payments/BasicCardUtils.java",
"java/src/org/chromium/chrome/browser/payments/CardEditor.java",
"java/src/org/chromium/chrome/browser/payments/ContactEditor.java",
"java/src/org/chromium/chrome/browser/payments/PaymentAppFactoryDelegate.java",
......
......@@ -48,6 +48,7 @@ android_library("java") {
"//components/browser_ui/android/bottomsheet:java",
"//components/browser_ui/modaldialog/android:java",
"//components/browser_ui/widget/android:java",
"//components/payments/content/android:java",
"//components/policy/android:policy_java",
"//components/signin/core/browser/android:java",
"//components/signin/public/android:java",
......
......@@ -4,6 +4,7 @@ include_rules = [
"+chrome/browser/ui/messages/android/java",
"+components/autofill/android",
"+components/browser_ui/widget/android",
"+components/payments/content/android",
"+content/public/android/java/src/org/chromium/content_public/browser",
"+content/public/android/java/src/org/chromium/content/browser/input",
"+content/public/android/java/src/org/chromium/content/browser/picker",
......
......@@ -20,10 +20,10 @@ import org.chromium.chrome.browser.payments.AddressEditor;
import org.chromium.chrome.browser.payments.AutofillAddress;
import org.chromium.chrome.browser.payments.AutofillContact;
import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
import org.chromium.chrome.browser.payments.BasicCardUtils;
import org.chromium.chrome.browser.payments.CardEditor;
import org.chromium.chrome.browser.payments.ContactEditor;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.components.payments.BasicCardUtils;
import org.chromium.components.payments.MethodStrings;
import org.chromium.content_public.browser.UiThreadTaskTraits;
import org.chromium.content_public.browser.WebContents;
......
......@@ -12,6 +12,7 @@ import androidx.annotation.Nullable;
import org.chromium.chrome.browser.autofill.PersonalDataManager;
import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard;
import org.chromium.components.payments.BasicCardUtils;
import org.chromium.components.payments.MethodStrings;
import org.chromium.components.payments.PaymentApp;
import org.chromium.components.payments.PaymentAppFactoryParams;
......@@ -106,21 +107,6 @@ public class AutofillPaymentAppFactory implements PaymentAppFactoryInterface {
}
}
/** @return True if the merchant methodDataMap supports basic card payment method. */
public static boolean merchantSupportsBasicCard(Map<String, PaymentMethodData> methodDataMap) {
assert methodDataMap != null;
PaymentMethodData basicCardData = methodDataMap.get(MethodStrings.BASIC_CARD);
if (basicCardData != null) {
Set<String> basicCardNetworks =
BasicCardUtils.convertBasicCardToNetworks(basicCardData);
if (basicCardNetworks != null && !basicCardNetworks.isEmpty()) return true;
}
// Card issuer networks as payment method names was removed in Chrome 77.
// https://www.chromestatus.com/feature/5725727580225536
return false;
}
/**
* Checks for usable Autofill card on file.
*
......
......@@ -19,6 +19,7 @@ import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard;
import org.chromium.chrome.browser.autofill.PersonalDataManager.FullCardRequestDelegate;
import org.chromium.chrome.browser.autofill.PersonalDataManager.NormalizedAddressRequestDelegate;
import org.chromium.components.payments.BasicCardUtils;
import org.chromium.components.payments.ErrorStrings;
import org.chromium.components.payments.PayerData;
import org.chromium.components.payments.PaymentApp;
......
......@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.autofill.prefeditor.EditorFieldModel.EditorVa
import org.chromium.chrome.browser.autofill.prefeditor.EditorModel;
import org.chromium.chrome.browser.autofill.settings.AutofillProfileBridge.DropdownKeyValue;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.components.payments.BasicCardUtils;
import org.chromium.components.payments.ComponentPaymentRequestImpl;
import org.chromium.components.payments.MethodStrings;
import org.chromium.content_public.browser.WebContents;
......
......@@ -27,7 +27,6 @@ import org.chromium.chrome.browser.payments.AddressEditor;
import org.chromium.chrome.browser.payments.AutofillAddress;
import org.chromium.chrome.browser.payments.AutofillContact;
import org.chromium.chrome.browser.payments.AutofillPaymentAppCreator;
import org.chromium.chrome.browser.payments.AutofillPaymentAppFactory;
import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
import org.chromium.chrome.browser.payments.CardEditor;
import org.chromium.chrome.browser.payments.ContactEditor;
......@@ -52,6 +51,7 @@ import org.chromium.chrome.browser.ui.favicon.FaviconHelper;
import org.chromium.components.autofill.Completable;
import org.chromium.components.autofill.EditableOption;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerProvider;
import org.chromium.components.payments.BasicCardUtils;
import org.chromium.components.payments.CurrencyFormatter;
import org.chromium.components.payments.ErrorStrings;
import org.chromium.components.payments.JourneyLogger;
......@@ -561,7 +561,7 @@ public class PaymentUIsManager implements SettingsAutofillAndPaymentsObserver.Ob
public void onPaymentRequestParamsInitiated(PaymentRequestParams params) {
// Checks whether the merchant supports autofill cards before show is called.
mMerchantSupportsAutofillCards =
AutofillPaymentAppFactory.merchantSupportsBasicCard(params.getMethodData());
BasicCardUtils.merchantSupportsBasicCard(params.getMethodData());
// If in strict mode, don't give user an option to add an autofill card during the checkout
// to avoid the "unhappy" basic-card flow.
......
......@@ -78,6 +78,7 @@ android_library("java") {
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
sources = [
"java/src/org/chromium/components/payments/Address.java",
"java/src/org/chromium/components/payments/BasicCardUtils.java",
"java/src/org/chromium/components/payments/BrowserPaymentRequest.java",
"java/src/org/chromium/components/payments/CanMakePaymentQuery.java",
"java/src/org/chromium/components/payments/ComponentPaymentRequestImpl.java",
......@@ -136,6 +137,7 @@ android_library("java") {
]
srcjar_deps = [
":error_strings_generated_srcjar",
":method_strings_generated_srcjar",
":payment_app_type_generated_enum",
":payment_details_update_service_aidl",
":payments_journey_logger_enum_javagen",
......
......@@ -2,7 +2,7 @@
// 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;
package org.chromium.components.payments;
import org.chromium.payments.mojom.BasicCardNetwork;
import org.chromium.payments.mojom.PaymentMethodData;
......@@ -73,5 +73,19 @@ public class BasicCardUtils {
return networksByString;
}
/** @return True if the merchant methodDataMap supports basic card payment method. */
public static boolean merchantSupportsBasicCard(Map<String, PaymentMethodData> methodDataMap) {
assert methodDataMap != null;
PaymentMethodData basicCardData = methodDataMap.get(MethodStrings.BASIC_CARD);
if (basicCardData != null) {
Set<String> basicCardNetworks = convertBasicCardToNetworks(basicCardData);
if (basicCardNetworks != null && !basicCardNetworks.isEmpty()) return true;
}
// Card issuer networks as payment method names was removed in Chrome 77.
// https://www.chromestatus.com/feature/5725727580225536
return false;
}
private BasicCardUtils() {}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment