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

Unified Diff: chrome/browser/notifications/sync_notifier/synced_notification.cc

Issue 14631005: Enable users of NotificationUIManager to specify binary images. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase for relanding. Created 7 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/notifications/sync_notifier/synced_notification.cc
diff --git a/chrome/browser/notifications/sync_notifier/synced_notification.cc b/chrome/browser/notifications/sync_notifier/synced_notification.cc
index 1e4720b603e38f1820fbf25f7ddf4c0e0c72935d..99fc4ffc61f0f793b378c5bb9d8ef375183c71b5 100644
--- a/chrome/browser/notifications/sync_notifier/synced_notification.cc
+++ b/chrome/browser/notifications/sync_notifier/synced_notification.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/notifications/sync_notifier/synced_notification.h"
#include "base/basictypes.h"
+#include "base/time.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
@@ -13,6 +14,7 @@
#include "chrome/browser/notifications/sync_notifier/chrome_notifier_delegate.h"
#include "sync/protocol/sync.pb.h"
#include "sync/protocol/synced_notification_specifics.pb.h"
+#include "ui/gfx/image/image.h"
#include "ui/message_center/message_center_util.h"
#include "ui/message_center/notification_types.h"
@@ -84,15 +86,14 @@ void SyncedNotification::Show(NotificationUIManager* notification_manager,
// Some inputs and fields are only used if there is a notification center.
if (UseRichNotifications()) {
- double creation_time = static_cast<double>(GetCreationTime());
+ base::Time creation_time =
+ base::Time::FromDoubleT(static_cast<double>(GetCreationTime()));
int priority = GetPriority();
int notification_count = GetNotificationCount();
int button_count = GetButtonCount();
// TODO(petewil): Refactor this for an arbitrary number of buttons.
std::string button_one_title = GetButtonOneTitle();
- std::string button_one_icon_url = GetButtonOneIconUrl();
std::string button_two_title = GetButtonTwoTitle();
- std::string button_two_icon_url = GetButtonTwoIconUrl();
// Deduce which notification template to use from the data.
message_center::NotificationType notification_type =
@@ -107,52 +108,44 @@ void SyncedNotification::Show(NotificationUIManager* notification_manager,
// Fill the optional fields with the information we need to make a
// notification.
- DictionaryValue optional_fields;
- optional_fields.SetDouble(message_center::kTimestampKey, creation_time);
+ message_center::RichNotificationData rich_notification_data;
+ rich_notification_data.timestamp = creation_time;
if (priority != SyncedNotification::kUndefinedPriority)
- optional_fields.SetInteger(message_center::kPriorityKey, priority);
- if (!button_one_title.empty())
- optional_fields.SetString(message_center::kButtonOneTitleKey,
- button_one_title);
- if (!button_one_icon_url.empty())
- optional_fields.SetString(message_center::kButtonOneIconUrlKey,
- button_one_icon_url);
- if (!button_two_title.empty())
- optional_fields.SetString(message_center::kButtonTwoTitleKey,
- button_two_title);
- if (!button_two_icon_url.empty())
- optional_fields.SetString(message_center::kButtonTwoIconUrlKey,
- button_two_icon_url);
+ rich_notification_data.priority = priority;
+ if (!button_one_title.empty()) {
+ message_center::ButtonInfo button_info(UTF8ToUTF16(button_one_title));
+ rich_notification_data.buttons.push_back(button_info);
+ // TODO(petewil): Add a button icon here.
+ }
+ if (!button_two_title.empty()) {
+ message_center::ButtonInfo button_info(UTF8ToUTF16(button_two_title));
+ rich_notification_data.buttons.push_back(button_info);
+ // TODO(petewil): Add a button icon here.
+ }
// Fill the individual notification fields for a multiple notification.
if (notification_count > 1) {
- base::ListValue* items = new base::ListValue();
-
for (int ii = 0; ii < notification_count; ++ii) {
- DictionaryValue* item = new DictionaryValue();
- item->SetString(message_center::kItemTitleKey,
- UTF8ToUTF16(GetContainedNotificationTitle(
- ii)));
- item->SetString(message_center::kItemMessageKey,
- UTF8ToUTF16(GetContainedNotificationMessage(
- ii)));
- items->Append(item);
+ message_center::NotificationItem item(
+ UTF8ToUTF16(GetContainedNotificationTitle(ii)),
+ UTF8ToUTF16(GetContainedNotificationMessage(ii)));
+ rich_notification_data.items.push_back(item);
}
-
- optional_fields.Set(message_center::kItemsKey, items);
}
+ // TODO(petewil): Add code here that sets the various notification images
+ // that have been decoded. Also, don't use the notification tray icon once
+ // this is enabled, that could cause user confusion.
Notification ui_notification(notification_type,
GetOriginUrl(),
- GetAppIconUrl(),
heading,
text,
+ gfx::Image(),
WebKit::WebTextDirectionDefault,
display_source,
replace_key,
- &optional_fields,
+ rich_notification_data,
delegate.get());
-
notification_manager->Add(ui_notification, profile);
} else {

Powered by Google App Engine
This is Rietveld 408576698