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

Side by Side Diff: chrome/browser/notifications/notification_ui_manager_android.cc

Issue 1620203004: Notification action icons prototype. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make it work on Android and clean up. Created 4 years, 11 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 unified diff | Download patch
OLDNEW
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_ui_manager_android.h" 5 #include "chrome/browser/notifications/notification_ui_manager_android.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/android/context_utils.h" 9 #include "base/android/context_utils.h"
10 #include "base/android/jni_array.h" 10 #include "base/android/jni_array.h"
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 124
125 ScopedJavaLocalRef<jstring> origin = ConvertUTF8ToJavaString( 125 ScopedJavaLocalRef<jstring> origin = ConvertUTF8ToJavaString(
126 env, origin_url.spec()); 126 env, origin_url.spec());
127 ScopedJavaLocalRef<jstring> tag = 127 ScopedJavaLocalRef<jstring> tag =
128 ConvertUTF8ToJavaString(env, notification.tag()); 128 ConvertUTF8ToJavaString(env, notification.tag());
129 ScopedJavaLocalRef<jstring> title = ConvertUTF16ToJavaString( 129 ScopedJavaLocalRef<jstring> title = ConvertUTF16ToJavaString(
130 env, notification.title()); 130 env, notification.title());
131 ScopedJavaLocalRef<jstring> body = ConvertUTF16ToJavaString( 131 ScopedJavaLocalRef<jstring> body = ConvertUTF16ToJavaString(
132 env, notification.message()); 132 env, notification.message());
133 133
134 ScopedJavaLocalRef<jobject> icon; 134 ScopedJavaLocalRef<jobject> notification_icon;
135 135 SkBitmap notification_icon_bitmap = notification.icon().AsBitmap();
136 SkBitmap icon_bitmap = notification.icon().AsBitmap(); 136 if (!notification_icon_bitmap.isNull())
137 if (!icon_bitmap.isNull()) 137 notification_icon = gfx::ConvertToJavaBitmap(&notification_icon_bitmap);
138 icon = gfx::ConvertToJavaBitmap(&icon_bitmap);
139 138
140 std::vector<base::string16> action_titles_vector; 139 std::vector<base::string16> action_titles_vector;
141 for (const message_center::ButtonInfo& button : notification.buttons()) 140 for (const message_center::ButtonInfo& button : notification.buttons())
142 action_titles_vector.push_back(button.title); 141 action_titles_vector.push_back(button.title);
143 ScopedJavaLocalRef<jobjectArray> action_titles = 142 ScopedJavaLocalRef<jobjectArray> action_titles =
144 base::android::ToJavaArrayOfStrings(env, action_titles_vector); 143 base::android::ToJavaArrayOfStrings(env, action_titles_vector);
145 144
145 std::vector<SkBitmap> action_icons_vector;
146 for (const message_center::ButtonInfo& button : notification.buttons())
147 action_icons_vector.push_back(button.icon.AsBitmap());
148 ScopedJavaLocalRef<jobjectArray> action_icons =
149 gfx::ConvertToJavaBitmaps(action_icons_vector);
150
146 ScopedJavaLocalRef<jintArray> vibration_pattern = 151 ScopedJavaLocalRef<jintArray> vibration_pattern =
147 base::android::ToJavaIntArray(env, notification.vibration_pattern()); 152 base::android::ToJavaIntArray(env, notification.vibration_pattern());
148 153
149 ScopedJavaLocalRef<jstring> profile_id = 154 ScopedJavaLocalRef<jstring> profile_id =
150 ConvertUTF8ToJavaString(env, profile->GetPath().BaseName().value()); 155 ConvertUTF8ToJavaString(env, profile->GetPath().BaseName().value());
151 156
152 Java_NotificationUIManager_displayNotification( 157 Java_NotificationUIManager_displayNotification(
153 env, java_object_.obj(), persistent_notification_id, origin.obj(), 158 env, java_object_.obj(), persistent_notification_id, origin.obj(),
154 profile_id.obj(), profile->IsOffTheRecord(), tag.obj(), title.obj(), 159 profile_id.obj(), profile->IsOffTheRecord(), tag.obj(), title.obj(),
155 body.obj(), icon.obj(), vibration_pattern.obj(), notification.silent(), 160 body.obj(), notification_icon.obj(), vibration_pattern.obj(),
156 action_titles.obj()); 161 notification.silent(), action_titles.obj(), action_icons.obj());
157 162
158 regenerated_notification_infos_[persistent_notification_id] = 163 regenerated_notification_infos_[persistent_notification_id] =
159 std::make_pair(origin_url.spec(), notification.tag()); 164 std::make_pair(origin_url.spec(), notification.tag());
160 165
161 notification.delegate()->Display(); 166 notification.delegate()->Display();
162 } 167 }
163 168
164 bool NotificationUIManagerAndroid::Update(const Notification& notification, 169 bool NotificationUIManagerAndroid::Update(const Notification& notification,
165 Profile* profile) { 170 Profile* profile) {
166 NOTREACHED(); 171 NOTREACHED();
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 return false; 237 return false;
233 } 238 }
234 239
235 void NotificationUIManagerAndroid::CancelAll() { 240 void NotificationUIManagerAndroid::CancelAll() {
236 NOTREACHED(); 241 NOTREACHED();
237 } 242 }
238 243
239 bool NotificationUIManagerAndroid::RegisterNotificationUIManager(JNIEnv* env) { 244 bool NotificationUIManagerAndroid::RegisterNotificationUIManager(JNIEnv* env) {
240 return RegisterNativesImpl(env); 245 return RegisterNativesImpl(env);
241 } 246 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698