OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/chromeos/file_system_provider/notification_manager.h" | 5 #include "chrome/browser/chromeos/file_system_provider/notification_manager.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/browser_process.h" | 9 #include "chrome/browser/browser_process.h" |
10 #include "chrome/browser/extensions/extension_app_icon_loader.h" | 10 #include "chrome/browser/extensions/extension_app_icon_loader.h" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 OnNotificationResult(CONTINUE); | 99 OnNotificationResult(CONTINUE); |
100 } | 100 } |
101 | 101 |
102 void NotificationManager::OnAppImageUpdated(const std::string& id, | 102 void NotificationManager::OnAppImageUpdated(const std::string& id, |
103 const gfx::ImageSkia& image) { | 103 const gfx::ImageSkia& image) { |
104 extension_icon_.reset(new gfx::Image(image)); | 104 extension_icon_.reset(new gfx::Image(image)); |
105 g_browser_process->message_center()->UpdateNotification( | 105 g_browser_process->message_center()->UpdateNotification( |
106 file_system_info_.mount_path().value(), CreateNotification()); | 106 file_system_info_.mount_path().value(), CreateNotification()); |
107 } | 107 } |
108 | 108 |
109 scoped_ptr<message_center::Notification> | 109 std::unique_ptr<message_center::Notification> |
110 NotificationManager::CreateNotification() { | 110 NotificationManager::CreateNotification() { |
111 if (!extension_icon_.get()) | 111 if (!extension_icon_.get()) |
112 icon_loader_->FetchImage(file_system_info_.extension_id()); | 112 icon_loader_->FetchImage(file_system_info_.extension_id()); |
113 | 113 |
114 message_center::RichNotificationData rich_notification_data; | 114 message_center::RichNotificationData rich_notification_data; |
115 rich_notification_data.buttons.push_back( | 115 rich_notification_data.buttons.push_back( |
116 message_center::ButtonInfo(l10n_util::GetStringUTF16( | 116 message_center::ButtonInfo(l10n_util::GetStringUTF16( |
117 IDS_FILE_SYSTEM_PROVIDER_UNRESPONSIVE_ABORT_BUTTON))); | 117 IDS_FILE_SYSTEM_PROVIDER_UNRESPONSIVE_ABORT_BUTTON))); |
118 | 118 |
119 message_center::NotifierId notifier_id( | 119 message_center::NotifierId notifier_id( |
120 message_center::NotifierId::SYSTEM_COMPONENT, | 120 message_center::NotifierId::SYSTEM_COMPONENT, |
121 file_system_info_.mount_path().value()); | 121 file_system_info_.mount_path().value()); |
122 notifier_id.profile_id = | 122 notifier_id.profile_id = |
123 multi_user_util::GetAccountIdFromProfile(profile_).GetUserEmail(); | 123 multi_user_util::GetAccountIdFromProfile(profile_).GetUserEmail(); |
124 | 124 |
125 scoped_ptr<message_center::Notification> notification( | 125 std::unique_ptr<message_center::Notification> notification( |
126 new message_center::Notification( | 126 new message_center::Notification( |
127 message_center::NOTIFICATION_TYPE_SIMPLE, | 127 message_center::NOTIFICATION_TYPE_SIMPLE, |
128 file_system_info_.mount_path().value(), | 128 file_system_info_.mount_path().value(), |
129 base::UTF8ToUTF16(file_system_info_.display_name()), | 129 base::UTF8ToUTF16(file_system_info_.display_name()), |
130 l10n_util::GetStringUTF16( | 130 l10n_util::GetStringUTF16( |
131 callbacks_.size() == 1 | 131 callbacks_.size() == 1 |
132 ? IDS_FILE_SYSTEM_PROVIDER_UNRESPONSIVE_WARNING | 132 ? IDS_FILE_SYSTEM_PROVIDER_UNRESPONSIVE_WARNING |
133 : IDS_FILE_SYSTEM_PROVIDER_MANY_UNRESPONSIVE_WARNING), | 133 : IDS_FILE_SYSTEM_PROVIDER_MANY_UNRESPONSIVE_WARNING), |
134 extension_icon_.get() ? *extension_icon_.get() : gfx::Image(), | 134 extension_icon_.get() ? *extension_icon_.get() : gfx::Image(), |
135 base::string16(), // display_source | 135 base::string16(), // display_source |
136 GURL(), notifier_id, rich_notification_data, | 136 GURL(), notifier_id, rich_notification_data, |
137 new ProviderNotificationDelegate(this))); | 137 new ProviderNotificationDelegate(this))); |
138 | 138 |
139 notification->SetSystemPriority(); | 139 notification->SetSystemPriority(); |
140 return notification; | 140 return notification; |
141 } | 141 } |
142 | 142 |
143 void NotificationManager::OnNotificationResult(NotificationResult result) { | 143 void NotificationManager::OnNotificationResult(NotificationResult result) { |
144 CallbackMap::iterator it = callbacks_.begin(); | 144 CallbackMap::iterator it = callbacks_.begin(); |
145 while (it != callbacks_.end()) { | 145 while (it != callbacks_.end()) { |
146 CallbackMap::iterator current_it = it++; | 146 CallbackMap::iterator current_it = it++; |
147 NotificationCallback callback = current_it->second; | 147 NotificationCallback callback = current_it->second; |
148 callbacks_.erase(current_it); | 148 callbacks_.erase(current_it); |
149 callback.Run(result); | 149 callback.Run(result); |
150 } | 150 } |
151 } | 151 } |
152 | 152 |
153 } // namespace file_system_provider | 153 } // namespace file_system_provider |
154 } // namespace chromeos | 154 } // namespace chromeos |
OLD | NEW |