| Index: ui/message_center/notification.cc
|
| diff --git a/ui/message_center/notification.cc b/ui/message_center/notification.cc
|
| index c4db2d50b17585d63211e2f7fa7c1776c4b405cf..43e3de751daad4e80a94a651f5cc2e73f3aed709 100644
|
| --- a/ui/message_center/notification.cc
|
| +++ b/ui/message_center/notification.cc
|
| @@ -23,10 +23,27 @@ ButtonInfo::ButtonInfo(const string16& title)
|
| : title(title) {
|
| }
|
|
|
| +RichNotificationData::RichNotificationData()
|
| + : priority(DEFAULT_PRIORITY),
|
| + never_timeout(false),
|
| + timestamp(base::Time::Now()) {}
|
| +
|
| +RichNotificationData::RichNotificationData(const RichNotificationData& other)
|
| + : priority(other.priority),
|
| + never_timeout(other.never_timeout),
|
| + timestamp(other.timestamp),
|
| + expanded_message(other.expanded_message),
|
| + image(other.image),
|
| + items(other.items),
|
| + buttons(other.buttons) {}
|
| +
|
| +RichNotificationData::~RichNotificationData() {}
|
| +
|
| Notification::Notification(NotificationType type,
|
| const std::string& id,
|
| const string16& title,
|
| const string16& message,
|
| + const gfx::Image& icon,
|
| const string16& display_source,
|
| const std::string& extension_id,
|
| const DictionaryValue* optional_fields,
|
| @@ -35,48 +52,97 @@ Notification::Notification(NotificationType type,
|
| id_(id),
|
| title_(title),
|
| message_(message),
|
| + icon_(icon),
|
| display_source_(display_source),
|
| extension_id_(extension_id),
|
| - priority_(DEFAULT_PRIORITY),
|
| - timestamp_(base::Time::Now()),
|
| serial_number_(g_next_serial_number_++),
|
| shown_as_popup_(false),
|
| is_read_(false),
|
| is_expanded_(false),
|
| - never_timeout_(false),
|
| delegate_(delegate) {
|
| - // This can override some data members initialized to deafule values above.
|
| + // This can override some data members initialized to default values above.
|
| ApplyOptionalFields(optional_fields);
|
| }
|
|
|
| -Notification::~Notification() {
|
| +Notification::Notification(NotificationType type,
|
| + const std::string& id,
|
| + const string16& title,
|
| + const string16& message,
|
| + const gfx::Image& icon,
|
| + const string16& display_source,
|
| + const std::string& extension_id,
|
| + const RichNotificationData& optional_fields,
|
| + NotificationDelegate* delegate)
|
| + : type_(type),
|
| + id_(id),
|
| + title_(title),
|
| + message_(message),
|
| + icon_(icon),
|
| + display_source_(display_source),
|
| + extension_id_(extension_id),
|
| + serial_number_(g_next_serial_number_++),
|
| + optional_fields_(optional_fields),
|
| + delegate_(delegate) {}
|
| +
|
| +Notification::Notification(const Notification& other)
|
| + : type_(other.type_),
|
| + id_(other.id_),
|
| + title_(other.title_),
|
| + message_(other.message_),
|
| + icon_(other.icon_),
|
| + display_source_(other.display_source_),
|
| + extension_id_(other.extension_id_),
|
| + serial_number_(other.serial_number_),
|
| + optional_fields_(other.optional_fields_),
|
| + shown_as_popup_(other.shown_as_popup_),
|
| + is_read_(other.is_read_),
|
| + is_expanded_(other.is_expanded_),
|
| + delegate_(other.delegate_) {}
|
| +
|
| +Notification& Notification::operator=(const Notification& other) {
|
| + type_ = other.type_;
|
| + id_ = other.id_;
|
| + title_ = other.title_;
|
| + message_ = other.message_;
|
| + icon_ = other.icon_;
|
| + display_source_ = other.display_source_;
|
| + extension_id_ = other.extension_id_;
|
| + serial_number_ = other.serial_number_;
|
| + optional_fields_ = other.optional_fields_;
|
| + shown_as_popup_ = other.shown_as_popup_;
|
| + is_read_ = other.is_read_;
|
| + is_expanded_ = other.is_expanded_;
|
| + delegate_ = other.delegate_;
|
| +
|
| + return *this;
|
| }
|
|
|
| +Notification::~Notification() {}
|
| +
|
| void Notification::CopyState(Notification* base) {
|
| shown_as_popup_ = base->shown_as_popup();
|
| is_read_ = base->is_read();
|
| is_expanded_ = base->is_expanded();
|
| - never_timeout_ = base->never_timeout();
|
| if (!delegate_.get())
|
| delegate_ = base->delegate();
|
| + optional_fields_.never_timeout = base->never_timeout();
|
| }
|
|
|
| -bool Notification::SetButtonIcon(size_t index, const gfx::Image& icon) {
|
| - if (index >= buttons_.size())
|
| - return false;
|
| - buttons_[index].icon = icon;
|
| - return true;
|
| +void Notification::SetButtonIcon(size_t index, const gfx::Image& icon) {
|
| + if (index >= optional_fields_.buttons.size())
|
| + return;
|
| + optional_fields_.buttons[index].icon = icon;
|
| }
|
|
|
| void Notification::ApplyOptionalFields(const DictionaryValue* fields) {
|
| if (!fields)
|
| return;
|
|
|
| - fields->GetInteger(kPriorityKey, &priority_);
|
| + fields->GetInteger(kPriorityKey, &optional_fields_.priority);
|
| if (fields->HasKey(kTimestampKey)) {
|
| std::string time_string;
|
| fields->GetString(kTimestampKey, &time_string);
|
| - base::Time::FromString(time_string.c_str(), ×tamp_);
|
| + base::Time::FromString(time_string.c_str(), &optional_fields_.timestamp);
|
| }
|
| if (fields->HasKey(kButtonOneTitleKey) ||
|
| fields->HasKey(kButtonOneIconUrlKey)) {
|
| @@ -84,14 +150,14 @@ void Notification::ApplyOptionalFields(const DictionaryValue* fields) {
|
| string16 icon;
|
| if (fields->GetString(kButtonOneTitleKey, &title) ||
|
| fields->GetString(kButtonOneIconUrlKey, &icon)) {
|
| - buttons_.push_back(ButtonInfo(title));
|
| + optional_fields_.buttons.push_back(ButtonInfo(title));
|
| if (fields->GetString(kButtonTwoTitleKey, &title) ||
|
| fields->GetString(kButtonTwoIconUrlKey, &icon)) {
|
| - buttons_.push_back(ButtonInfo(title));
|
| + optional_fields_.buttons.push_back(ButtonInfo(title));
|
| }
|
| }
|
| }
|
| - fields->GetString(kExpandedMessageKey, &expanded_message_);
|
| + fields->GetString(kExpandedMessageKey, &optional_fields_.expanded_message);
|
| if (fields->HasKey(kItemsKey)) {
|
| const ListValue* items;
|
| CHECK(fields->GetList(kItemsKey, &items));
|
| @@ -102,11 +168,11 @@ void Notification::ApplyOptionalFields(const DictionaryValue* fields) {
|
| items->GetDictionary(i, &item);
|
| item->GetString(kItemTitleKey, &title);
|
| item->GetString(kItemMessageKey, &message);
|
| - items_.push_back(NotificationItem(title, message));
|
| + optional_fields_.items.push_back(NotificationItem(title, message));
|
| }
|
| }
|
|
|
| - fields->GetBoolean(kPrivateNeverTimeoutKey, &never_timeout_);
|
| + fields->GetBoolean(kPrivateNeverTimeoutKey, &optional_fields_.never_timeout);
|
| }
|
|
|
| } // namespace message_center
|
|
|