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/notifications/notification_platform_bridge_android.h" | 5 #include "chrome/browser/notifications/notification_platform_bridge_android.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 ConvertUTF8ToJavaString(env, notification_id); | 197 ConvertUTF8ToJavaString(env, notification_id); |
198 ScopedJavaLocalRef<jstring> j_origin = | 198 ScopedJavaLocalRef<jstring> j_origin = |
199 ConvertUTF8ToJavaString(env, origin_url.spec()); | 199 ConvertUTF8ToJavaString(env, origin_url.spec()); |
200 ScopedJavaLocalRef<jstring> tag = | 200 ScopedJavaLocalRef<jstring> tag = |
201 ConvertUTF8ToJavaString(env, notification.tag()); | 201 ConvertUTF8ToJavaString(env, notification.tag()); |
202 ScopedJavaLocalRef<jstring> title = | 202 ScopedJavaLocalRef<jstring> title = |
203 ConvertUTF16ToJavaString(env, notification.title()); | 203 ConvertUTF16ToJavaString(env, notification.title()); |
204 ScopedJavaLocalRef<jstring> body = | 204 ScopedJavaLocalRef<jstring> body = |
205 ConvertUTF16ToJavaString(env, notification.message()); | 205 ConvertUTF16ToJavaString(env, notification.message()); |
206 | 206 |
| 207 ScopedJavaLocalRef<jobject> image; |
| 208 SkBitmap image_bitmap = notification.image().AsBitmap(); |
| 209 if (!image_bitmap.drawsNothing()) |
| 210 image = gfx::ConvertToJavaBitmap(&image_bitmap); |
| 211 |
207 ScopedJavaLocalRef<jobject> notification_icon; | 212 ScopedJavaLocalRef<jobject> notification_icon; |
208 SkBitmap notification_icon_bitmap = notification.icon().AsBitmap(); | 213 SkBitmap notification_icon_bitmap = notification.icon().AsBitmap(); |
209 if (!notification_icon_bitmap.drawsNothing()) | 214 if (!notification_icon_bitmap.drawsNothing()) |
210 notification_icon = gfx::ConvertToJavaBitmap(¬ification_icon_bitmap); | 215 notification_icon = gfx::ConvertToJavaBitmap(¬ification_icon_bitmap); |
211 | 216 |
212 ScopedJavaLocalRef<jobject> badge; | 217 ScopedJavaLocalRef<jobject> badge; |
213 SkBitmap badge_bitmap = notification.small_image().AsBitmap(); | 218 SkBitmap badge_bitmap = notification.small_image().AsBitmap(); |
214 if (!badge_bitmap.drawsNothing()) | 219 if (!badge_bitmap.drawsNothing()) |
215 badge = gfx::ConvertToJavaBitmap(&badge_bitmap); | 220 badge = gfx::ConvertToJavaBitmap(&badge_bitmap); |
216 | 221 |
217 std::vector<base::string16> action_titles_vector; | 222 std::vector<base::string16> action_titles_vector; |
218 for (const message_center::ButtonInfo& button : notification.buttons()) | 223 for (const message_center::ButtonInfo& button : notification.buttons()) |
219 action_titles_vector.push_back(button.title); | 224 action_titles_vector.push_back(button.title); |
220 ScopedJavaLocalRef<jobjectArray> action_titles = | 225 ScopedJavaLocalRef<jobjectArray> action_titles = |
221 base::android::ToJavaArrayOfStrings(env, action_titles_vector); | 226 base::android::ToJavaArrayOfStrings(env, action_titles_vector); |
222 | 227 |
223 ScopedJavaLocalRef<jobjectArray> action_icons = | 228 ScopedJavaLocalRef<jobjectArray> action_icons = |
224 ConvertToJavaBitmaps(notification.buttons()); | 229 ConvertToJavaBitmaps(notification.buttons()); |
225 | 230 |
226 ScopedJavaLocalRef<jintArray> vibration_pattern = | 231 ScopedJavaLocalRef<jintArray> vibration_pattern = |
227 base::android::ToJavaIntArray(env, notification.vibration_pattern()); | 232 base::android::ToJavaIntArray(env, notification.vibration_pattern()); |
228 | 233 |
229 ScopedJavaLocalRef<jstring> j_profile_id = | 234 ScopedJavaLocalRef<jstring> j_profile_id = |
230 ConvertUTF8ToJavaString(env, profile_id); | 235 ConvertUTF8ToJavaString(env, profile_id); |
231 | 236 |
232 Java_NotificationPlatformBridge_displayNotification( | 237 Java_NotificationPlatformBridge_displayNotification( |
233 env, java_object_, j_notification_id, j_origin, j_profile_id, incognito, | 238 env, java_object_, j_notification_id, j_origin, j_profile_id, incognito, |
234 tag, webapk_package, title, body, notification_icon, badge, | 239 tag, webapk_package, title, body, image, notification_icon, badge, |
235 vibration_pattern, notification.timestamp().ToJavaTime(), | 240 vibration_pattern, notification.timestamp().ToJavaTime(), |
236 notification.renotify(), notification.silent(), action_titles, | 241 notification.renotify(), notification.silent(), action_titles, |
237 action_icons); | 242 action_icons); |
238 | 243 |
239 regenerated_notification_infos_[notification_id] = | 244 regenerated_notification_infos_[notification_id] = |
240 RegeneratedNotificationInfo(origin_url.spec(), notification.tag(), | 245 RegeneratedNotificationInfo(origin_url.spec(), notification.tag(), |
241 ConvertJavaStringToUTF8(env, webapk_package)); | 246 ConvertJavaStringToUTF8(env, webapk_package)); |
242 } | 247 } |
243 | 248 |
244 void NotificationPlatformBridgeAndroid::Close( | 249 void NotificationPlatformBridgeAndroid::Close( |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 RegeneratedNotificationInfo() {} | 304 RegeneratedNotificationInfo() {} |
300 | 305 |
301 NotificationPlatformBridgeAndroid::RegeneratedNotificationInfo:: | 306 NotificationPlatformBridgeAndroid::RegeneratedNotificationInfo:: |
302 RegeneratedNotificationInfo(const std::string& origin, | 307 RegeneratedNotificationInfo(const std::string& origin, |
303 const std::string& tag, | 308 const std::string& tag, |
304 const std::string& webapk_package) | 309 const std::string& webapk_package) |
305 : origin(origin), tag(tag), webapk_package(webapk_package) {} | 310 : origin(origin), tag(tag), webapk_package(webapk_package) {} |
306 | 311 |
307 NotificationPlatformBridgeAndroid::RegeneratedNotificationInfo:: | 312 NotificationPlatformBridgeAndroid::RegeneratedNotificationInfo:: |
308 ~RegeneratedNotificationInfo() {} | 313 ~RegeneratedNotificationInfo() {} |
OLD | NEW |