OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "components/web_contents_delegate_android/color_chooser_android.h" | 5 #include "components/web_contents_delegate_android/color_chooser_android.h" |
6 | 6 |
7 #include "base/android/jni_array.h" | 7 #include "base/android/jni_array.h" |
8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
9 #include "content/public/browser/android/content_view_core.h" | |
10 #include "content/public/browser/web_contents.h" | 9 #include "content/public/browser/web_contents.h" |
11 #include "content/public/common/color_suggestion.h" | 10 #include "content/public/common/color_suggestion.h" |
12 #include "jni/ColorChooserAndroid_jni.h" | 11 #include "jni/ColorChooserAndroid_jni.h" |
13 | 12 |
14 using base::android::ConvertUTF16ToJavaString; | 13 using base::android::ConvertUTF16ToJavaString; |
15 | 14 |
16 namespace web_contents_delegate_android { | 15 namespace web_contents_delegate_android { |
17 | 16 |
18 ColorChooserAndroid::ColorChooserAndroid( | 17 ColorChooserAndroid::ColorChooserAndroid( |
19 content::WebContents* web_contents, | 18 content::WebContents* web_contents, |
20 SkColor initial_color, | 19 SkColor initial_color, |
21 const std::vector<content::ColorSuggestion>& suggestions) | 20 const std::vector<content::ColorSuggestion>& suggestions) |
22 : web_contents_(web_contents) { | 21 : web_contents_(web_contents) { |
23 JNIEnv* env = AttachCurrentThread(); | 22 JNIEnv* env = AttachCurrentThread(); |
24 content::ContentViewCore* content_view_core = | |
25 content::ContentViewCore::FromWebContents(web_contents); | |
26 DCHECK(content_view_core); | |
27 | 23 |
28 ScopedJavaLocalRef<jobjectArray> suggestions_array; | 24 ScopedJavaLocalRef<jobjectArray> suggestions_array; |
29 | 25 |
30 if (suggestions.size() > 0) { | 26 if (suggestions.size() > 0) { |
31 suggestions_array = Java_ColorChooserAndroid_createColorSuggestionArray( | 27 suggestions_array = Java_ColorChooserAndroid_createColorSuggestionArray( |
32 env, suggestions.size()); | 28 env, suggestions.size()); |
33 | 29 |
34 for (size_t i = 0; i < suggestions.size(); ++i) { | 30 for (size_t i = 0; i < suggestions.size(); ++i) { |
35 const content::ColorSuggestion& suggestion = suggestions[i]; | 31 const content::ColorSuggestion& suggestion = suggestions[i]; |
36 ScopedJavaLocalRef<jstring> label = ConvertUTF16ToJavaString( | 32 ScopedJavaLocalRef<jstring> label = ConvertUTF16ToJavaString( |
37 env, suggestion.label); | 33 env, suggestion.label); |
38 Java_ColorChooserAndroid_addToColorSuggestionArray( | 34 Java_ColorChooserAndroid_addToColorSuggestionArray( |
39 env, | 35 env, |
40 suggestions_array.obj(), | 36 suggestions_array.obj(), |
41 i, | 37 i, |
42 suggestion.color, | 38 suggestion.color, |
43 label.obj()); | 39 label.obj()); |
44 } | 40 } |
45 } | 41 } |
46 j_color_chooser_.Reset(Java_ColorChooserAndroid_createColorChooserAndroid( | 42 j_color_chooser_.Reset(Java_ColorChooserAndroid_createColorChooserAndroid( |
47 env, | 43 env, |
48 reinterpret_cast<intptr_t>(this), | 44 reinterpret_cast<intptr_t>(this), |
49 content_view_core->GetJavaObject().obj(), | 45 web_contents->GetJavaWebContents().obj(), |
50 initial_color, | 46 initial_color, |
51 suggestions_array.obj())); | 47 suggestions_array.obj())); |
52 } | 48 } |
53 | 49 |
54 ColorChooserAndroid::~ColorChooserAndroid() { | 50 ColorChooserAndroid::~ColorChooserAndroid() { |
55 } | 51 } |
56 | 52 |
57 void ColorChooserAndroid::End() { | 53 void ColorChooserAndroid::End() { |
58 if (!j_color_chooser_.is_null()) { | 54 if (!j_color_chooser_.is_null()) { |
59 JNIEnv* env = AttachCurrentThread(); | 55 JNIEnv* env = AttachCurrentThread(); |
(...skipping 13 matching lines...) Expand all Loading... |
73 } | 69 } |
74 | 70 |
75 // ---------------------------------------------------------------------------- | 71 // ---------------------------------------------------------------------------- |
76 // Native JNI methods | 72 // Native JNI methods |
77 // ---------------------------------------------------------------------------- | 73 // ---------------------------------------------------------------------------- |
78 bool RegisterColorChooserAndroid(JNIEnv* env) { | 74 bool RegisterColorChooserAndroid(JNIEnv* env) { |
79 return RegisterNativesImpl(env); | 75 return RegisterNativesImpl(env); |
80 } | 76 } |
81 | 77 |
82 } // namespace web_contents_delegate_android | 78 } // namespace web_contents_delegate_android |
OLD | NEW |