| OLD | NEW |
| (Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "content/browser/android/content_util.h" |
| 6 |
| 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_array.h" |
| 9 #include "base/android/jni_string.h" |
| 10 #include "content/browser/web_contents/web_contents_impl.h" |
| 11 |
| 12 using base::android::AppendJavaStringArrayToStringVector; |
| 13 using base::android::CheckException; |
| 14 using base::android::ConvertJavaStringToUTF8; |
| 15 using base::android::ConvertJavaStringToUTF16; |
| 16 using base::android::ConvertUTF8ToJavaString; |
| 17 using base::android::ConvertUTF16ToJavaString; |
| 18 using base::android::GetClass; |
| 19 using base::android::GetFieldID; |
| 20 using base::android::GetMethodID; |
| 21 using base::android::JavaRef; |
| 22 using base::android::ScopedJavaLocalRef; |
| 23 using base::android::ToJavaArrayOfStrings; |
| 24 |
| 25 namespace { |
| 26 |
| 27 const char kFileChooserParamsClassName[] = |
| 28 "org/chromium/content/browser/FileChooserParams"; |
| 29 |
| 30 } |
| 31 |
| 32 namespace content { |
| 33 |
| 34 ScopedJavaLocalRef<jobject> ToJavaFileChooserParams( |
| 35 JNIEnv* env, const FileChooserParams& file_chooser_params) { |
| 36 ScopedJavaLocalRef<jclass> clazz = GetClass(env, kFileChooserParamsClassName); |
| 37 jmethodID constructor_id = GetMethodID(env, clazz, "<init>", |
| 38 "(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;" |
| 39 "Ljava/lang/String;)V"); |
| 40 |
| 41 ScopedJavaLocalRef<jstring> title = |
| 42 ConvertUTF16ToJavaString(env, file_chooser_params.title); |
| 43 ScopedJavaLocalRef<jstring> default_file_name = |
| 44 ConvertUTF8ToJavaString(env, |
| 45 file_chooser_params.default_file_name.value()); |
| 46 ScopedJavaLocalRef<jobjectArray> accept_types = |
| 47 ToJavaArrayOfStrings(env, file_chooser_params.accept_types); |
| 48 ScopedJavaLocalRef<jstring> capture = |
| 49 ConvertUTF16ToJavaString(env, file_chooser_params.capture); |
| 50 |
| 51 ScopedJavaLocalRef<jobject> java_params(env, |
| 52 env->NewObject(clazz.obj(), |
| 53 constructor_id, |
| 54 static_cast<jint>(file_chooser_params.mode), |
| 55 title.obj(), |
| 56 default_file_name.obj(), |
| 57 accept_types.obj(), |
| 58 capture.obj())); |
| 59 CheckException(env); |
| 60 |
| 61 return java_params; |
| 62 } |
| 63 |
| 64 FileChooserParams ToNativeFileChooserParams( |
| 65 JNIEnv* env, jint mode, jstring title, jstring default_file, |
| 66 jobjectArray accept_types, jstring capture) { |
| 67 FileChooserParams file_chooser_params; |
| 68 file_chooser_params.mode = |
| 69 static_cast<FileChooserParams::Mode>(mode); |
| 70 file_chooser_params.title = ConvertJavaStringToUTF16(env, title); |
| 71 file_chooser_params.default_file_name = |
| 72 FilePath(ConvertJavaStringToUTF8(env, default_file)); |
| 73 AppendJavaStringArrayToStringVector(env, accept_types, |
| 74 &file_chooser_params.accept_types); |
| 75 file_chooser_params.capture = ConvertJavaStringToUTF16(env, capture); |
| 76 |
| 77 return file_chooser_params; |
| 78 } |
| 79 |
| 80 } // namespace content |
| 81 |
| OLD | NEW |