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

Side by Side Diff: ui/message_center/message_center_tray.cc

Issue 23636010: Notifications: Add cross-platform UMA: ShowMessageCenter, ShowSettings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove spurious test code. Created 7 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/message_center/message_center_tray.h" 5 #include "ui/message_center/message_center_tray.h"
6 6
7 #include "base/observer_list.h" 7 #include "base/observer_list.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "grit/ui_strings.h" 9 #include "grit/ui_strings.h"
10 #include "ui/base/l10n/l10n_util.h" 10 #include "ui/base/l10n/l10n_util.h"
(...skipping 13 matching lines...) Expand all
24 } 24 }
25 25
26 MessageCenterTray::~MessageCenterTray() { 26 MessageCenterTray::~MessageCenterTray() {
27 message_center_->RemoveObserver(this); 27 message_center_->RemoveObserver(this);
28 } 28 }
29 29
30 bool MessageCenterTray::ShowMessageCenterBubble() { 30 bool MessageCenterTray::ShowMessageCenterBubble() {
31 if (message_center_visible_) 31 if (message_center_visible_)
32 return true; 32 return true;
33 33
34 HidePopupBubble(); 34 HidePopupBubbleInternal();
35 35
36 message_center_visible_ = delegate_->ShowMessageCenter(); 36 message_center_visible_ = delegate_->ShowMessageCenter();
37 message_center_->SetMessageCenterVisible(message_center_visible_); 37 message_center_->SetVisibility(message_center::VISIBILITY_MESSAGE_CENTER);
38 NotifyMessageCenterTrayChanged();
38 return message_center_visible_; 39 return message_center_visible_;
39 } 40 }
40 41
41 bool MessageCenterTray::HideMessageCenterBubble() { 42 bool MessageCenterTray::HideMessageCenterBubble() {
42 if (!message_center_visible_) 43 if (!message_center_visible_)
43 return false; 44 return false;
44 delegate_->HideMessageCenter(); 45 delegate_->HideMessageCenter();
45 MarkMessageCenterHidden(); 46 MarkMessageCenterHidden();
46 return true; 47 return true;
47 } 48 }
48 49
49 void MessageCenterTray::MarkMessageCenterHidden() { 50 void MessageCenterTray::MarkMessageCenterHidden() {
50 if (!message_center_visible_) 51 if (!message_center_visible_)
51 return; 52 return;
52 message_center_visible_ = false; 53 message_center_visible_ = false;
53 message_center_->SetMessageCenterVisible(false); 54
54 // Some notifications (like system ones) should appear as popups again 55 // Some notifications (like system ones) should appear as popups again
55 // after the message center is closed. 56 // after the message center is closed.
56 if (message_center_->HasPopupNotifications()) 57 if (message_center_->HasPopupNotifications()) {
57 ShowPopupBubble(); 58 ShowPopupBubble();
59 return;
60 }
61
62 message_center_->SetVisibility(message_center::VISIBILITY_TRANSIENT);
63
58 NotifyMessageCenterTrayChanged(); 64 NotifyMessageCenterTrayChanged();
59 } 65 }
60 66
61 void MessageCenterTray::ToggleMessageCenterBubble() { 67 void MessageCenterTray::ToggleMessageCenterBubble() {
62 if (message_center_visible_) 68 if (message_center_visible_)
63 HideMessageCenterBubble(); 69 HideMessageCenterBubble();
64 else 70 else
65 ShowMessageCenterBubble(); 71 ShowMessageCenterBubble();
66 } 72 }
67 73
68 void MessageCenterTray::ShowPopupBubble() { 74 void MessageCenterTray::ShowPopupBubble() {
69 if (message_center_visible_) 75 if (message_center_visible_)
70 return; 76 return;
71 77
72 if (popups_visible_) { 78 if (popups_visible_) {
73 NotifyMessageCenterTrayChanged(); 79 NotifyMessageCenterTrayChanged();
74 return; 80 return;
75 } 81 }
76 82
77 if (!message_center_->HasPopupNotifications()) 83 if (!message_center_->HasPopupNotifications()) {
78 return; 84 return;
85 }
Jun Mukai 2013/09/09 17:12:35 nit: no braces for single line.
dewittj 2013/09/10 21:23:24 Done.
79 86
80 popups_visible_ = delegate_->ShowPopups(); 87 popups_visible_ = delegate_->ShowPopups();
88
81 NotifyMessageCenterTrayChanged(); 89 NotifyMessageCenterTrayChanged();
82 } 90 }
83 91
84 bool MessageCenterTray::HidePopupBubble() { 92 bool MessageCenterTray::HidePopupBubble() {
85 if (!popups_visible_) 93 if (!popups_visible_)
86 return false; 94 return false;
87 95 HidePopupBubbleInternal();
88 delegate_->HidePopups(); 96 message_center_->SetVisibility(message_center::VISIBILITY_TRANSIENT);
Jun Mukai 2013/09/09 17:12:35 why need to specify TRANSIENT here?
dewittj 2013/09/10 21:23:24 Done.
89 popups_visible_ = false;
90 NotifyMessageCenterTrayChanged(); 97 NotifyMessageCenterTrayChanged();
91 98
92 return true; 99 return true;
93 } 100 }
94 101
102 void MessageCenterTray::HidePopupBubbleInternal() {
103 if (!popups_visible_)
104 return;
105
106 delegate_->HidePopups();
107 popups_visible_ = false;
108 }
109
95 void MessageCenterTray::ShowNotifierSettingsBubble() { 110 void MessageCenterTray::ShowNotifierSettingsBubble() {
96 if (popups_visible_) 111 if (popups_visible_)
97 HidePopupBubble(); 112 HidePopupBubbleInternal();
98 113
99 message_center_visible_ = delegate_->ShowNotifierSettings(); 114 message_center_visible_ = delegate_->ShowNotifierSettings();
115 message_center_->SetVisibility(message_center::VISIBILITY_SETTINGS);
116
117 NotifyMessageCenterTrayChanged();
100 } 118 }
101 119
102 void MessageCenterTray::OnNotificationAdded( 120 void MessageCenterTray::OnNotificationAdded(
103 const std::string& notification_id) { 121 const std::string& notification_id) {
104 OnMessageCenterChanged(); 122 OnMessageCenterChanged();
105 } 123 }
106 124
107 void MessageCenterTray::OnNotificationRemoved( 125 void MessageCenterTray::OnNotificationRemoved(
108 const std::string& notification_id, 126 const std::string& notification_id,
109 bool by_user) { 127 bool by_user) {
(...skipping 21 matching lines...) Expand all
131 void MessageCenterTray::OnNotificationDisplayed( 149 void MessageCenterTray::OnNotificationDisplayed(
132 const std::string& notification_id) { 150 const std::string& notification_id) {
133 NotifyMessageCenterTrayChanged(); 151 NotifyMessageCenterTrayChanged();
134 } 152 }
135 153
136 void MessageCenterTray::OnQuietModeChanged(bool in_quiet_mode) { 154 void MessageCenterTray::OnQuietModeChanged(bool in_quiet_mode) {
137 NotifyMessageCenterTrayChanged(); 155 NotifyMessageCenterTrayChanged();
138 } 156 }
139 157
140 void MessageCenterTray::OnMessageCenterChanged() { 158 void MessageCenterTray::OnMessageCenterChanged() {
141 if (message_center_visible_) { 159 if (message_center_visible_ && message_center_->NotificationCount() == 0)
142 if (message_center_->NotificationCount() == 0) 160 HideMessageCenterBubble();
143 HideMessageCenterBubble();
144 }
145 161
146 if (popups_visible_ && !message_center_->HasPopupNotifications()) 162 if (popups_visible_ && !message_center_->HasPopupNotifications())
147 HidePopupBubble(); 163 HidePopupBubbleInternal();
148 else if (message_center_->HasPopupNotifications()) 164 else if (!popups_visible_ && message_center_->HasPopupNotifications())
149 ShowPopupBubble(); 165 ShowPopupBubble();
150 166
151 NotifyMessageCenterTrayChanged(); 167 NotifyMessageCenterTrayChanged();
152 } 168 }
153 169
154 void MessageCenterTray::NotifyMessageCenterTrayChanged() { 170 void MessageCenterTray::NotifyMessageCenterTrayChanged() {
155 delegate_->OnMessageCenterTrayChanged(); 171 delegate_->OnMessageCenterTrayChanged();
156 } 172 }
157 173
158 } // namespace message_center 174 } // namespace message_center
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698