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

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: 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_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/notification.h" 9 #include "ui/message_center/notification.h"
10 #include "ui/message_center/notification_list.h" 10 #include "ui/message_center/notification_list.h"
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 } 187 }
188 188
189 } // namespace internal 189 } // namespace internal
190 190
191 //////////////////////////////////////////////////////////////////////////////// 191 ////////////////////////////////////////////////////////////////////////////////
192 // MessageCenterImpl 192 // MessageCenterImpl
193 193
194 MessageCenterImpl::MessageCenterImpl() 194 MessageCenterImpl::MessageCenterImpl()
195 : MessageCenter(), 195 : MessageCenter(),
196 popup_timers_controller_(new internal::PopupTimersController(this)), 196 popup_timers_controller_(new internal::PopupTimersController(this)),
197 delegate_(NULL),
198 settings_provider_(NULL) { 197 settings_provider_(NULL) {
199 notification_list_.reset(new NotificationList()); 198 notification_list_.reset(new NotificationList());
200 } 199 }
201 200
202 MessageCenterImpl::~MessageCenterImpl() { 201 MessageCenterImpl::~MessageCenterImpl() {
203 notification_list_.reset(); 202 notification_list_.reset();
204 } 203 }
205 204
206 void MessageCenterImpl::AddObserver(MessageCenterObserver* observer) { 205 void MessageCenterImpl::AddObserver(MessageCenterObserver* observer) {
207 observer_list_.AddObserver(observer); 206 observer_list_.AddObserver(observer);
208 } 207 }
209 208
210 void MessageCenterImpl::RemoveObserver(MessageCenterObserver* observer) { 209 void MessageCenterImpl::RemoveObserver(MessageCenterObserver* observer) {
211 observer_list_.RemoveObserver(observer); 210 observer_list_.RemoveObserver(observer);
212 } 211 }
213 212
214 void MessageCenterImpl::SetDelegate(Delegate* delegate) { 213 void MessageCenterImpl::SetVisibility(Visibility visibility) {
215 delegate_ = delegate; 214 std::set<std::string> updated_ids;
216 } 215 notification_list_->SetMessageCenterVisible(
216 (visibility == VISIBILITY_MESSAGE_CENTER), &updated_ids);
217 217
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(); 218 for (std::set<std::string>::const_iterator iter = updated_ids.begin();
222 iter != updated_ids.end(); 219 iter != updated_ids.end();
223 ++iter) { 220 ++iter) {
224 FOR_EACH_OBSERVER( 221 FOR_EACH_OBSERVER(
225 MessageCenterObserver, observer_list_, OnNotificationUpdated(*iter)); 222 MessageCenterObserver, observer_list_, OnNotificationUpdated(*iter));
226 } 223 }
227 224
228 if (!visible) { 225 FOR_EACH_OBSERVER(MessageCenterObserver,
229 FOR_EACH_OBSERVER( 226 observer_list_,
230 MessageCenterObserver, observer_list_, OnNotificationCenterClosed()); 227 OnCenterVisibilityChanged(visibility));
231 }
232 } 228 }
233 229
234 bool MessageCenterImpl::IsMessageCenterVisible() { 230 bool MessageCenterImpl::IsMessageCenterVisible() {
235 return notification_list_->is_message_center_visible(); 231 return notification_list_->is_message_center_visible();
236 } 232 }
237 233
238 size_t MessageCenterImpl::NotificationCount() const { 234 size_t MessageCenterImpl::NotificationCount() const {
239 return notification_list_->NotificationCount(); 235 return notification_list_->NotificationCount();
240 } 236 }
241 237
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 NotificationList::Notifications notifications = 384 NotificationList::Notifications notifications =
389 notification_list_->GetNotificationsByNotifierId(notifier_id); 385 notification_list_->GetNotificationsByNotifierId(notifier_id);
390 for (NotificationList::Notifications::const_iterator iter = 386 for (NotificationList::Notifications::const_iterator iter =
391 notifications.begin(); iter != notifications.end();) { 387 notifications.begin(); iter != notifications.end();) {
392 std::string id = (*iter)->id(); 388 std::string id = (*iter)->id();
393 iter++; 389 iter++;
394 RemoveNotification(id, false); 390 RemoveNotification(id, false);
395 } 391 }
396 } 392 }
397 393
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) { 394 void MessageCenterImpl::ExpandNotification(const std::string& id) {
404 if (!HasNotification(id)) 395 if (!HasNotification(id))
405 return; 396 return;
406 notification_list_->MarkNotificationAsExpanded(id); 397 notification_list_->MarkNotificationAsExpanded(id);
407 FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_, 398 FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_,
408 OnNotificationUpdated(id)); 399 OnNotificationUpdated(id));
409 } 400 }
410 401
411 void MessageCenterImpl::ClickOnNotification(const std::string& id) { 402 void MessageCenterImpl::ClickOnNotification(const std::string& id) {
412 if (!HasNotification(id)) 403 if (!HasNotification(id))
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 void MessageCenterImpl::PausePopupTimers() { 497 void MessageCenterImpl::PausePopupTimers() {
507 if (popup_timers_controller_.get()) 498 if (popup_timers_controller_.get())
508 popup_timers_controller_->PauseAll(); 499 popup_timers_controller_->PauseAll();
509 } 500 }
510 501
511 void MessageCenterImpl::DisableTimersForTest() { 502 void MessageCenterImpl::DisableTimersForTest() {
512 popup_timers_controller_.reset(); 503 popup_timers_controller_.reset();
513 } 504 }
514 505
515 } // namespace message_center 506 } // namespace message_center
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698