Chromium Code Reviews| Index: components/web_contents_delegate_android/color_chooser_android.cc |
| diff --git a/components/web_contents_delegate_android/color_chooser_android.cc b/components/web_contents_delegate_android/color_chooser_android.cc |
| index 4eb3d03d7040fd0dc2f5f0c4e7ebbbd6025ea592..a1dcf409bf2aedebeb4c6170ff615b2ac88c4188 100644 |
| --- a/components/web_contents_delegate_android/color_chooser_android.cc |
| +++ b/components/web_contents_delegate_android/color_chooser_android.cc |
| @@ -4,26 +4,52 @@ |
| #include "components/web_contents_delegate_android/color_chooser_android.h" |
| +#include "base/android/jni_array.h" |
| +#include "base/android/jni_string.h" |
| #include "content/public/browser/android/content_view_core.h" |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/browser/web_contents_view.h" |
| +#include "content/public/common/color_suggestion.h" |
| #include "jni/ColorChooserAndroid_jni.h" |
| +using base::android::ConvertUTF16ToJavaString; |
| + |
| namespace web_contents_delegate_android { |
| -ColorChooserAndroid::ColorChooserAndroid(content::WebContents* web_contents, |
| - SkColor initial_color) |
| +ColorChooserAndroid::ColorChooserAndroid( |
| + content::WebContents* web_contents, |
| + SkColor initial_color, |
| + const std::vector<content::ColorSuggestion>& suggestions) |
| : web_contents_(web_contents) { |
| JNIEnv* env = AttachCurrentThread(); |
| content::ContentViewCore* content_view_core = |
| content::ContentViewCore::FromWebContents(web_contents); |
| DCHECK(content_view_core); |
| + ScopedJavaLocalRef<jobjectArray> suggestions_array; |
| + |
| + if (suggestions.size() > 0) { |
| + suggestions_array = Java_ColorChooserAndroid_createColorSuggestionArray( |
| + env, suggestions.size()); |
| + |
| + for (size_t i = 0; i < suggestions.size(); ++i) { |
| + const content::ColorSuggestion& suggestion = suggestions[i]; |
| + ScopedJavaLocalRef<jstring> label = ConvertUTF16ToJavaString( |
|
newt (away)
2013/08/29 05:35:33
since labels will often be empty, I'd prefer to us
|
| + env, suggestion.label); |
| + Java_ColorChooserAndroid_addToColorSuggestionArray( |
| + env, |
| + suggestions_array.obj(), |
| + i, |
| + suggestion.color, |
| + label.obj()); |
| + } |
| + } |
| j_color_chooser_.Reset(Java_ColorChooserAndroid_createColorChooserAndroid( |
| env, |
| reinterpret_cast<intptr_t>(this), |
| content_view_core->GetJavaObject().obj(), |
| - initial_color)); |
| + initial_color, |
| + suggestions_array.obj())); |
| } |
| ColorChooserAndroid::~ColorChooserAndroid() { |