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

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

Issue 23636010: Notifications: Add cross-platform UMA: ShowMessageCenter, ShowSettings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added the hash to chromeactions.txt 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
« no previous file with comments | « ui/message_center/message_center_impl.h ('k') | ui/message_center/message_center_observer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_impl.h" 5 #include "ui/message_center/message_center_impl.h"
6 6
7 #include "base/observer_list.h" 7 #include "base/observer_list.h"
8 #include "ui/message_center/message_center_style.h" 8 #include "ui/message_center/message_center_style.h"
9 #include "ui/message_center/message_center_types.h"
9 #include "ui/message_center/notification.h" 10 #include "ui/message_center/notification.h"
10 #include "ui/message_center/notification_list.h" 11 #include "ui/message_center/notification_list.h"
11 #include "ui/message_center/notification_types.h" 12 #include "ui/message_center/notification_types.h"
12 13
13 namespace { 14 namespace {
14 15
15 base::TimeDelta GetTimeoutForPriority(int priority) { 16 base::TimeDelta GetTimeoutForPriority(int priority) {
16 if (priority > message_center::DEFAULT_PRIORITY) { 17 if (priority > message_center::DEFAULT_PRIORITY) {
17 return base::TimeDelta::FromSeconds( 18 return base::TimeDelta::FromSeconds(
18 message_center::kAutocloseHighPriorityDelaySeconds); 19 message_center::kAutocloseHighPriorityDelaySeconds);
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 } 188 }
188 189
189 } // namespace internal 190 } // namespace internal
190 191
191 //////////////////////////////////////////////////////////////////////////////// 192 ////////////////////////////////////////////////////////////////////////////////
192 // MessageCenterImpl 193 // MessageCenterImpl
193 194
194 MessageCenterImpl::MessageCenterImpl() 195 MessageCenterImpl::MessageCenterImpl()
195 : MessageCenter(), 196 : MessageCenter(),
196 popup_timers_controller_(new internal::PopupTimersController(this)), 197 popup_timers_controller_(new internal::PopupTimersController(this)),
197 delegate_(NULL),
198 settings_provider_(NULL) { 198 settings_provider_(NULL) {
199 notification_list_.reset(new NotificationList()); 199 notification_list_.reset(new NotificationList());
200 } 200 }
201 201
202 MessageCenterImpl::~MessageCenterImpl() { 202 MessageCenterImpl::~MessageCenterImpl() {
203 notification_list_.reset(); 203 notification_list_.reset();
204 } 204 }
205 205
206 void MessageCenterImpl::AddObserver(MessageCenterObserver* observer) { 206 void MessageCenterImpl::AddObserver(MessageCenterObserver* observer) {
207 observer_list_.AddObserver(observer); 207 observer_list_.AddObserver(observer);
208 } 208 }
209 209
210 void MessageCenterImpl::RemoveObserver(MessageCenterObserver* observer) { 210 void MessageCenterImpl::RemoveObserver(MessageCenterObserver* observer) {
211 observer_list_.RemoveObserver(observer); 211 observer_list_.RemoveObserver(observer);
212 } 212 }
213 213
214 void MessageCenterImpl::SetDelegate(Delegate* delegate) { 214 void MessageCenterImpl::SetVisibility(Visibility visibility) {
215 delegate_ = delegate; 215 std::set<std::string> updated_ids;
216 } 216 notification_list_->SetMessageCenterVisible(
217 (visibility == VISIBILITY_MESSAGE_CENTER), &updated_ids);
217 218
218 void MessageCenterImpl::SetMessageCenterVisible(bool visible) {
219 std::set<std::string> updated_ids;
220 notification_list_->SetMessageCenterVisible(visible, &updated_ids);
221 for (std::set<std::string>::const_iterator iter = updated_ids.begin(); 219 for (std::set<std::string>::const_iterator iter = updated_ids.begin();
222 iter != updated_ids.end(); 220 iter != updated_ids.end();
223 ++iter) { 221 ++iter) {
224 FOR_EACH_OBSERVER( 222 FOR_EACH_OBSERVER(
225 MessageCenterObserver, observer_list_, OnNotificationUpdated(*iter)); 223 MessageCenterObserver, observer_list_, OnNotificationUpdated(*iter));
226 } 224 }
227 225
228 if (!visible) { 226 FOR_EACH_OBSERVER(MessageCenterObserver,
229 FOR_EACH_OBSERVER( 227 observer_list_,
230 MessageCenterObserver, observer_list_, OnNotificationCenterClosed()); 228 OnCenterVisibilityChanged(visibility));
231 }
232 } 229 }
233 230
234 bool MessageCenterImpl::IsMessageCenterVisible() { 231 bool MessageCenterImpl::IsMessageCenterVisible() {
235 return notification_list_->is_message_center_visible(); 232 return notification_list_->is_message_center_visible();
236 } 233 }
237 234
238 size_t MessageCenterImpl::NotificationCount() const { 235 size_t MessageCenterImpl::NotificationCount() const {
239 return notification_list_->NotificationCount(); 236 return notification_list_->NotificationCount();
240 } 237 }
241 238
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 NotificationList::Notifications notifications = 385 NotificationList::Notifications notifications =
389 notification_list_->GetNotificationsByNotifierId(notifier_id); 386 notification_list_->GetNotificationsByNotifierId(notifier_id);
390 for (NotificationList::Notifications::const_iterator iter = 387 for (NotificationList::Notifications::const_iterator iter =
391 notifications.begin(); iter != notifications.end();) { 388 notifications.begin(); iter != notifications.end();) {
392 std::string id = (*iter)->id(); 389 std::string id = (*iter)->id();
393 iter++; 390 iter++;
394 RemoveNotification(id, false); 391 RemoveNotification(id, false);
395 } 392 }
396 } 393 }
397 394
398 void MessageCenterImpl::ShowNotificationSettings(const std::string& id) {
399 if (delegate_)
400 delegate_->ShowSettings(id);
401 }
402
403 void MessageCenterImpl::ExpandNotification(const std::string& id) { 395 void MessageCenterImpl::ExpandNotification(const std::string& id) {
404 if (!HasNotification(id)) 396 if (!HasNotification(id))
405 return; 397 return;
406 notification_list_->MarkNotificationAsExpanded(id); 398 notification_list_->MarkNotificationAsExpanded(id);
407 FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_, 399 FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_,
408 OnNotificationUpdated(id)); 400 OnNotificationUpdated(id));
409 } 401 }
410 402
411 void MessageCenterImpl::ClickOnNotification(const std::string& id) { 403 void MessageCenterImpl::ClickOnNotification(const std::string& id) {
412 if (!HasNotification(id)) 404 if (!HasNotification(id))
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 void MessageCenterImpl::PausePopupTimers() { 498 void MessageCenterImpl::PausePopupTimers() {
507 if (popup_timers_controller_.get()) 499 if (popup_timers_controller_.get())
508 popup_timers_controller_->PauseAll(); 500 popup_timers_controller_->PauseAll();
509 } 501 }
510 502
511 void MessageCenterImpl::DisableTimersForTest() { 503 void MessageCenterImpl::DisableTimersForTest() {
512 popup_timers_controller_.reset(); 504 popup_timers_controller_.reset();
513 } 505 }
514 506
515 } // namespace message_center 507 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/message_center_impl.h ('k') | ui/message_center/message_center_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698