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

Unified Diff: components/web_contents_delegate_android/color_chooser_android.cc

Issue 23026006: Add support for color input datalist on Android (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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(
+ 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() {

Powered by Google App Engine
This is Rietveld 408576698