Index: ash/system/web_notification/web_notification_tray.cc |
diff --git a/ash/system/web_notification/web_notification_tray.cc b/ash/system/web_notification/web_notification_tray.cc |
index 7e2787019f4021d60be793c06246426075291649..5af95afff41c3af010b9f90e32116c5c4a16c384 100644 |
--- a/ash/system/web_notification/web_notification_tray.cc |
+++ b/ash/system/web_notification/web_notification_tray.cc |
@@ -24,11 +24,14 @@ |
#include "base/i18n/number_formatting.h" |
#include "base/i18n/rtl.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/thread_task_runner_handle.h" |
#include "base/threading/thread_task_runner_handle.h" |
+#include "grit/ash_resources.h" |
#include "grit/ash_strings.h" |
#include "ui/aura/window.h" |
#include "ui/aura/window_event_dispatcher.h" |
#include "ui/base/l10n/l10n_util.h" |
+#include "ui/base/resource/resource_bundle.h" |
#include "ui/display/screen.h" |
#include "ui/message_center/message_center_style.h" |
#include "ui/message_center/message_center_tray_delegate.h" |
@@ -118,9 +121,17 @@ class WebNotificationButton : public views::CustomButton { |
is_bubble_visible_(false), |
unread_count_(0) { |
SetLayoutManager(new views::FillLayout); |
- unread_label_ = new views::Label(); |
- SetupLabelForTray(unread_label_); |
- AddChildView(unread_label_); |
+ |
+ ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
+ no_unread_icon_.SetImage( |
+ rb.GetImageNamed(IDR_ASH_SHELF_NOTIFICATION_TRAY_BELL).ToImageSkia()); |
+ no_unread_icon_.SetImageSize(gfx::Size(18, 18)); |
+ no_unread_icon_.set_owned_by_client(); |
+ |
+ unread_label_.set_owned_by_client(); |
+ SetupLabelForTray(&unread_label_); |
+ |
+ AddChildView(&unread_label_); |
} |
void SetBubbleVisible(bool visible) { |
@@ -135,11 +146,6 @@ class WebNotificationButton : public views::CustomButton { |
// base::FormatNumber doesn't convert to arabic numeric characters. |
// TODO(mukai): use ICU to support conversion for such locales. |
unread_count_ = unread_count; |
- // TODO(mukai): move NINE_PLUS message to ui_strings, it doesn't need to be |
- // in ash_strings. |
- unread_label_->SetText((unread_count > 9) ? |
- l10n_util::GetStringUTF16(IDS_ASH_NOTIFICATION_UNREAD_COUNT_NINE_PLUS) : |
- base::FormatNumber(unread_count)); |
UpdateIconVisibility(); |
} |
@@ -155,16 +161,35 @@ class WebNotificationButton : public views::CustomButton { |
private: |
void UpdateIconVisibility() { |
- unread_label_->SetEnabledColor((unread_count_ > 0) |
- ? kWebNotificationColorWithUnread |
- : kWebNotificationColorNoUnread); |
+ if (unread_count_ == 0) { |
+ if (!Contains(&no_unread_icon_)) { |
+ RemoveAllChildViews(false /* delete_children */); |
+ AddChildView(&no_unread_icon_); |
+ } |
+ } else { |
+ if (!Contains(&unread_label_)) { |
+ RemoveAllChildViews(false /* delete_children */); |
+ AddChildView(&unread_label_); |
+ } |
+ |
+ // TODO(mukai): move NINE_PLUS message to ui_strings, it doesn't need to |
+ // be in ash_strings. |
+ unread_label_.SetText( |
+ (unread_count_ > 9) ? l10n_util::GetStringUTF16( |
+ IDS_ASH_NOTIFICATION_UNREAD_COUNT_NINE_PLUS) |
+ : base::FormatNumber(unread_count_)); |
+ unread_label_.SetEnabledColor((unread_count_ > 0) |
+ ? kWebNotificationColorWithUnread |
+ : kWebNotificationColorNoUnread); |
+ } |
SchedulePaint(); |
} |
bool is_bubble_visible_; |
int unread_count_; |
- views::Label* unread_label_; |
+ views::ImageView no_unread_icon_; |
+ views::Label unread_label_; |
DISALLOW_COPY_AND_ASSIGN(WebNotificationButton); |
}; |