| Index: chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_bubble_view.cc
|
| diff --git a/chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_view.cc b/chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_bubble_view.cc
|
| similarity index 57%
|
| rename from chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_view.cc
|
| rename to chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_bubble_view.cc
|
| index 2407284eb936ca3413ea1b106eedaa93982b3ce4..784aea9ed48ccc7b730eb45e3b195260bee41bfe 100644
|
| --- a/chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_view.cc
|
| +++ b/chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_bubble_view.cc
|
| @@ -2,17 +2,18 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_view.h"
|
| +#include "chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_bubble_view.h"
|
|
|
| #include "base/strings/utf_string_conversions.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/desktop_ios_promotion/desktop_ios_promotion_controller.h"
|
| #include "chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h"
|
| #include "chrome/grit/generated_resources.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| +#include "ui/base/resource/resource_bundle.h"
|
| #include "ui/views/controls/button/button.h"
|
| #include "ui/views/controls/button/md_text_button.h"
|
| -#include "ui/views/controls/link.h"
|
| #include "ui/views/layout/grid_layout.h"
|
| #include "ui/views/layout/layout_constants.h"
|
|
|
| @@ -29,12 +30,18 @@ int GetDesiredBubbleMaxWidth(
|
|
|
| } // namespace
|
|
|
| -DesktopIOSPromotionView::DesktopIOSPromotionView(
|
| - desktop_ios_promotion::PromotionEntryPoint entry_point) {
|
| - promotion_controller_ = new DesktopIOSPromotionController();
|
| - int bubbleWidth = ::GetDesiredBubbleMaxWidth(entry_point);
|
| +DesktopIOSPromotionBubbleView::DesktopIOSPromotionBubbleView(
|
| + Profile* profile,
|
| + desktop_ios_promotion::PromotionEntryPoint entry_point)
|
| + : recovery_phone_label_(new views::Label()),
|
| + promotion_controller_(
|
| + base::MakeUnique<DesktopIOSPromotionController>(profile,
|
| + this,
|
| + entry_point)) {
|
| + int bubble_width =
|
| + ::GetDesiredBubbleMaxWidth(promotion_controller_->entry_point());
|
| views::GridLayout* layout = new views::GridLayout(this);
|
| - layout->set_minimum_size(gfx::Size(bubbleWidth, 0));
|
| + layout->set_minimum_size(gfx::Size(bubble_width, 0));
|
| SetLayoutManager(layout);
|
| send_sms_button_ = views::MdTextButton::CreateSecondaryUiBlueButton(
|
| this, l10n_util::GetStringUTF16(IDS_DESKTOP_TO_IOS_PROMO_SEND_TO_PHONE));
|
| @@ -43,8 +50,9 @@ DesktopIOSPromotionView::DesktopIOSPromotionView(
|
|
|
| constexpr int kLabelColumnSet = 1;
|
| views::ColumnSet* column_set = layout->AddColumnSet(kLabelColumnSet);
|
| + column_set->AddPaddingColumn(0, 8);
|
| column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 0,
|
| - views::GridLayout::FIXED, bubbleWidth, 0);
|
| + views::GridLayout::FIXED, bubble_width, 0);
|
|
|
| constexpr int kDoubleButtonColumnSet = 2;
|
| column_set = layout->AddColumnSet(kDoubleButtonColumnSet);
|
| @@ -53,23 +61,39 @@ DesktopIOSPromotionView::DesktopIOSPromotionView(
|
| column_set->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
|
| column_set->AddColumn(views::GridLayout::TRAILING, views::GridLayout::CENTER,
|
| 0, views::GridLayout::USE_PREF, 0, 0);
|
| -
|
| + constexpr int kPhoneNumberColumnSet = 3;
|
| + column_set = layout->AddColumnSet(kPhoneNumberColumnSet);
|
| + column_set->AddPaddingColumn(0, 32);
|
| + column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 0,
|
| + views::GridLayout::FIXED, bubble_width, 0);
|
| views::Label* label =
|
| - new views::Label(desktop_ios_promotion::GetPromoBubbleText(entry_point));
|
| + new views::Label(desktop_ios_promotion::GetPromoBubbleText(
|
| + promotion_controller_->entry_point()));
|
| + label->SetEnabledColor(SK_ColorGRAY);
|
| label->SetMultiLine(true);
|
| label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
|
| layout->StartRow(0, kLabelColumnSet);
|
| layout->AddView(label);
|
| + layout->StartRow(0, kPhoneNumberColumnSet);
|
| + UpdateRecoveryPhoneLabel();
|
| + ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance();
|
| + recovery_phone_label_->SetFontList(
|
| + rb->GetFontList(ui::ResourceBundle::BoldFont));
|
| + recovery_phone_label_->SetEnabledColor(SK_ColorGRAY);
|
| + recovery_phone_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
|
| + layout->AddView(recovery_phone_label_);
|
| layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
|
| layout->StartRow(0, kDoubleButtonColumnSet);
|
| layout->AddView(send_sms_button_);
|
| layout->AddView(no_button_);
|
|
|
| - // TODO(crbug.com/676655): Log impression.
|
| + promotion_controller_->OnPromotionShown();
|
| }
|
|
|
| -void DesktopIOSPromotionView::ButtonPressed(views::Button* sender,
|
| - const ui::Event& event) {
|
| +DesktopIOSPromotionBubbleView::~DesktopIOSPromotionBubbleView() = default;
|
| +
|
| +void DesktopIOSPromotionBubbleView::ButtonPressed(views::Button* sender,
|
| + const ui::Event& event) {
|
| if (sender == send_sms_button_) {
|
| promotion_controller_->OnSendSMSClicked();
|
| } else if (sender == no_button_) {
|
| @@ -79,3 +103,8 @@ void DesktopIOSPromotionView::ButtonPressed(views::Button* sender,
|
| }
|
| GetWidget()->Close();
|
| }
|
| +
|
| +void DesktopIOSPromotionBubbleView::UpdateRecoveryPhoneLabel() {
|
| + recovery_phone_label_->SetText(
|
| + base::UTF8ToUTF16(promotion_controller_->GetUsersRecoveryPhoneNumber()));
|
| +}
|
|
|