| Index: chrome/browser/ui/views/payments/payment_method_view_controller.cc
|
| diff --git a/chrome/browser/ui/views/payments/payment_method_view_controller.cc b/chrome/browser/ui/views/payments/payment_method_view_controller.cc
|
| index e940bb7178cf2f3e54660397f78408f9993c07c8..2660e0483a0b3eace801d06bb479a7fbe6ee620e 100644
|
| --- a/chrome/browser/ui/views/payments/payment_method_view_controller.cc
|
| +++ b/chrome/browser/ui/views/payments/payment_method_view_controller.cc
|
| @@ -49,9 +49,11 @@ class PaymentMethodListItem : public payments::PaymentRequestItemList::Item {
|
| PaymentRequestSpec* spec,
|
| PaymentRequestState* state,
|
| PaymentRequestItemList* list,
|
| + PaymentRequestDialogView* dialog,
|
| bool selected)
|
| : payments::PaymentRequestItemList::Item(spec, state, list, selected),
|
| - instrument_(instrument) {}
|
| + instrument_(instrument),
|
| + dialog_(dialog) {}
|
| ~PaymentMethodListItem() override {}
|
|
|
| private:
|
| @@ -84,7 +86,10 @@ class PaymentMethodListItem : public payments::PaymentRequestItemList::Item {
|
| }
|
|
|
| void SelectedStateChanged() override {
|
| - state()->SetSelectedInstrument(instrument_);
|
| + if (selected()) {
|
| + state()->SetSelectedInstrument(instrument_);
|
| + dialog_->GoBack();
|
| + }
|
| }
|
|
|
| bool CanBeSelected() const override {
|
| @@ -97,7 +102,7 @@ class PaymentMethodListItem : public payments::PaymentRequestItemList::Item {
|
| }
|
|
|
| PaymentInstrument* instrument_;
|
| - std::unique_ptr<views::ImageView> checkmark_;
|
| + PaymentRequestDialogView* dialog_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(PaymentMethodListItem);
|
| };
|
| @@ -116,7 +121,7 @@ PaymentMethodViewController::PaymentMethodViewController(
|
| available_instruments) {
|
| std::unique_ptr<PaymentMethodListItem> item =
|
| base::MakeUnique<PaymentMethodListItem>(
|
| - instrument.get(), spec, state, &payment_method_list_,
|
| + instrument.get(), spec, state, &payment_method_list_, dialog,
|
| instrument.get() == state->selected_instrument());
|
| payment_method_list_.AddItem(std::move(item));
|
| }
|
|
|