Chromium Code Reviews| Index: ash/system/update/tray_update.cc |
| diff --git a/ash/system/update/tray_update.cc b/ash/system/update/tray_update.cc |
| index 55a82c5649a29a7510b5637802f1ce406392c228..0419c9b41f2c5ca30b66f337bc04cfb44801326f 100644 |
| --- a/ash/system/update/tray_update.cc |
| +++ b/ash/system/update/tray_update.cc |
| @@ -60,6 +60,8 @@ bool TrayUpdate::update_required_ = false; |
| mojom::UpdateSeverity TrayUpdate::severity_ = mojom::UpdateSeverity::NONE; |
| // static |
| bool TrayUpdate::factory_reset_required_ = false; |
| +mojom::UpdateType TrayUpdate::update_type_ = mojom::UpdateType::SYSTEM; |
| +views::Label* TrayUpdate::update_label_ = nullptr; |
| // The "restart to update" item in the system tray menu. |
| class TrayUpdate::UpdateView : public ActionableView { |
| @@ -77,14 +79,21 @@ class TrayUpdate::UpdateView : public ActionableView { |
| IconColorForUpdateSeverity(owner->severity_, true))); |
| tri_view->AddView(TriView::Container::START, image); |
| - base::string16 label_text = |
| - owner->factory_reset_required_ |
| - ? bundle.GetLocalizedString( |
| - IDS_ASH_STATUS_TRAY_RESTART_AND_POWERWASH_TO_UPDATE) |
| - : bundle.GetLocalizedString(IDS_ASH_STATUS_TRAY_UPDATE); |
| + base::string16 label_text; |
| + if (owner->factory_reset_required_) { |
| + label_text = bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_RESTART_AND_POWERWASH_TO_UPDATE); |
| + } else if (owner->update_type_ == mojom::UpdateType::FLASH) { |
| + label_text = bundle.GetLocalizedString(IDS_ASH_STATUS_TRAY_UPDATE_FLASH); |
| + } else { |
| + label_text = bundle.GetLocalizedString(IDS_ASH_STATUS_TRAY_UPDATE); |
| + } |
| + |
| SetAccessibleName(label_text); |
| - auto* label = TrayPopupUtils::CreateDefaultLabel(); |
| + views::Label* label = TrayPopupUtils::CreateDefaultLabel(); |
| label->SetText(label_text); |
| + update_label_ = label; |
|
James Cook
2017/04/18 23:20:57
update_label_ can point to deleted memory after th
Greg K
2017/04/18 23:45:23
Done.
|
| + |
| TrayPopupItemStyle style(TrayPopupItemStyle::FontStyle::DEFAULT_VIEW_LABEL); |
| style.SetupLabel(label); |
| tri_view->AddView(TriView::Container::CENTER, label); |
| @@ -123,15 +132,21 @@ views::View* TrayUpdate::CreateDefaultView(LoginStatus status) { |
| } |
| void TrayUpdate::ShowUpdateIcon(mojom::UpdateSeverity severity, |
| - bool factory_reset_required) { |
| + bool factory_reset_required, |
| + mojom::UpdateType update_type) { |
| // Cache update info so we can create the default view when the menu opens. |
| update_required_ = true; |
| severity_ = severity; |
| factory_reset_required_ = factory_reset_required; |
| + update_type_ = update_type; |
| // Show the icon in the tray. |
| SetIconColor(IconColorForUpdateSeverity(severity_, false)); |
| tray_view()->SetVisible(true); |
| } |
| +base::string16 TrayUpdate::GetLabelForTesting() { |
| + return update_label_ ? update_label_->text() : base::string16(); |
|
James Cook
2017/04/18 23:20:57
Then this could become "return default_view_ ? def
Greg K
2017/04/18 23:45:23
Done.
|
| +} |
| + |
| } // namespace ash |