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

Unified Diff: ash/system/web_notification/web_notification_tray.cc

Issue 1958903003: Show the bell icon when no unread-notification state (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
« no previous file with comments | « ash/resources/default_200_percent/common/shelf/notification_tray_empty.png ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 52504eda4038fdd0656dde03ea3c0df3faf7e57f..991e9f1b2bba532bfb45f70cb83ad262f9d2b391 100644
--- a/ash/system/web_notification/web_notification_tray.cc
+++ b/ash/system/web_notification/web_notification_tray.cc
@@ -25,10 +25,12 @@
#include "base/i18n/rtl.h"
#include "base/strings/utf_string_conversions.h"
#include "base/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 +120,19 @@ 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_.reset(new views::ImageView());
+ no_unread_icon_->SetImage(
+ rb.GetImageNamed(IDR_ASH_SHELF_NOTIFICATION_TRAY_EMPTY).ToImageSkia());
oshima 2016/05/11 02:46:30 do you really need an image view here? Doesn't emp
yoshiki 2016/05/11 05:42:51 Yes, the initial state is unread_count == 0, so we
oshima 2016/05/11 14:35:10 which one is bell icon? Or empty.png is just a pla
+ no_unread_icon_->SetImageSize(gfx::Size(18, 18));
+ no_unread_icon_->set_owned_by_client();
+
+ unread_label_.reset(new views::Label());
oshima 2016/05/11 02:46:30 you can just use view::Label unread_label_;
yoshiki 2016/05/11 05:42:51 Done.
+ unread_label_->set_owned_by_client();
+ SetupLabelForTray(unread_label_.get());
+
+ AddChildView(unread_label_.get());
}
void SetBubbleVisible(bool visible) {
@@ -135,11 +147,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 +162,36 @@ class WebNotificationButton : public views::CustomButton {
private:
void UpdateIconVisibility() {
- unread_label_->SetEnabledColor(
- (!is_bubble_visible_ && unread_count_ > 0) ?
- kWebNotificationColorWithUnread : kWebNotificationColorNoUnread);
+ if (unread_count_ == 0) {
+ if (!Contains(no_unread_icon_.get())) {
+ RemoveAllChildViews(false /* delete_children */);
+ AddChildView(no_unread_icon_.get());
+ }
+ } else {
+ if (!Contains(unread_label_.get())) {
+ RemoveAllChildViews(false /* delete_children */);
+ AddChildView(unread_label_.get());
+ }
+
+ // 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((!is_bubble_visible_)
+ ? kWebNotificationColorWithUnread
+ : kWebNotificationColorNoUnread);
+ }
+
SchedulePaint();
}
bool is_bubble_visible_;
int unread_count_;
- views::Label* unread_label_;
+ std::unique_ptr<views::ImageView> no_unread_icon_;
+ std::unique_ptr<views::Label> unread_label_;
DISALLOW_COPY_AND_ASSIGN(WebNotificationButton);
};
« no previous file with comments | « ash/resources/default_200_percent/common/shelf/notification_tray_empty.png ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698