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

Unified Diff: chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_bubble_view.cc

Issue 2694893002: Integrate SMS service with Desktop iOS promotion (Closed)
Patch Set: nits 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/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()));
+}

Powered by Google App Engine
This is Rietveld 408576698