Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1607)

Unified Diff: chrome/browser/ui/views/payments/order_summary_view_controller.cc

Issue 2724063002: [Payments] Add a Pay button in the Order summary screen (Closed)
Patch Set: addressed comments Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/payments/order_summary_view_controller.cc
diff --git a/chrome/browser/ui/views/payments/order_summary_view_controller.cc b/chrome/browser/ui/views/payments/order_summary_view_controller.cc
index 3589cc32eaae80b8213377530358903814bd3463..c2dc0896baaa3e69459de1206aff58c5e08617f5 100644
--- a/chrome/browser/ui/views/payments/order_summary_view_controller.cc
+++ b/chrome/browser/ui/views/payments/order_summary_view_controller.cc
@@ -15,12 +15,12 @@
#include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h"
#include "chrome/browser/ui/views/payments/payment_request_views_util.h"
#include "chrome/grit/generated_resources.h"
-#include "components/payments/content/payment_request.h"
#include "components/payments/core/currency_formatter.h"
#include "components/strings/grit/components_strings.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/font.h"
#include "ui/views/border.h"
+#include "ui/views/controls/button/md_text_button.h"
#include "ui/views/controls/label.h"
#include "ui/views/controls/styled_label.h"
#include "ui/views/layout/box_layout.h"
@@ -84,9 +84,13 @@ std::unique_ptr<views::View> CreateLineItemView(const base::string16& label,
OrderSummaryViewController::OrderSummaryViewController(
PaymentRequest* request,
PaymentRequestDialogView* dialog)
- : PaymentRequestSheetController(request, dialog) {}
+ : PaymentRequestSheetController(request, dialog), pay_button_(nullptr) {
+ request->AddObserver(this);
+}
-OrderSummaryViewController::~OrderSummaryViewController() {}
+OrderSummaryViewController::~OrderSummaryViewController() {
+ request()->RemoveObserver(this);
+}
std::unique_ptr<views::View> OrderSummaryViewController::CreateView() {
std::unique_ptr<views::View> content_view = base::MakeUnique<views::View>();
@@ -139,4 +143,24 @@ std::unique_ptr<views::View> OrderSummaryViewController::CreateView() {
std::move(content_view));
}
+std::unique_ptr<views::Button>
+OrderSummaryViewController::CreatePrimaryButton() {
+ std::unique_ptr<views::Button> button(
+ views::MdTextButton::CreateSecondaryUiBlueButton(
+ this, l10n_util::GetStringUTF16(IDS_PAYMENTS_PAY_BUTTON)));
+ button->set_tag(static_cast<int>(PaymentRequestCommonTags::PAY_BUTTON_TAG));
+ button->set_id(static_cast<int>(DialogViewID::PAY_BUTTON));
+ pay_button_ = button.get();
+ UpdatePayButtonState(request()->is_ready_to_pay());
+ return button;
+}
+
+void OrderSummaryViewController::OnSelectedInformationChanged() {
+ UpdatePayButtonState(request()->is_ready_to_pay());
+}
+
+void OrderSummaryViewController::UpdatePayButtonState(bool enabled) {
+ pay_button_->SetEnabled(enabled);
+}
+
} // namespace payments

Powered by Google App Engine
This is Rietveld 408576698