Index: chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_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_view.cc |
index 2407284eb936ca3413ea1b106eedaa93982b3ce4..94e19d01876f2efde74e536275ea8d98a7c4325c 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_view.cc |
@@ -5,14 +5,15 @@ |
#include "chrome/browser/ui/views/desktop_ios_promotion/desktop_ios_promotion_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" |
@@ -30,9 +31,11 @@ int GetDesiredBubbleMaxWidth( |
} // namespace |
DesktopIOSPromotionView::DesktopIOSPromotionView( |
- desktop_ios_promotion::PromotionEntryPoint entry_point) { |
- promotion_controller_ = new DesktopIOSPromotionController(); |
- int bubbleWidth = ::GetDesiredBubbleMaxWidth(entry_point); |
+ DesktopIOSPromotionController* controller) |
+ : promotion_controller_(controller) { |
+ controller->SetPromotion(this); |
+ int bubbleWidth = |
+ ::GetDesiredBubbleMaxWidth(promotion_controller_->GetEntryPoint()); |
views::GridLayout* layout = new views::GridLayout(this); |
layout->set_minimum_size(gfx::Size(bubbleWidth, 0)); |
SetLayoutManager(layout); |
@@ -43,6 +46,7 @@ DesktopIOSPromotionView::DesktopIOSPromotionView( |
constexpr int kLabelColumnSet = 1; |
views::ColumnSet* column_set = layout->AddColumnSet(kLabelColumnSet); |
+ column_set->AddPaddingColumn(0, views::kPanelHorizMargin); |
column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 0, |
views::GridLayout::FIXED, bubbleWidth, 0); |
@@ -55,19 +59,31 @@ DesktopIOSPromotionView::DesktopIOSPromotionView( |
0, views::GridLayout::USE_PREF, 0, 0); |
views::Label* label = |
- new views::Label(desktop_ios_promotion::GetPromoBubbleText(entry_point)); |
+ new views::Label(desktop_ios_promotion::GetPromoBubbleText( |
+ promotion_controller_->GetEntryPoint())); |
label->SetMultiLine(true); |
label->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
layout->StartRow(0, kLabelColumnSet); |
layout->AddView(label); |
+ layout->StartRow(0, kLabelColumnSet); |
+ recovery_phone_label_ = new views::Label( |
+ base::UTF8ToUTF16(promotion_controller_->GetUsersRecoveryPhoneNumber())); |
+ ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
+ recovery_phone_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
+ recovery_phone_label_->SetFontList( |
+ rb->GetFontList(ui::ResourceBundle::BoldFont)); |
+ recovery_phone_label_->SetEnabledColor(SK_ColorGRAY); |
+ 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(); |
} |
+DesktopIOSPromotionView::~DesktopIOSPromotionView() = default; |
+ |
void DesktopIOSPromotionView::ButtonPressed(views::Button* sender, |
const ui::Event& event) { |
if (sender == send_sms_button_) { |
@@ -79,3 +95,10 @@ void DesktopIOSPromotionView::ButtonPressed(views::Button* sender, |
} |
GetWidget()->Close(); |
} |
+ |
+void DesktopIOSPromotionView::UpdateRecoveryPhoneLabel() { |
+ if (recovery_phone_label_) { |
+ recovery_phone_label_->SetText(base::UTF8ToUTF16( |
+ promotion_controller_->GetUsersRecoveryPhoneNumber())); |
+ } |
+} |