Index: ios/chrome/browser/ui/payments/credit_card_edit_view_controller.mm |
diff --git a/ios/chrome/browser/ui/payments/credit_card_edit_view_controller.mm b/ios/chrome/browser/ui/payments/credit_card_edit_view_controller.mm |
deleted file mode 100644 |
index 79b8ce458a664413571bd0ecd65e449a5192106c..0000000000000000000000000000000000000000 |
--- a/ios/chrome/browser/ui/payments/credit_card_edit_view_controller.mm |
+++ /dev/null |
@@ -1,213 +0,0 @@ |
-// Copyright 2017 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#import "ios/chrome/browser/ui/payments/credit_card_edit_view_controller.h" |
- |
-#import "base/mac/foundation_util.h" |
-#include "base/memory/ptr_util.h" |
-#include "components/strings/grit/components_strings.h" |
-#import "ios/chrome/browser/ui/autofill/autofill_ui_type.h" |
-#import "ios/chrome/browser/ui/autofill/cells/autofill_edit_item.h" |
-#import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrome.h" |
-#import "ios/chrome/browser/ui/collection_view/cells/collection_view_item+collection_view_controller.h" |
-#import "ios/chrome/browser/ui/collection_view/cells/collection_view_switch_item.h" |
-#import "ios/chrome/browser/ui/collection_view/collection_view_model.h" |
-#import "ios/chrome/browser/ui/payments/payment_request_edit_view_controller+internal.h" |
-#import "ios/chrome/browser/ui/payments/payment_request_editor_field.h" |
-#import "ios/chrome/browser/ui/uikit_ui_util.h" |
-#include "ui/base/l10n/l10n_util.h" |
- |
-#if !defined(__has_feature) || !__has_feature(objc_arc) |
-#error "This file requires ARC support." |
-#endif |
- |
-namespace { |
- |
-NSString* const kCreditCardEditCollectionViewId = |
- @"kCreditCardEditCollectionViewId"; |
- |
-typedef NS_ENUM(NSInteger, SectionIdentifier) { |
- SectionIdentifierSaveCard = kSectionIdentifierEnumStart, |
-}; |
- |
-typedef NS_ENUM(NSInteger, ItemType) { |
- ItemTypeSaveCard = kItemTypeEnumStart, |
-}; |
- |
-} // namespace |
- |
-@interface CreditCardEditViewController () { |
- // Indicates whether the credit card being created should be saved locally. |
- BOOL _saveCreditCard; |
-} |
- |
-// The list of field definitions for the editor. |
-@property(nonatomic, strong) NSArray<EditorField*>* fields; |
- |
-@end |
- |
-@implementation CreditCardEditViewController |
- |
-@synthesize delegate = _delegate; |
-@synthesize dataSource = _dataSource; |
-@synthesize fields = _fields; |
- |
-#pragma mark - Setters |
- |
-- (void)setDelegate:(id<CreditCardEditViewControllerDelegate>)delegate { |
- [super setDelegate:delegate]; |
- _delegate = delegate; |
-} |
- |
-- (void)setDataSource:(id<CreditCardEditViewControllerDataSource>)dataSource { |
- [super setDataSource:dataSource]; |
- _dataSource = dataSource; |
-} |
- |
-#pragma mark - PaymentRequestEditViewControllerActions methods |
- |
-- (void)onCancel { |
- [super onCancel]; |
- |
- [_delegate creditCardEditViewControllerDidCancel:self]; |
-} |
- |
-- (void)onDone { |
- [super onDone]; |
- |
- if (![self validateForm]) |
- return; |
- |
- [_delegate creditCardEditViewController:self |
- didFinishEditingFields:_fields |
- saveCreditCard:_saveCreditCard]; |
-} |
- |
-#pragma mark - CollectionViewController methods |
- |
-- (void)loadModel { |
- [super loadModel]; |
- |
- // If editing a credit card, set the card type icon (e.g. "Visa"). |
- if (_dataSource.state == EditViewControllerStateEdit) { |
- for (EditorField* field in _fields) { |
- if (field.autofillUIType == AutofillUITypeCreditCardNumber) { |
- AutofillEditItem* item = |
- base::mac::ObjCCastStrict<AutofillEditItem>(field.item); |
- item.identifyingIcon = |
- [_dataSource cardTypeIconFromCardNumber:item.textFieldValue]; |
- } |
- } |
- } |
-} |
- |
-- (void)loadFooterItems { |
- CollectionViewModel* model = self.collectionViewModel; |
- |
- // "Save card" section. Visible only when creating a card. |
- if (_dataSource.state == EditViewControllerStateCreate) { |
- [model addSectionWithIdentifier:SectionIdentifierSaveCard]; |
- CollectionViewSwitchItem* saveCardItem = |
- [[CollectionViewSwitchItem alloc] initWithType:ItemTypeSaveCard]; |
- saveCardItem.text = |
- l10n_util::GetNSString(IDS_PAYMENTS_SAVE_CARD_TO_DEVICE_CHECKBOX); |
- saveCardItem.on = YES; |
- [model addItem:saveCardItem |
- toSectionWithIdentifier:SectionIdentifierSaveCard]; |
- } |
- |
- [super loadFooterItems]; |
-} |
- |
-#pragma mark - UITextFieldDelegate |
- |
-// This method is called as the text is being typed in, pasted, or deleted. Asks |
-// the delegate if the text should be changed. Should always return YES. During |
-// typing/pasting text, |newText| contains one or more new characters. When user |
-// deletes text, |newText| is empty. |range| is the range of characters to be |
-// replaced. |
-- (BOOL)textField:(UITextField*)textField |
- shouldChangeCharactersInRange:(NSRange)range |
- replacementString:(NSString*)newText { |
- NSIndexPath* indexPath = [self indexPathForCurrentTextField]; |
- AutofillEditItem* item = base::mac::ObjCCastStrict<AutofillEditItem>( |
- [self.collectionViewModel itemAtIndexPath:indexPath]); |
- |
- // If the user is typing in the credit card number field, update the card type |
- // icon (e.g. "Visa") to reflect the number being typed. |
- if (item.autofillUIType == AutofillUITypeCreditCardNumber) { |
- // Obtain the text being typed. |
- NSString* updatedText = |
- [textField.text stringByReplacingCharactersInRange:range |
- withString:newText]; |
- item.identifyingIcon = [_dataSource cardTypeIconFromCardNumber:updatedText]; |
- |
- // Update the cell. |
- [self reconfigureCellsForItems:@[ item ]]; |
- } |
- |
- return YES; |
-} |
- |
-#pragma mark - UICollectionViewDataSource |
- |
-- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView |
- cellForItemAtIndexPath:(NSIndexPath*)indexPath { |
- UICollectionViewCell* cell = |
- [super collectionView:collectionView cellForItemAtIndexPath:indexPath]; |
- CollectionViewItem* item = |
- [self.collectionViewModel itemAtIndexPath:indexPath]; |
- |
- switch (item.type) { |
- case ItemTypeSaveCard: { |
- CollectionViewSwitchCell* switchCell = |
- base::mac::ObjCCastStrict<CollectionViewSwitchCell>(cell); |
- [switchCell.switchView addTarget:self |
- action:@selector(saveCardSwitchToggled:) |
- forControlEvents:UIControlEventValueChanged]; |
- break; |
- } |
- default: |
- break; |
- } |
- |
- return cell; |
-} |
- |
-#pragma mark MDCCollectionViewStylingDelegate |
- |
-- (CGFloat)collectionView:(UICollectionView*)collectionView |
- cellHeightAtIndexPath:(NSIndexPath*)indexPath { |
- CollectionViewItem* item = |
- [self.collectionViewModel itemAtIndexPath:indexPath]; |
- switch (item.type) { |
- case ItemTypeSaveCard: |
- return [MDCCollectionViewCell |
- cr_preferredHeightForWidth:CGRectGetWidth(collectionView.bounds) |
- forItem:item]; |
- default: |
- return |
- [super collectionView:collectionView cellHeightAtIndexPath:indexPath]; |
- } |
-} |
- |
-- (BOOL)collectionView:(UICollectionView*)collectionView |
- hidesInkViewAtIndexPath:(NSIndexPath*)indexPath { |
- NSInteger type = [self.collectionViewModel itemTypeForIndexPath:indexPath]; |
- switch (type) { |
- case ItemTypeSaveCard: |
- return YES; |
- default: |
- return [super collectionView:collectionView |
- hidesInkViewAtIndexPath:indexPath]; |
- } |
-} |
- |
-#pragma mark Switch Actions |
- |
-- (void)saveCardSwitchToggled:(UISwitch*)sender { |
- _saveCreditCard = sender.isOn; |
-} |
- |
-@end |