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

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

Issue 2709093006: Adding new shipping address editor view to payment flow. (Closed)
Patch Set: Working version Created 3 years, 9 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/profile_list_view_controller.cc
diff --git a/chrome/browser/ui/views/payments/profile_list_view_controller.cc b/chrome/browser/ui/views/payments/profile_list_view_controller.cc
index 02d4b5cd0c973f43a0b6f41b00d44e0329e4eec8..6b2cad2481de308bfe620990167048421dd5c225 100644
--- a/chrome/browser/ui/views/payments/profile_list_view_controller.cc
+++ b/chrome/browser/ui/views/payments/profile_list_view_controller.cc
@@ -4,17 +4,34 @@
#include "chrome/browser/ui/views/payments/profile_list_view_controller.h"
+#include "chrome/browser/ui/views/payments/payment_request_dialog_view.h"
+#include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h"
#include "chrome/browser/ui/views/payments/payment_request_row_view.h"
#include "chrome/browser/ui/views/payments/payment_request_views_util.h"
+#include "chrome/grit/generated_resources.h"
#include "components/payments/content/payment_request_spec.h"
#include "components/payments/content/payment_request_state.h"
#include "components/strings/grit/components_strings.h"
#include "ui/base/l10n/l10n_util.h"
+#include "ui/views/controls/button/label_button.h"
+#include "ui/views/controls/button/md_text_button.h"
+#include "ui/views/controls/image_view.h"
+#include "ui/views/layout/box_layout.h"
+#include "ui/views/layout/grid_layout.h"
namespace payments {
namespace {
+constexpr int kFirstTagValue = static_cast<int>(
+ payments::PaymentRequestCommonTags::PAYMENT_REQUEST_COMMON_TAG_MAX);
+
+enum class PaymentMethodViewControllerTags : int {
+ // The tag for the button that triggers the "add address" flow. Starts at
+ // |kFirstTagValue| not to conflict with tags common to all views.
+ ADD_SHIPPING_ADDRESS_BUTTON = kFirstTagValue,
+};
+
class ProfileItem : public PaymentRequestItemList::Item {
public:
// Constructs an object owned by |parent_list|, representing one element in
@@ -89,6 +106,36 @@ class ShippingProfileViewController : public ProfileListViewController {
}
private:
+ // PaymentRequestSheetController:
+ std::unique_ptr<views::View> CreateExtraFooterView() override {
+ std::unique_ptr<views::View> extra_view = base::MakeUnique<views::View>();
+
+ extra_view->SetLayoutManager(new views::BoxLayout(
+ views::BoxLayout::kHorizontal, 0, 0, kPaymentRequestButtonSpacing));
+
+ views::LabelButton* button = views::MdTextButton::CreateSecondaryUiButton(
+ this, l10n_util::GetStringUTF16(IDS_AUTOFILL_ADD_ADDRESS_CAPTION));
+ button->set_tag(static_cast<int>(
+ PaymentMethodViewControllerTags::ADD_SHIPPING_ADDRESS_BUTTON));
+ button->set_id(
+ static_cast<int>(DialogViewID::PAYMENT_METHOD_ADD_CARD_BUTTON));
+ extra_view->AddChildView(button);
+
+ return extra_view;
+ }
+
+ void ButtonPressed(views::Button* sender, const ui::Event& event) override {
+ switch (sender->tag()) {
+ case static_cast<int>(
+ PaymentMethodViewControllerTags::ADD_SHIPPING_ADDRESS_BUTTON):
+ dialog()->ShowShippingAddressEditor();
+ break;
+ default:
+ PaymentRequestSheetController::ButtonPressed(sender, event);
+ break;
+ }
+ }
+
DISALLOW_COPY_AND_ASSIGN(ShippingProfileViewController);
};

Powered by Google App Engine
This is Rietveld 408576698