Index: ios/chrome/browser/payments/credit_card_edit_mediator.mm |
diff --git a/ios/chrome/browser/payments/credit_card_edit_mediator.mm b/ios/chrome/browser/payments/credit_card_edit_mediator.mm |
index 9a9bdb994608ff2d80832f2dad44547d46de3eb3..27668908d23ecb6869a60f872ab31d7f377a734b 100644 |
--- a/ios/chrome/browser/payments/credit_card_edit_mediator.mm |
+++ b/ios/chrome/browser/payments/credit_card_edit_mediator.mm |
@@ -12,6 +12,7 @@ |
#import "components/autofill/ios/browser/credit_card_util.h" |
#include "components/strings/grit/components_strings.h" |
#include "ios/chrome/browser/application_context.h" |
+#import "ios/chrome/browser/payments/cells/accepted_payment_methods_item.h" |
#import "ios/chrome/browser/payments/cells/payment_method_item.h" |
#include "ios/chrome/browser/payments/payment_request.h" |
#import "ios/chrome/browser/payments/payment_request_editor_field.h" |
@@ -27,9 +28,11 @@ |
namespace { |
using ::AutofillUITypeFromAutofillType; |
+using ::autofill::data_util::GetCardTypeForBasicCardPaymentType; |
+using ::autofill::data_util::GetPaymentRequestData; |
using ::payment_request_util::GetBillingAddressLabelFromAutofillProfile; |
-const CGFloat kCardTypeIconDimension = 25.0; |
+const CGFloat kCardTypeIconDimension = 20.0; |
} // namespace |
@interface CreditCardEditViewControllerMediator () |
@@ -66,6 +69,7 @@ const CGFloat kCardTypeIconDimension = 25.0; |
} |
- (CollectionViewItem*)serverCardSummaryItem { |
+ // Return nil if creating or editing a local card. |
if (!_creditCard || autofill::IsCreditCardLocal(*_creditCard)) |
return nil; |
@@ -81,6 +85,35 @@ const CGFloat kCardTypeIconDimension = 25.0; |
return cardSummaryItem; |
} |
+- (CollectionViewItem*)acceptedPaymentMethodsItem { |
+ // Return nil if a server card is being edited. |
+ if (_creditCard && !autofill::IsCreditCardLocal(*_creditCard)) |
+ return nil; |
+ |
+ NSMutableArray* cardTypeIcons = [NSMutableArray array]; |
+ for (const auto& supportedNetwork : |
+ _paymentRequest->supported_card_networks()) { |
+ const std::string cardType = |
+ GetCardTypeForBasicCardPaymentType(supportedNetwork); |
+ const autofill::data_util::PaymentRequestData& cardData = |
+ GetPaymentRequestData(cardType); |
+ UIImage* cardTypeIcon = |
+ ResizeImage(NativeImage(cardData.icon_resource_id), |
+ CGSizeMake(kCardTypeIconDimension, kCardTypeIconDimension), |
+ ProjectionMode::kAspectFillNoClipping); |
+ cardTypeIcon.accessibilityLabel = |
+ l10n_util::GetNSString(cardData.a11y_label_resource_id); |
+ [cardTypeIcons addObject:cardTypeIcon]; |
+ } |
+ |
+ AcceptedPaymentMethodsItem* acceptedMethodsItem = |
+ [[AcceptedPaymentMethodsItem alloc] init]; |
+ acceptedMethodsItem.message = |
+ l10n_util::GetNSString(IDS_PAYMENTS_ACCEPTED_CARDS_LABEL); |
+ acceptedMethodsItem.methodTypeIcons = cardTypeIcons; |
+ return acceptedMethodsItem; |
+} |
+ |
- (NSString*)billingAddressLabelForProfileWithGUID:(NSString*)profileGUID { |
DCHECK(profileGUID); |
autofill::AutofillProfile* profile = |