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

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

Issue 12277024: Notificaitons refactor step 2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more feedback from Steven Created 7 years, 9 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.h ('k') | ui/message_center/message_center.gyp » ('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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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.h" 5 #include "ui/message_center/message_center.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/singleton.h" 8 #include "base/memory/singleton.h"
9 #include "base/observer_list.h" 9 #include "base/observer_list.h"
10 #include "ui/message_center/notification.h"
11 #include "ui/message_center/notification_list.h"
10 12
11 namespace message_center { 13 namespace message_center {
12 14
13 //------------------------------------------------------------------------------ 15 //------------------------------------------------------------------------------
14 MessageCenter::MessageCenter() 16 MessageCenter::MessageCenter()
15 : delegate_(NULL) { 17 : delegate_(NULL) {
16 notification_list_.reset(new NotificationList(this)); 18 notification_list_.reset(new NotificationList(this));
17 } 19 }
18 20
19 MessageCenter::~MessageCenter() { 21 MessageCenter::~MessageCenter() {
(...skipping 25 matching lines...) Expand all
45 } 47 }
46 48
47 bool MessageCenter::HasPopupNotifications() const { 49 bool MessageCenter::HasPopupNotifications() const {
48 return notification_list_->HasPopupNotifications(); 50 return notification_list_->HasPopupNotifications();
49 } 51 }
50 52
51 //------------------------------------------------------------------------------ 53 //------------------------------------------------------------------------------
52 // Client code interface. 54 // Client code interface.
53 55
54 void MessageCenter::AddNotification( 56 void MessageCenter::AddNotification(
55 ui::notifications::NotificationType type, 57 NotificationType type,
56 const std::string& id, 58 const std::string& id,
57 const string16& title, 59 const string16& title,
58 const string16& message, 60 const string16& message,
59 const string16& display_source, 61 const string16& display_source,
60 const std::string& extension_id, 62 const std::string& extension_id,
61 const base::DictionaryValue* optional_fields) { 63 const base::DictionaryValue* optional_fields) {
62 notification_list_->AddNotification(type, id, title, message, display_source, 64 notification_list_->AddNotification(type, id, title, message, display_source,
63 extension_id, optional_fields); 65 extension_id, optional_fields);
64 NotifyMessageCenterChanged(true); 66 NotifyMessageCenterChanged(true);
65 } 67 }
66 68
67 void MessageCenter::UpdateNotification( 69 void MessageCenter::UpdateNotification(
68 const std::string& old_id, 70 const std::string& old_id,
69 const std::string& new_id, 71 const std::string& new_id,
70 const string16& title, 72 const string16& title,
71 const string16& message, 73 const string16& message,
72 const base::DictionaryValue* optional_fields) { 74 const base::DictionaryValue* optional_fields) {
73 notification_list_->UpdateNotificationMessage( 75 notification_list_->UpdateNotificationMessage(
74 old_id, new_id, title, message, optional_fields); 76 old_id, new_id, title, message, optional_fields);
75 NotifyMessageCenterChanged(true); 77 NotifyMessageCenterChanged(true);
76 } 78 }
77 79
78 void MessageCenter::RemoveNotification(const std::string& id) { 80 void MessageCenter::RemoveNotification(const std::string& id) {
79 if (!notification_list_->RemoveNotification(id)) 81 notification_list_->RemoveNotification(id);
80 return;
81 NotifyMessageCenterChanged(false); 82 NotifyMessageCenterChanged(false);
82 } 83 }
83 84
84 void MessageCenter::SetNotificationIcon(const std::string& notification_id, 85 void MessageCenter::SetNotificationIcon(const std::string& notification_id,
85 const gfx::ImageSkia& image) { 86 const gfx::ImageSkia& image) {
86 if (notification_list_->SetNotificationIcon(notification_id, image)) 87 if (notification_list_->SetNotificationIcon(notification_id, image))
87 NotifyMessageCenterChanged(true); 88 NotifyMessageCenterChanged(true);
88 } 89 }
89 90
90 void MessageCenter::SetNotificationImage(const std::string& notification_id, 91 void MessageCenter::SetNotificationImage(const std::string& notification_id,
(...skipping 13 matching lines...) Expand all
104 //------------------------------------------------------------------------------ 105 //------------------------------------------------------------------------------
105 // Overridden from NotificationList::Delegate. 106 // Overridden from NotificationList::Delegate.
106 107
107 void MessageCenter::SendRemoveNotification(const std::string& id) { 108 void MessageCenter::SendRemoveNotification(const std::string& id) {
108 if (delegate_) 109 if (delegate_)
109 delegate_->NotificationRemoved(id); 110 delegate_->NotificationRemoved(id);
110 } 111 }
111 112
112 void MessageCenter::SendRemoveAllNotifications() { 113 void MessageCenter::SendRemoveAllNotifications() {
113 if (delegate_) { 114 if (delegate_) {
114 NotificationList::Notifications notifications; 115 const NotificationList::Notifications& notifications =
115 notification_list_->GetNotifications(&notifications); 116 notification_list_->GetNotifications();
116 for (NotificationList::Notifications::const_iterator loopiter = 117 for (NotificationList::Notifications::const_iterator loopiter =
117 notifications.begin(); 118 notifications.begin();
118 loopiter != notifications.end(); ) { 119 loopiter != notifications.end(); ) {
119 NotificationList::Notifications::const_iterator curiter = loopiter++; 120 NotificationList::Notifications::const_iterator curiter = loopiter++;
120 std::string notification_id = curiter->id; 121 std::string notification_id = (*curiter)->id();
121 // May call RemoveNotification and erase curiter. 122 // May call RemoveNotification and erase curiter.
122 delegate_->NotificationRemoved(notification_id); 123 delegate_->NotificationRemoved(notification_id);
123 } 124 }
124 } 125 }
125 } 126 }
126 127
127 void MessageCenter::DisableNotificationByExtension( 128 void MessageCenter::DisableNotificationByExtension(
128 const std::string& id) { 129 const std::string& id) {
129 if (delegate_) 130 if (delegate_)
130 delegate_->DisableExtension(id); 131 delegate_->DisableExtension(id);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 // Private. 184 // Private.
184 185
185 void MessageCenter::NotifyMessageCenterChanged(bool new_notification) { 186 void MessageCenter::NotifyMessageCenterChanged(bool new_notification) {
186 FOR_EACH_OBSERVER(Observer, 187 FOR_EACH_OBSERVER(Observer,
187 observer_list_, 188 observer_list_,
188 OnMessageCenterChanged(new_notification)); 189 OnMessageCenterChanged(new_notification));
189 } 190 }
190 191
191 192
192 } // namespace message_center 193 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/message_center.h ('k') | ui/message_center/message_center.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698