OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #include "chrome/browser/ui/views/payments/payment_sheet_view_controller.h" | 5 #include "chrome/browser/ui/views/payments/payment_sheet_view_controller.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <memory> | 9 #include <memory> |
10 #include <string> | 10 #include <string> |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
320 const base::string16& preview_text, | 320 const base::string16& preview_text, |
321 const base::string16& format_string, | 321 const base::string16& format_string, |
322 int n, | 322 int n, |
323 const base::string16& button_string, | 323 const base::string16& button_string, |
324 bool button_enabled) { | 324 bool button_enabled) { |
325 DCHECK(accessible_content_.empty()); | 325 DCHECK(accessible_content_.empty()); |
326 std::unique_ptr<PreviewEliderLabel> content_view = | 326 std::unique_ptr<PreviewEliderLabel> content_view = |
327 base::MakeUnique<PreviewEliderLabel>(preview_text, format_string, n, | 327 base::MakeUnique<PreviewEliderLabel>(preview_text, format_string, n, |
328 STYLE_HINT); | 328 STYLE_HINT); |
329 content_view->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 329 content_view->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
330 base::string16 accessible_content = | 330 return CreateWithButton(std::move(content_view), button_string, |
331 content_view->CreateElidedString(std::numeric_limits<int>::max()); | 331 button_enabled); |
332 return AccessibleContent(accessible_content) | |
333 .CreateWithButton(std::move(content_view), button_string, | |
334 button_enabled); | |
335 } | 332 } |
336 | 333 |
337 private: | 334 private: |
338 // Creates a row with a button in place of the chevron. | 335 // Creates a row with a button in place of the chevron. |
339 // +------------------------------------------+ | 336 // +------------------------------------------+ |
340 // | Name | content_view | button_string | | 337 // | Name | content_view | button_string | |
341 // +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ | 338 // +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ |
342 std::unique_ptr<views::Button> CreateWithButton( | 339 std::unique_ptr<views::Button> CreateWithButton( |
343 std::unique_ptr<views::View> content_view, | 340 std::unique_ptr<views::View> content_view, |
344 const base::string16& button_string, | 341 const base::string16& button_string, |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
665 // instead of the list. | 662 // instead of the list. |
666 builder.Tag(PaymentSheetViewControllerTags::ADD_SHIPPING_BUTTON); | 663 builder.Tag(PaymentSheetViewControllerTags::ADD_SHIPPING_BUTTON); |
667 return builder.CreateWithButton(base::string16(), | 664 return builder.CreateWithButton(base::string16(), |
668 l10n_util::GetStringUTF16(IDS_ADD), | 665 l10n_util::GetStringUTF16(IDS_ADD), |
669 /*button_enabled=*/true); | 666 /*button_enabled=*/true); |
670 } else if (state()->shipping_profiles().size() == 1) { | 667 } else if (state()->shipping_profiles().size() == 1) { |
671 base::string16 truncated_content = | 668 base::string16 truncated_content = |
672 GetShippingAddressLabelFormAutofillProfile( | 669 GetShippingAddressLabelFormAutofillProfile( |
673 *state()->shipping_profiles()[0], | 670 *state()->shipping_profiles()[0], |
674 state()->GetApplicationLocale()); | 671 state()->GetApplicationLocale()); |
675 return builder.AccessibleContent(truncated_content) | 672 return builder.CreateWithButton(truncated_content, |
676 .CreateWithButton(truncated_content, | 673 l10n_util::GetStringUTF16(IDS_CHOOSE), |
677 l10n_util::GetStringUTF16(IDS_CHOOSE), | 674 /*button_enabled=*/true); |
678 /*button_enabled=*/true); | |
679 } else { | 675 } else { |
680 base::string16 format = l10n_util::GetPluralStringFUTF16( | 676 base::string16 format = l10n_util::GetPluralStringFUTF16( |
681 IDS_PAYMENT_REQUEST_SHIPPING_ADDRESSES_PREVIEW, | 677 IDS_PAYMENT_REQUEST_SHIPPING_ADDRESSES_PREVIEW, |
682 state()->shipping_profiles().size() - 1); | 678 state()->shipping_profiles().size() - 1); |
683 base::string16 label = GetShippingAddressLabelFormAutofillProfile( | 679 base::string16 label = GetShippingAddressLabelFormAutofillProfile( |
684 *state()->shipping_profiles()[0], state()->GetApplicationLocale()); | 680 *state()->shipping_profiles()[0], state()->GetApplicationLocale()); |
685 return builder.CreateWithButton(label, format, | 681 return builder.CreateWithButton(label, format, |
686 state()->shipping_profiles().size() - 1, | 682 state()->shipping_profiles().size() - 1, |
687 l10n_util::GetStringUTF16(IDS_CHOOSE), | 683 l10n_util::GetStringUTF16(IDS_CHOOSE), |
688 /*button_enabled=*/true); | 684 /*button_enabled=*/true); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
727 std::unique_ptr<views::Label> selected_instrument_sublabel = | 723 std::unique_ptr<views::Label> selected_instrument_sublabel = |
728 base::MakeUnique<views::Label>(selected_instrument->GetSublabel()); | 724 base::MakeUnique<views::Label>(selected_instrument->GetSublabel()); |
729 selected_instrument_sublabel->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 725 selected_instrument_sublabel->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
730 layout->AddView(selected_instrument_sublabel.release()); | 726 layout->AddView(selected_instrument_sublabel.release()); |
731 | 727 |
732 std::unique_ptr<views::ImageView> card_icon_view = | 728 std::unique_ptr<views::ImageView> card_icon_view = |
733 CreateInstrumentIconView(selected_instrument->icon_resource_id(), | 729 CreateInstrumentIconView(selected_instrument->icon_resource_id(), |
734 selected_instrument->GetLabel()); | 730 selected_instrument->GetLabel()); |
735 card_icon_view->SetImageSize(gfx::Size(32, 20)); | 731 card_icon_view->SetImageSize(gfx::Size(32, 20)); |
736 | 732 |
737 return builder.Id(DialogViewID::PAYMENT_SHEET_PAYMENT_METHOD_SECTION) | 733 return builder.AccessibleContent(selected_instrument->GetLabel()) |
| 734 .Id(DialogViewID::PAYMENT_SHEET_PAYMENT_METHOD_SECTION) |
738 .CreateWithChevron(std::move(content_view), std::move(card_icon_view)); | 735 .CreateWithChevron(std::move(content_view), std::move(card_icon_view)); |
739 } else { | 736 } else { |
740 builder.Id(DialogViewID::PAYMENT_SHEET_PAYMENT_METHOD_SECTION_BUTTON); | 737 builder.Id(DialogViewID::PAYMENT_SHEET_PAYMENT_METHOD_SECTION_BUTTON); |
741 if (state()->available_instruments().empty()) { | 738 if (state()->available_instruments().empty()) { |
742 // If the button is "Add", navigate to the editor directly. | 739 // If the button is "Add", navigate to the editor directly. |
743 builder.Tag(PaymentSheetViewControllerTags::ADD_PAYMENT_METHOD_BUTTON); | 740 builder.Tag(PaymentSheetViewControllerTags::ADD_PAYMENT_METHOD_BUTTON); |
744 return builder.CreateWithButton(base::string16(), | 741 return builder.CreateWithButton(base::string16(), |
745 l10n_util::GetStringUTF16(IDS_ADD), | 742 l10n_util::GetStringUTF16(IDS_ADD), |
746 /*button_enabled=*/true); | 743 /*button_enabled=*/true); |
747 } else if (state()->available_instruments().size() == 1) { | 744 } else if (state()->available_instruments().size() == 1) { |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
802 builder.Tag(PaymentSheetViewControllerTags::ADD_CONTACT_INFO_BUTTON); | 799 builder.Tag(PaymentSheetViewControllerTags::ADD_CONTACT_INFO_BUTTON); |
803 return builder.CreateWithButton(base::string16(), | 800 return builder.CreateWithButton(base::string16(), |
804 l10n_util::GetStringUTF16(IDS_ADD), | 801 l10n_util::GetStringUTF16(IDS_ADD), |
805 /*button_enabled=*/true); | 802 /*button_enabled=*/true); |
806 } else if (state()->contact_profiles().size() == 1) { | 803 } else if (state()->contact_profiles().size() == 1) { |
807 base::string16 truncated_content = | 804 base::string16 truncated_content = |
808 state()->contact_profiles()[0]->ConstructInferredLabel( | 805 state()->contact_profiles()[0]->ConstructInferredLabel( |
809 {autofill::NAME_FULL, autofill::PHONE_HOME_WHOLE_NUMBER, | 806 {autofill::NAME_FULL, autofill::PHONE_HOME_WHOLE_NUMBER, |
810 autofill::EMAIL_ADDRESS}, | 807 autofill::EMAIL_ADDRESS}, |
811 3, state()->GetApplicationLocale()); | 808 3, state()->GetApplicationLocale()); |
812 return builder.AccessibleContent(truncated_content) | 809 return builder.CreateWithButton(truncated_content, |
813 .CreateWithButton(truncated_content, | 810 l10n_util::GetStringUTF16(IDS_CHOOSE), |
814 l10n_util::GetStringUTF16(IDS_CHOOSE), | 811 /*button_enabled=*/true); |
815 /*button_enabled=*/true); | |
816 } else { | 812 } else { |
817 base::string16 preview = | 813 base::string16 preview = |
818 state()->contact_profiles()[0]->ConstructInferredLabel( | 814 state()->contact_profiles()[0]->ConstructInferredLabel( |
819 {autofill::NAME_FULL, autofill::PHONE_HOME_WHOLE_NUMBER, | 815 {autofill::NAME_FULL, autofill::PHONE_HOME_WHOLE_NUMBER, |
820 autofill::EMAIL_ADDRESS}, | 816 autofill::EMAIL_ADDRESS}, |
821 6, state()->GetApplicationLocale()); | 817 6, state()->GetApplicationLocale()); |
822 base::string16 format = l10n_util::GetPluralStringFUTF16( | 818 base::string16 format = l10n_util::GetPluralStringFUTF16( |
823 IDS_PAYMENT_REQUEST_CONTACTS_PREVIEW, | 819 IDS_PAYMENT_REQUEST_CONTACTS_PREVIEW, |
824 state()->contact_profiles().size() - 1); | 820 state()->contact_profiles().size() - 1); |
825 return builder.CreateWithButton( | 821 return builder.CreateWithButton( |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
947 data_source_label->SetDefaultStyle(default_style); | 943 data_source_label->SetDefaultStyle(default_style); |
948 data_source_label->AddStyleRange( | 944 data_source_label->AddStyleRange( |
949 gfx::Range(link_begin, link_begin + link_length), | 945 gfx::Range(link_begin, link_begin + link_length), |
950 views::StyledLabel::RangeStyleInfo::CreateForLink()); | 946 views::StyledLabel::RangeStyleInfo::CreateForLink()); |
951 data_source_label->SizeToFit(0); | 947 data_source_label->SizeToFit(0); |
952 content_view->AddChildView(data_source_label.release()); | 948 content_view->AddChildView(data_source_label.release()); |
953 return content_view; | 949 return content_view; |
954 } | 950 } |
955 | 951 |
956 } // namespace payments | 952 } // namespace payments |
OLD | NEW |