OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import "ios/chrome/browser/ui/payments/address_edit_mediator.h" | 5 #import "ios/chrome/browser/ui/payments/address_edit_mediator.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <memory> | 8 #include <memory> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
11 | 11 |
12 #include "base/callback.h" | 12 #include "base/callback.h" |
13 #include "base/logging.h" | 13 #include "base/logging.h" |
14 #include "base/memory/ptr_util.h" | 14 #include "base/memory/ptr_util.h" |
15 #include "base/strings/sys_string_conversions.h" | 15 #include "base/strings/sys_string_conversions.h" |
16 #include "base/values.h" | 16 #include "base/values.h" |
17 #include "components/autofill/core/browser/autofill_address_util.h" | 17 #include "components/autofill/core/browser/autofill_address_util.h" |
18 #include "components/autofill/core/browser/autofill_country.h" | 18 #include "components/autofill/core/browser/autofill_country.h" |
19 #include "components/autofill/core/browser/autofill_profile.h" | 19 #include "components/autofill/core/browser/autofill_profile.h" |
20 #include "components/autofill/core/browser/autofill_type.h" | 20 #include "components/autofill/core/browser/autofill_type.h" |
21 #include "components/autofill/core/browser/country_combobox_model.h" | 21 #include "components/autofill/core/browser/country_combobox_model.h" |
22 #include "components/autofill/core/browser/field_types.h" | 22 #include "components/autofill/core/browser/field_types.h" |
23 #include "components/autofill/core/browser/personal_data_manager.h" | 23 #include "components/autofill/core/browser/personal_data_manager.h" |
| 24 #include "components/payments/core/payment_request_data_util.h" |
24 #include "components/strings/grit/components_strings.h" | 25 #include "components/strings/grit/components_strings.h" |
25 #include "ios/chrome/browser/application_context.h" | 26 #include "ios/chrome/browser/application_context.h" |
26 #include "ios/chrome/browser/payments/payment_request.h" | 27 #include "ios/chrome/browser/payments/payment_request.h" |
27 #import "ios/chrome/browser/ui/autofill/autofill_ui_type.h" | 28 #import "ios/chrome/browser/ui/autofill/autofill_ui_type.h" |
28 #import "ios/chrome/browser/ui/autofill/autofill_ui_type_util.h" | 29 #import "ios/chrome/browser/ui/autofill/autofill_ui_type_util.h" |
29 #import "ios/chrome/browser/ui/payments/payment_request_edit_consumer.h" | 30 #import "ios/chrome/browser/ui/payments/payment_request_edit_consumer.h" |
30 #import "ios/chrome/browser/ui/payments/payment_request_editor_field.h" | 31 #import "ios/chrome/browser/ui/payments/payment_request_editor_field.h" |
31 #include "ios/chrome/grit/ios_strings.h" | 32 #include "ios/chrome/grit/ios_strings.h" |
32 #include "third_party/libaddressinput/messages.h" | 33 #include "third_party/libaddressinput/messages.h" |
33 #include "ui/base/l10n/l10n_util.h" | 34 #include "ui/base/l10n/l10n_util.h" |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 #pragma mark - CreditCardEditViewControllerDataSource | 113 #pragma mark - CreditCardEditViewControllerDataSource |
113 | 114 |
114 - (CollectionViewItem*)headerItem { | 115 - (CollectionViewItem*)headerItem { |
115 return nil; | 116 return nil; |
116 } | 117 } |
117 | 118 |
118 - (BOOL)shouldHideBackgroundForHeaderItem { | 119 - (BOOL)shouldHideBackgroundForHeaderItem { |
119 return NO; | 120 return NO; |
120 } | 121 } |
121 | 122 |
| 123 - (void)formatValueForEditorField:(EditorField*)field { |
| 124 if (field.autofillUIType == AutofillUITypeProfileHomePhoneWholeNumber) { |
| 125 field.value = |
| 126 base::SysUTF8ToNSString(payments::data_util::FormatPhoneForDisplay( |
| 127 base::SysNSStringToUTF8(field.value), |
| 128 base::SysNSStringToUTF8(self.selectedCountryCode))); |
| 129 } |
| 130 } |
| 131 |
122 - (UIImage*)iconIdentifyingEditorField:(EditorField*)field { | 132 - (UIImage*)iconIdentifyingEditorField:(EditorField*)field { |
123 return nil; | 133 return nil; |
124 } | 134 } |
125 | 135 |
126 #pragma mark - RegionDataLoaderConsumer | 136 #pragma mark - RegionDataLoaderConsumer |
127 | 137 |
128 - (void)regionDataLoaderDidSucceedWithRegions: | 138 - (void)regionDataLoaderDidSucceedWithRegions: |
129 (NSDictionary<NSString*, NSString*>*)regions { | 139 (NSDictionary<NSString*, NSString*>*)regions { |
130 // Enable the previously disabled field. | 140 // Enable the previously disabled field. |
131 self.regionField.enabled = YES; | 141 self.regionField.enabled = YES; |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 } | 302 } |
293 } | 303 } |
294 } | 304 } |
295 | 305 |
296 // Always add phone number field at the end. | 306 // Always add phone number field at the end. |
297 NSNumber* phoneNumberFieldKey = | 307 NSNumber* phoneNumberFieldKey = |
298 [NSNumber numberWithInt:AutofillUITypeProfileHomePhoneWholeNumber]; | 308 [NSNumber numberWithInt:AutofillUITypeProfileHomePhoneWholeNumber]; |
299 EditorField* field = self.fieldsMap[phoneNumberFieldKey]; | 309 EditorField* field = self.fieldsMap[phoneNumberFieldKey]; |
300 if (!field) { | 310 if (!field) { |
301 NSString* value = | 311 NSString* value = |
302 [self fieldValueFromProfile:self.address | 312 self.address |
303 fieldType:autofill::PHONE_HOME_WHOLE_NUMBER]; | 313 ? base::SysUTF16ToNSString( |
| 314 payments::data_util::GetFormattedPhoneNumberForDisplay( |
| 315 *self.address, |
| 316 GetApplicationContext()->GetApplicationLocale())) |
| 317 : nil; |
304 field = [[EditorField alloc] | 318 field = [[EditorField alloc] |
305 initWithAutofillUIType:AutofillUITypeProfileHomePhoneWholeNumber | 319 initWithAutofillUIType:AutofillUITypeProfileHomePhoneWholeNumber |
306 fieldType:EditorFieldTypeTextField | 320 fieldType:EditorFieldTypeTextField |
307 label:l10n_util::GetNSString(IDS_IOS_AUTOFILL_PHONE) | 321 label:l10n_util::GetNSString(IDS_IOS_AUTOFILL_PHONE) |
308 value:value | 322 value:value |
309 required:YES]; | 323 required:YES]; |
310 [self.fieldsMap setObject:field forKey:phoneNumberFieldKey]; | 324 [self.fieldsMap setObject:field forKey:phoneNumberFieldKey]; |
311 } | 325 } |
312 [self.fields addObject:field]; | 326 [self.fields addObject:field]; |
313 | 327 |
314 return self.fields; | 328 return self.fields; |
315 } | 329 } |
316 | 330 |
317 // Takes in an autofill profile and an autofill field type and returns the | 331 // Takes in an autofill profile and an autofill field type and returns the |
318 // corresponding field value. Returns nil if |profile| is nullptr. | 332 // corresponding field value. Returns nil if |profile| is nullptr. |
319 - (NSString*)fieldValueFromProfile:(autofill::AutofillProfile*)profile | 333 - (NSString*)fieldValueFromProfile:(autofill::AutofillProfile*)profile |
320 fieldType:(autofill::ServerFieldType)fieldType { | 334 fieldType:(autofill::ServerFieldType)fieldType { |
321 return profile ? base::SysUTF16ToNSString(profile->GetInfo( | 335 return profile ? base::SysUTF16ToNSString(profile->GetInfo( |
322 autofill::AutofillType(fieldType), | 336 autofill::AutofillType(fieldType), |
323 GetApplicationContext()->GetApplicationLocale())) | 337 GetApplicationContext()->GetApplicationLocale())) |
324 : nil; | 338 : nil; |
325 } | 339 } |
326 | 340 |
327 @end | 341 @end |
OLD | NEW |