Chromium Code Reviews| Index: chrome/browser/ui/views/payments/payment_sheet_view_controller.cc |
| diff --git a/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc b/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc |
| index 5b1eba8f80a517d577ffe3c92fe8f5fd24a98271..b6d15fd4d6bd360765f6d9672e25c347b2484271 100644 |
| --- a/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc |
| +++ b/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc |
| @@ -194,10 +194,8 @@ PaymentSheetViewController::PaymentSheetViewController( |
| PaymentRequestState* state, |
| PaymentRequestDialogView* dialog) |
| : PaymentRequestSheetController(spec, state, dialog), |
| - container_view_(base::MakeUnique<views::View>()), |
| pay_button_(nullptr), |
| widest_name_column_view_width_(ComputeWidestNameColumnViewWidth()) { |
| - container_view_->set_owned_by_client(); |
| state->AddObserver(this); |
| } |
| @@ -205,25 +203,9 @@ PaymentSheetViewController::~PaymentSheetViewController() { |
| state()->RemoveObserver(this); |
| } |
| -std::unique_ptr<views::View> PaymentSheetViewController::CreateView() { |
| - std::unique_ptr<views::View> content_view = base::MakeUnique<views::View>(); |
| - content_view->SetLayoutManager(new views::FillLayout); |
| - |
| - UpdateContentView(); |
| - content_view->AddChildView(container_view_.get()); |
| - |
| - return CreatePaymentView( |
| - CreateSheetHeaderView( |
| - false, |
| - l10n_util::GetStringUTF16(IDS_PAYMENT_REQUEST_PAYMENT_SHEET_TITLE), |
| - this), |
| - std::move(content_view)); |
| -} |
| - |
| void PaymentSheetViewController::OnSelectedInformationChanged() { |
| UpdatePayButtonState(state()->is_ready_to_pay()); |
| UpdateContentView(); |
| - container_view_->Layout(); |
| } |
| std::unique_ptr<views::Button> |
| @@ -238,6 +220,40 @@ PaymentSheetViewController::CreatePrimaryButton() { |
| return button; |
| } |
| +bool PaymentSheetViewController::ShouldShowHeaderBackArrow() { |
| + return false; |
| +} |
| + |
| +base::string16 PaymentSheetViewController::GetSheetTitle() { |
| + return l10n_util::GetStringUTF16(IDS_PAYMENT_REQUEST_PAYMENT_SHEET_TITLE); |
| +} |
| + |
| +void PaymentSheetViewController::FillContentView(views::View* content_view) { |
| + views::GridLayout* layout = new views::GridLayout(content_view); |
| + content_view->SetLayoutManager(layout); |
| + views::ColumnSet* columns = layout->AddColumnSet(0); |
| + columns->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER, 1, |
| + views::GridLayout::USE_PREF, 0, 0); |
| + |
| + // The shipping address and contact info rows are optional. |
| + layout->StartRow(0, 0); |
| + layout->AddView(CreatePaymentSheetSummaryRow().release()); |
| + |
| + if (spec()->request_shipping()) { |
| + layout->StartRow(0, 0); |
| + layout->AddView(CreateShippingRow().release()); |
| + layout->StartRow(0, 0); |
| + layout->AddView(CreateShippingOptionRow().release()); |
| + } |
| + layout->StartRow(0, 0); |
| + layout->AddView(CreatePaymentMethodRow().release()); |
| + if (spec()->request_payer_name() || spec()->request_payer_email() || |
| + spec()->request_payer_phone()) { |
| + layout->StartRow(0, 0); |
| + layout->AddView(CreateContactInfoRow().release()); |
| + } |
| +} |
| + |
| // Adds the product logo to the footer. |
| // +---------------------------------------------------------+ |
| // | (•) chrome | PAY | CANCEL | |
| @@ -303,33 +319,6 @@ void PaymentSheetViewController::UpdatePayButtonState(bool enabled) { |
| pay_button_->SetEnabled(enabled); |
| } |
| -void PaymentSheetViewController::UpdateContentView() { |
|
Mathieu
2017/03/23 11:36:45
yisss
anthonyvd
2017/03/23 16:18:11
Yeah, this is much cleaner for all sheets!
|
| - container_view_->RemoveAllChildViews(/*delete_children=*/true); |
| - views::GridLayout* layout = new views::GridLayout(container_view_.get()); |
| - container_view_->SetLayoutManager(layout); |
| - views::ColumnSet* columns = layout->AddColumnSet(0); |
| - columns->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER, 1, |
| - views::GridLayout::USE_PREF, 0, 0); |
| - |
| - // The shipping address and contact info rows are optional. |
| - layout->StartRow(0, 0); |
| - layout->AddView(CreatePaymentSheetSummaryRow().release()); |
| - |
| - if (spec()->request_shipping()) { |
| - layout->StartRow(0, 0); |
| - layout->AddView(CreateShippingRow().release()); |
| - layout->StartRow(0, 0); |
| - layout->AddView(CreateShippingOptionRow().release()); |
| - } |
| - layout->StartRow(0, 0); |
| - layout->AddView(CreatePaymentMethodRow().release()); |
| - if (spec()->request_payer_name() || spec()->request_payer_email() || |
| - spec()->request_payer_phone()) { |
| - layout->StartRow(0, 0); |
| - layout->AddView(CreateContactInfoRow().release()); |
| - } |
| -} |
| - |
| // Creates the Order Summary row, which contains an "Order Summary" label, |
| // an inline list of display items, a Total Amount label, and a Chevron. |
| // +----------------------------------------------+ |