Index: ash/common/system/tray/tray_image_item.cc |
diff --git a/ash/common/system/tray/tray_image_item.cc b/ash/common/system/tray/tray_image_item.cc |
index 941a3e80a5bf16e2a79271297691ba134b6568bd..3def7618719fc31ef3c3e271bb0b32773edf455d 100644 |
--- a/ash/common/system/tray/tray_image_item.cc |
+++ b/ash/common/system/tray/tray_image_item.cc |
@@ -59,6 +59,7 @@ TrayImageItem::TrayImageItem(SystemTray* system_tray, |
UmaType uma_type) |
: SystemTrayItem(system_tray, uma_type), |
resource_id_(resource_id), |
+ icon_color_(kTrayIconColor), |
tray_view_(nullptr) {} |
TrayImageItem::~TrayImageItem() {} |
@@ -71,16 +72,7 @@ views::View* TrayImageItem::CreateTrayView(LoginStatus status) { |
CHECK(!tray_view_); |
tray_view_ = new TrayItemView(this); |
tray_view_->CreateImageView(); |
- |
- if (MaterialDesignController::UseMaterialDesignSystemIcons()) { |
- tray_view_->image_view()->SetImage(CreateVectorIcon( |
- ResourceIdToVectorIconId(resource_id_), kTrayIconSize, kTrayIconColor)); |
- } else { |
- tray_view_->image_view()->SetImage(ui::ResourceBundle::GetSharedInstance() |
- .GetImageNamed(resource_id_) |
- .ToImageSkia()); |
- } |
- |
+ UpdateImageOnImageView(); |
tray_view_->SetVisible(GetInitialVisibility()); |
SetItemAlignment(system_tray()->shelf_alignment()); |
return tray_view_; |
@@ -109,15 +101,14 @@ void TrayImageItem::DestroyDefaultView() {} |
void TrayImageItem::DestroyDetailedView() {} |
-// TODO(tdanderson): Consider moving or renaming this function, as it is only |
-// used by TrayUpdate to modify the update severity. See crbug.com/625692. |
+void TrayImageItem::SetIconColor(SkColor color) { |
+ icon_color_ = color; |
+ UpdateImageOnImageView(); |
+} |
+ |
void TrayImageItem::SetImageFromResourceId(int resource_id) { |
resource_id_ = resource_id; |
- if (!tray_view_) |
- return; |
- tray_view_->image_view()->SetImage(ui::ResourceBundle::GetSharedInstance() |
- .GetImageNamed(resource_id_) |
- .ToImageSkia()); |
+ UpdateImageOnImageView(); |
} |
void TrayImageItem::SetItemAlignment(ShelfAlignment alignment) { |
@@ -129,4 +120,18 @@ void TrayImageItem::SetItemAlignment(ShelfAlignment alignment) { |
tray_view_->Layout(); |
} |
+void TrayImageItem::UpdateImageOnImageView() { |
+ if (!tray_view_) |
+ return; |
+ |
+ if (MaterialDesignController::UseMaterialDesignSystemIcons()) { |
+ tray_view_->image_view()->SetImage(gfx::CreateVectorIcon( |
+ ResourceIdToVectorIconId(resource_id_), kTrayIconSize, icon_color_)); |
+ } else { |
+ tray_view_->image_view()->SetImage(ui::ResourceBundle::GetSharedInstance() |
+ .GetImageNamed(resource_id_) |
+ .ToImageSkia()); |
+ } |
+} |
+ |
} // namespace ash |