| Index: chrome/browser/notifications/sync_notifier/synced_notification.cc
|
| ===================================================================
|
| --- chrome/browser/notifications/sync_notifier/synced_notification.cc (revision 263121)
|
| +++ chrome/browser/notifications/sync_notifier/synced_notification.cc (working copy)
|
| @@ -37,10 +37,6 @@
|
| // try to supply them with more than this number of buttons.
|
| const unsigned int kMaxNotificationButtonIndex = 2;
|
|
|
| -bool UseRichNotifications() {
|
| - return message_center::IsRichNotificationEnabled();
|
| -}
|
| -
|
| // Schema-less specs default badly in windows. If we find one, add the schema
|
| // we expect instead of allowing windows specific GURL code to make it default
|
| // to "file:".
|
| @@ -100,7 +96,7 @@
|
| }
|
|
|
| // |notifier_service| can be NULL in tests.
|
| - if (UseRichNotifications() && notifier_service_) {
|
| + if (notifier_service_) {
|
| notifier_service_->ShowWelcomeToastIfNecessary(this, notification_manager_);
|
| }
|
|
|
| @@ -123,118 +119,104 @@
|
| new ChromeNotifierDelegate(GetKey(), notifier_service_);
|
|
|
| // Some inputs and fields are only used if there is a notification center.
|
| - if (UseRichNotifications()) {
|
| - base::Time creation_time =
|
| - base::Time::FromDoubleT(static_cast<double>(GetCreationTime()));
|
| - int priority = GetPriority();
|
| - unsigned int button_count = GetButtonCount();
|
| + base::Time creation_time =
|
| + base::Time::FromDoubleT(static_cast<double>(GetCreationTime()));
|
| + int priority = GetPriority();
|
| + unsigned int button_count = GetButtonCount();
|
|
|
| - // Deduce which notification template to use from the data.
|
| - message_center::NotificationType notification_type =
|
| - message_center::NOTIFICATION_TYPE_BASE_FORMAT;
|
| - if (!image_url.is_empty()) {
|
| - notification_type = message_center::NOTIFICATION_TYPE_IMAGE;
|
| - } else if (button_count > 0) {
|
| - notification_type = message_center::NOTIFICATION_TYPE_BASE_FORMAT;
|
| - }
|
| + // Deduce which notification template to use from the data.
|
| + message_center::NotificationType notification_type =
|
| + message_center::NOTIFICATION_TYPE_BASE_FORMAT;
|
| + if (!image_url.is_empty()) {
|
| + notification_type = message_center::NOTIFICATION_TYPE_IMAGE;
|
| + } else if (button_count > 0) {
|
| + notification_type = message_center::NOTIFICATION_TYPE_BASE_FORMAT;
|
| + }
|
|
|
| - // Fill the optional fields with the information we need to make a
|
| - // notification.
|
| - message_center::RichNotificationData rich_notification_data;
|
| - rich_notification_data.timestamp = creation_time;
|
| - if (priority != SyncedNotification::kUndefinedPriority)
|
| - rich_notification_data.priority = priority;
|
| + // Fill the optional fields with the information we need to make a
|
| + // notification.
|
| + message_center::RichNotificationData rich_notification_data;
|
| + rich_notification_data.timestamp = creation_time;
|
| + if (priority != SyncedNotification::kUndefinedPriority)
|
| + rich_notification_data.priority = priority;
|
|
|
| - // Fill in the button data.
|
| - // TODO(petewil): Today Rich notifiations are limited to two buttons.
|
| - // When rich notifications supports more, remove the
|
| - // "&& i < kMaxNotificationButtonIndex" clause below.
|
| - for (unsigned int i = 0;
|
| - i < button_count
|
| - && i < button_bitmaps_.size()
|
| - && i < kMaxNotificationButtonIndex;
|
| - ++i) {
|
| - // Stop at the first button with no title
|
| - std::string title = GetButtonTitle(i);
|
| - if (title.empty())
|
| - break;
|
| - message_center::ButtonInfo button_info(base::UTF8ToUTF16(title));
|
| - if (!button_bitmaps_[i].IsEmpty())
|
| - button_info.icon = button_bitmaps_[i];
|
| - rich_notification_data.buttons.push_back(button_info);
|
| - }
|
| + // Fill in the button data.
|
| + // TODO(petewil): Today Rich notifiations are limited to two buttons.
|
| + // When rich notifications supports more, remove the
|
| + // "&& i < kMaxNotificationButtonIndex" clause below.
|
| + for (unsigned int i = 0;
|
| + i < button_count
|
| + && i < button_bitmaps_.size()
|
| + && i < kMaxNotificationButtonIndex;
|
| + ++i) {
|
| + // Stop at the first button with no title
|
| + std::string title = GetButtonTitle(i);
|
| + if (title.empty())
|
| + break;
|
| + message_center::ButtonInfo button_info(base::UTF8ToUTF16(title));
|
| + if (!button_bitmaps_[i].IsEmpty())
|
| + button_info.icon = button_bitmaps_[i];
|
| + rich_notification_data.buttons.push_back(button_info);
|
| + }
|
|
|
| - // Fill in the bitmap images.
|
| - if (!image_bitmap_.IsEmpty())
|
| - rich_notification_data.image = image_bitmap_;
|
| + // Fill in the bitmap images.
|
| + if (!image_bitmap_.IsEmpty())
|
| + rich_notification_data.image = image_bitmap_;
|
|
|
| - if (!app_icon_bitmap_.IsEmpty()) {
|
| - // Since we can't control the size of images we download, resize using a
|
| - // high quality filter down to the appropriate icon size.
|
| - // TODO(dewittj): Remove this when correct resources are sent via the
|
| - // protobuf.
|
| - SkBitmap new_app_icon =
|
| - skia::ImageOperations::Resize(app_icon_bitmap_.AsBitmap(),
|
| - skia::ImageOperations::RESIZE_BEST,
|
| - message_center::kSmallImageSize,
|
| - message_center::kSmallImageSize);
|
| + if (!app_icon_bitmap_.IsEmpty()) {
|
| + // Since we can't control the size of images we download, resize using a
|
| + // high quality filter down to the appropriate icon size.
|
| + // TODO(dewittj): Remove this when correct resources are sent via the
|
| + // protobuf.
|
| + SkBitmap new_app_icon =
|
| + skia::ImageOperations::Resize(app_icon_bitmap_.AsBitmap(),
|
| + skia::ImageOperations::RESIZE_BEST,
|
| + message_center::kSmallImageSize,
|
| + message_center::kSmallImageSize);
|
|
|
| - // The app icon should be in grayscale.
|
| - // TODO(dewittj): Remove this when correct resources are sent via the
|
| - // protobuf.
|
| - color_utils::HSL shift = {-1, 0, 0.6};
|
| - SkBitmap grayscale =
|
| - SkBitmapOperations::CreateHSLShiftedBitmap(new_app_icon, shift);
|
| - gfx::Image small_image =
|
| - gfx::Image(gfx::ImageSkia(gfx::ImageSkiaRep(grayscale, 1.0f)));
|
| - rich_notification_data.small_image = small_image;
|
| - }
|
| + // The app icon should be in grayscale.
|
| + // TODO(dewittj): Remove this when correct resources are sent via the
|
| + // protobuf.
|
| + color_utils::HSL shift = {-1, 0, 0.6};
|
| + SkBitmap grayscale =
|
| + SkBitmapOperations::CreateHSLShiftedBitmap(new_app_icon, shift);
|
| + gfx::Image small_image =
|
| + gfx::Image(gfx::ImageSkia(gfx::ImageSkiaRep(grayscale, 1.0f)));
|
| + rich_notification_data.small_image = small_image;
|
| + }
|
|
|
| - // Set the ContextMessage inside the rich notification data for the
|
| - // annotation.
|
| - rich_notification_data.context_message = annotation;
|
| + // Set the ContextMessage inside the rich notification data for the
|
| + // annotation.
|
| + rich_notification_data.context_message = annotation;
|
|
|
| - // Set the clickable flag to change the cursor on hover if a valid
|
| - // destination is found.
|
| - rich_notification_data.clickable = GetDefaultDestinationUrl().is_valid();
|
| + // Set the clickable flag to change the cursor on hover if a valid
|
| + // destination is found.
|
| + rich_notification_data.clickable = GetDefaultDestinationUrl().is_valid();
|
|
|
| - // If there is at least one person sending, use the first picture.
|
| - // TODO(petewil): Someday combine multiple profile photos here.
|
| - gfx::Image icon_bitmap = app_icon_bitmap_;
|
| - if (GetProfilePictureCount() >= 1) {
|
| - icon_bitmap = sender_bitmap_;
|
| - }
|
| + // If there is at least one person sending, use the first picture.
|
| + // TODO(petewil): Someday combine multiple profile photos here.
|
| + gfx::Image icon_bitmap = app_icon_bitmap_;
|
| + if (GetProfilePictureCount() >= 1) {
|
| + icon_bitmap = sender_bitmap_;
|
| + }
|
|
|
| - Notification ui_notification(notification_type,
|
| - GetOriginUrl(),
|
| - notification_heading,
|
| - notification_text,
|
| - icon_bitmap,
|
| - blink::WebTextDirectionDefault,
|
| - message_center::NotifierId(GetOriginUrl()),
|
| - display_source,
|
| - replace_key,
|
| - rich_notification_data,
|
| - delegate.get());
|
| - // In case the notification is not supposed to be toasted, pretend that it
|
| - // has already been shown.
|
| - ui_notification.set_shown_as_popup(!toast_state_);
|
| + Notification ui_notification(notification_type,
|
| + GetOriginUrl(),
|
| + notification_heading,
|
| + notification_text,
|
| + icon_bitmap,
|
| + blink::WebTextDirectionDefault,
|
| + message_center::NotifierId(GetOriginUrl()),
|
| + display_source,
|
| + replace_key,
|
| + rich_notification_data,
|
| + delegate.get());
|
| + // In case the notification is not supposed to be toasted, pretend that it
|
| + // has already been shown.
|
| + ui_notification.set_shown_as_popup(!toast_state_);
|
|
|
| - notification_manager_->Add(ui_notification, profile);
|
| - } else {
|
| - // In this case we have a Webkit Notification, not a Rich Notification.
|
| - Notification ui_notification(GetOriginUrl(),
|
| - GetAppIconUrl(),
|
| - notification_heading,
|
| - notification_text,
|
| - blink::WebTextDirectionDefault,
|
| - display_source,
|
| - replace_key,
|
| - delegate.get());
|
| + notification_manager_->Add(ui_notification, profile);
|
|
|
| - notification_manager_->Add(ui_notification, profile);
|
| - }
|
| -
|
| DVLOG(1) << "Showing Synced Notification! " << heading << " " << text
|
| << " " << GetAppIconUrl() << " " << replace_key << " "
|
| << GetProfilePictureUrl(0) << " " << GetReadState();
|
| @@ -265,13 +247,6 @@
|
| void SyncedNotification::QueueBitmapFetchJobs(
|
| ChromeNotifierService* notifier_service,
|
| Profile* profile) {
|
| - // If we are not using the MessageCenter, call show now, and the existing
|
| - // code will handle the bitmap fetch for us.
|
| - if (!UseRichNotifications()) {
|
| - Show(profile);
|
| - return;
|
| - }
|
| -
|
| // Save off the arguments for the call to Show.
|
| notifier_service_ = notifier_service;
|
| profile_ = profile;
|
|
|